Skip to main content
Development

Accounts and State in Ethereum Classic

How the ETC world state works: externally owned accounts, contract accounts, the state trie, and how every transaction modifies the global state.

ETC Community
Ethereum Classic Community
4 min read

Ethereum Classic maintains a global "world state" — a mapping from every account address to its current state. Understanding this data model is key to understanding how the EVM works.

Two Types of Accounts

Externally Owned Accounts (EOAs)

Controlled by private keys. EOAs have:

  • Balance: Amount of ETC held
  • Nonce: Number of transactions sent (prevents replay)
  • No code, no storage

Contract Accounts

Controlled by their deployed code. Contract accounts have:

  • Balance: Amount of ETC held
  • Nonce: Number of contracts created by this contract
  • Code hash: Hash of the EVM bytecode
  • Storage root: Root of the account's storage trie

The World State

The world state is a mapping: address → {nonce, balance, storageRoot, codeHash}.

This mapping is stored in a Modified Merkle Patricia Trie. The root hash of this trie is included in every block header as the stateRoot. This single 32-byte hash cryptographically commits to the entire state of every account on the network.

State Transitions

Every transaction modifies the world state:

  1. Sender's nonce increments by 1
  2. Sender's balance decreases by (gas used × gas price) + value transferred
  3. Recipient's balance increases by the value transferred
  4. Miner's balance increases by gas used × gas price
  5. Contract storage may change if the transaction calls a contract

The new state root after applying all transactions in a block becomes the block's stateRoot.

State Growth

Every new account and every new storage slot adds to the state that full nodes must maintain. As of 2024, the ETC state contains millions of accounts and billions of storage entries. State growth management is an ongoing challenge for all EVM chains.

State Proofs

Because the state is stored in a Merkle trie, anyone can construct a proof that a specific account has a specific balance at a specific block. This enables light clients and cross-chain verification without trusting the data provider.

Share This Article

Help spread the word about Ethereum Classic and support the ecosystem