Blocky saysEthereum uses an account model with two types: externally-owned accounts and contract accounts.
Unlike Bitcoin's UTXOs, Ethereum tracks balances per account. Externally-owned accounts (EOAs) are controlled by a private key (users/wallets). Contract accounts are controlled by their code — they have a balance and storage and run logic when called. A transaction from an EOA can move ETH or invoke a contract, which may call other contracts in turn.
Power-ups you unlock
Account balances, not UTXOs
EOAs: controlled by a private key
Contract accounts: controlled by code
A tx can move ETH or call a contract
Double-Spend Dan attacks — common mistakes
Applying UTXO thinking to Ethereum
Confusing EOAs with contract accounts
Forgetting contracts can call other contracts
Boss battleDistinguish an EOA from a contract account by what controls each.
Example code
<!doctype html><html><head><meta charset="utf-8"></head>
<body style="background:#06040d;color:#e6e0ff;font-family:monospace;padding:20px"><pre>EOA → controlled by a private key (a user)
contract → controlled by its code
both have a balance; contracts also have storage</pre></body></html>