Accounts and Addresses
Where ETH is stored. Users can initialize accounts, deposit ETH into the accounts, and transfer ETH from their accounts to other users.
📄️ Accounts
Where ETH is stored. Users can initialize accounts, deposit ETH into the accounts, and transfer ETH from their accounts to other users.
📄️ The EVM
The Ethereum Virtual Machine (EVM) functions as a world computer that powers decentralized applications (dApps) running on the Ethereum blockchain.
🗃️ Common Patterns
11 items
🗃️ Primitives
6 items
🗃️ Auditing
8 items
📄️ EVM Roadmap
What is the critical path towards Solidity Mastery on EVM compatible chains.
📄️ Library
Analysis
Accounts and account balances are stored in a big table in the EVM; they are a part of the overall EVM state. When searching up your balances, most Ethereum wallets use a 3rd-party node like Infura or Alchemy by default.
Account Types
Ethereum has two account types:
- Externally-owned account (EOA) | controlled by anyone with the private keys
- Contract account | a smart contract deployed to the network, controlled by code
Both account types have the ability to:
- Receive, hold and send ETH and tokens
- Interact with deployed smart contracts
Key differences
Externally Owned Account | Contract Account |
---|---|
Has a unique address | Has a unique address |
Holds coin/tokens balances | Holds coins/tokens balances |
Private key is needed | No private or public key needed |
Controlled by humans | Controlled by code |
Free to create | Costs gas to create |
EOA
- Creating an account costs nothing
- Can initiate transactions
- Transactions between externally-owned accounts can only be ETH/token transfers
- Made up of a cryptographic pair of keys: public and private keys that control account activities
Contract
- Creating a contract has a cost because you're using network storage
- Can only send transactions in response to receiving a transaction
- Transactions from an external account to a contract account can trigger code which can execute many different actions, such as transferring tokens or even creating a new contract
- Contract accounts don't have private keys. Instead, they are controlled by the logic of the smart contract code