Halting instructions differ in output and state outcome.
LET’S PICTURE IT
An activity can finish silently, finish with a report or abandon its changes with an explanation.
SEE IT FOR YOURSELF
Follow a revert and decode its error dataStep 1 / 4
This fictional call requests a transfer of one hundred raw units while the relevant balance is forty.
This fictional call requests a transfer of one hundred raw units while the relevant balance is forty.The contract rejects this request. State changes in the reverted call are rolled back, while work already consumed can still cost gas.A common Error(string) begins with selector 08c379a0. This example then encodes the message Not enough tokens.A decoder can recognize the supplied error shape. Identifying the true cause and source still needs the call context, code and state.
Animated local teaching model. No wallet, RPC or live blockchain data. Some labels and hashes are abbreviated for readability.
Recognize a normal stop
STOP ends the current frame successfully without an explicit output payload. Success does not require that the function return a nonempty byte sequence.
Return a memory range
RETURN ends successfully and selects output bytes from memory. The caller still needs the right schema to interpret those bytes as values.
Revert the current scope
REVERT ends with failure, rolls back the scope’s effects and can provide bytes from memory. It does not inherently consume every unit of remaining gas.
Separate exceptional halts
Invalid operations and out-of-gas failures are different from an ordinary REVERT path. Do not assume every failure has the same gas behavior or diagnostic payload.