Skip to main content
T TON Adoption
← Glossary
NODE/03 · Term

Action Phase

Phase of a TON transaction that applies outgoing messages and storage updates. Runs immediately after the compute phase.

Aliases: action-phase

Action Phase is the fourth phase of a TON transaction. It applies the results of the compute phase: dispatches outgoing messages, updates storage, performs special operations such as reserve.

What happens

During compute the contract does not send messages directly — it only builds an action list, the queue of actions to apply. Once compute finishes successfully, the network enters action phase and applies items from the list one by one:

  • send_raw_message — emit an internal message with the chosen send mode.
  • set_code — update the contract’s code (for upgradable contracts).
  • reserve_currency — lock part of the balance so it can’t be spent within the same transaction.
  • change_library — add or remove a cell library.

Actions apply sequentially. If one of them fails (for example, the balance is too small for the forward fee), the action phase aborts and the remaining actions are skipped.

Action phase as its own failure point

This matters: compute can succeed, exit_code = 0, and actions can still fail. So the action phase has its own result_code. Typical codes:

CodeMeaning
32Invalid action list.
33Too many actions (more than 255).
34Invalid action mode.
37Not enough TON to send the message.
38Not enough extra currencies.

How it differs from EVM

In EVM logic and value movement happen inside one atomic step that either succeeds or reverts entirely. In TON compute and action are separate: you can successfully “decide what to send” and then fail to actually send it because the balance is insufficient. This is part of the actor-model design and a key reason TON transactions have such a detailed structure.

Related terms