Blockchain Actions

Any blockchain is bootstrap from an initial (genesis) state, which is then changed over time through transactions, or Actions as they are called in IoTeX. An action is fundamentally a packet of data, signed by a blockchain account, that instructs the blockchain to make some type of change to the distributed ledger. The action can be sent to any blockchain node acting as a gateway, that in turn broadcasts it to the entire network of nodes for verification and, eventually it get applied and stored forever in the Ledger.

In IoTeX there are different types of Actions, depending on the type of operation that is required to perform:

Transfer Action

A transfer is an action initiated by an account, intended to transfer a certain amount of IOTX tokens owned by that account (sender) into another account (recipient).

Execution Action

An execution is an action initiated by an account, intended to run the code associated with a smart contract account

Governance Actions

Governance actions are low level actions between an account and the blockchain itself, intended to manage the voting mechanism, delegate registrations and rewards.

  • GrantReward is the action initiated by the blockchain, to grant either block or epoch reward to a delegate

  • ClaimFromRewardingFund is the action initiated by an account to claim delegate reward from the granted rewards fund

  • DepositToRewardingFund is the action initiated by the blockchain to deposit a delegate reward to the rewarding fund

  • CandidateRegister is the action to register a candidate

  • CandidateUpdate is the action to update a candidate data

  • CreateStake defines the action of stake creation

  • Restake defines the action of stake again with different options

  • DepositToStake defines the action of stake add deposit

  • TransferStake defines the action of transfering stake ownership to another account

  • Unstake defines the action of unstake

  • WithdrawStake defines the action of stake withdraw

Find the structure for all IoTeX Actions in the protobuf definition on GitHub: