In the table below we present you with a summary of Iroha Special Instructions (ISI). For each instruction, there is a list of objects on which this instruction can be run on. For example, only assets can be transferred, while minting can refer to assets, triggers, and permission tokens.
Some instructions require a destination to be specified. For example, if you transfer assets, you always need to specify to which account you are transferring them. On the other hand, when you registering something, all you need is the object that you want to register.
|Register/Unregister||accounts, domains, asset definitions, triggers, roles, peers|
|Mint/Burn||assets, triggers (trigger repetitions), permission tokens||accounts|
|SetKeyValue/RemoveKeyValue||any objects that have metadata: accounts, domains, assets, asset definitions, triggers, transactions|
|Grant/Revoke||roles, permission tokens||accounts|
|If, Pair, Sequence||any instructions|
There is also another way of looking at ISI, i.e. in terms of the target of each instruction. For example, when you register an account, you do so within a certain domain. This means that the target of the
Register<Account> instruction would be the domain within which it is being registered.
|Account||(un)register assets, mint/burn account public key, mint/burn account signature condition check, update account metadata, grant/revoke a permission token, grant/revoke role|
|Domain||(un)register accounts, (un)register asset definitions, update asset metadata, update domain metadata|
|Asset||update metadata, mint/burn, transfer|
|Trigger||(un)register, mint/burn trigger repetitions, execute trigger|
|World||(un)register domains, peers, roles|