# `EEVM.Interpreter.Instructions.Environment.External`
[🔗](https://github.com/mw2000/eevm/blob/v0.1.0/lib/eevm/interpreter/instructions/environment/external.ex#L1)

External account inspection opcodes with EIP-2929 access cost tracking.

These opcodes query other accounts' state (balance, code, code hash) and
incur cold/warm access costs per EIP-2929. The first access to an address
costs 2,600 gas (cold); subsequent accesses cost 100 gas (warm).

Includes: BALANCE (0x31), EXTCODESIZE (0x3B), EXTCODECOPY (0x3C),
EXTCODEHASH (0x3F), and SELFBALANCE (0x47).

# `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*
