# `EEVM.Interpreter.Instructions.System.Termination`
[🔗](https://github.com/mw2000/eevm/blob/v0.1.0/lib/eevm/interpreter/instructions/system/termination.ex#L1)

Execution-terminating opcodes: STOP, RETURN, REVERT, INVALID, and SELFDESTRUCT.

These opcodes end the current execution frame. STOP and RETURN indicate success,
REVERT indicates a controlled failure (state changes are rolled back but gas for
the return data copy is still consumed), and INVALID halts with an error.

SELFDESTRUCT (0xFF) transfers the contract's balance to a beneficiary address
and marks the contract for deletion. Per EIP-6780, in post-Cancun transactions
SELFDESTRUCT only has its full effect when called in the same transaction that
created the contract.

# `execute`

```elixir
@spec execute(non_neg_integer(), EEVM.Interpreter.MachineState.t()) ::
  {:ok, EEVM.Interpreter.MachineState.t()}
  | {:error, atom(), EEVM.Interpreter.MachineState.t()}
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
