Topic lesson Mon, Aug 17, 2026 · 8 min read

Accounts, Transactions, and What EIP-7702 Broke

The four fields every account has, why the nonce controls ordering, and why an EOA can now carry code.

The Post-7702 Account Model · intro

Where this sits

Two kinds of account, one shape

Every address on Ethereum holds the same four fields, whether a person or a contract sits behind it.

FieldWhat it holds
nonceTransactions sent from this account, or contracts it has created
balanceWei owned. 1 ETH = 1018 wei
codeHashHash of the account's EVM code
storageRootRoot of a Merkle Patricia trie holding the account's persistent storage

The difference between the two account types is what those last two fields contain:

Where addresses come from

What a transaction is

A signed instruction from an EOA. The signature is the authorisation; there is no separate login.

The nonce does more than it looks

What the fee pays for

EOAs can now hold code

EIP-7702 (Final) is the most recent change to this model, and it breaks the clean split above.

Three invariants that held for a decade no longer do. A delegated EOA's balance can fall because of a call into it, not only because it sent something. Its nonce can increment more than once inside a single transaction. And it can make several calls per transaction, so tx.origin == msg.sender is no longer a reliable test that the caller is a plain EOA. Code written before 2025 that relies on any of these is now wrong rather than merely old.

Why it matters

Where to go deeper

Threads left open

  • What actually executes when a call reaches contract code
  • Storage layout — how the storageRoot gets its contents
  • ERC-4337 and how it relates to EIP-7702 delegation

The next topic lesson picks these up.

Sources