Ethereum Accounts & EOAs — Key concepts
Understand account types and how they interact with the chain.
Who, what, whenOnce you recognise the two account types, you can reason about who can act, who pays, and what happens when actions collide in the mempool. These anchors explain why your scripts need nonce management, why relayers exist, and why a contract cannot spontaneously send you tokens.
Smart contracts let us build unstoppable agreements without trusting a single operator.
Debug lensThey frame every “why is this stuck?” chat with users: the answer is usually hidden in the signer, the nonce, or the mistaken belief that code runs itself. Ask yourself: who is signing, which nonce will be consumed, what if two signatures compete, and what if the user closes the tab mid-flight?
Gas mathGround the intuition with the fee formula before you look at any explorer screen.
EIP-1559: fee = gasUsed × min(maxFeePerGas, baseFee + priorityFee)
Higher gas price (or maxFeePerGas) can replace a pending tx with the same nonce; maxFeePerGas must at least cover baseFee + priorityFee.
- EOA vs contract:EOAs are controlled by private keys; contracts are controlled by code and cannot start work alone. If you see state change, an EOA funded it.
- Nonce:The per-EOA counter that increments on every transaction; it blocks replays and sets ordering in the mempool. Wrong guesses stall transactions.
- Gas payer model:The signer of a transaction pays gas, even if the transaction only calls contracts that call other contracts. No secret sponsor exists.
- Execution trigger:Contracts only execute when an EOA (or a chain of contract calls started by an EOA) hits a function. Timers and “auto-tasks” are off-chain.
- Replacement:Two pending transactions from one EOA with the same nonce race; the higher-fee transaction replaces the other. This powers speed-ups and cancels.
- State source of truth:Explorers show nonce and from/to so you can attribute every call; learn to read them before debugging anything more complex.