Comptes et état
EOA et contrats
Comptes et état est une leçon Web3 & DApp Development Fundamentals gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Web3 & DApp Development Fundamentals, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Web3 & DApp Development Fundamentals comprend 4 leçons au total.
Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.
What Is the World State?
Ethereum's world state is the complete snapshot of all accounts and their data at a given moment.
Every transaction transforms this state from one valid version to the next. Accounts are the building blocks of that state.
Two Types of Accounts
Ethereum has exactly two account types:
- Externally Owned Accounts (EOAs) — controlled by private keys (users)
- Contract Accounts — controlled by their code
Both share the same 20-byte address format.
Externally Owned Accounts
An EOA is controlled by a private key. It can initiate transactions: send ETH or call contracts.
EOAs have no code of their own — they are simply key-controlled accounts that humans (or bots) operate.
EOA {
address: 0xAbc...123
balance: 4.2 ETH
nonce: 17
code: none
}Contract Accounts
A contract account holds code (bytecode) and storage. It has no private key and cannot start a transaction on its own.
It only acts when called by an EOA or another contract, running its code in response.
Contract {
address: 0xDef...456
balance: 10 ETH
code: 0x6080604052...
storage: { slot0: ..., slot1: ... }
}The Four Account Fields
Every account stores four fields:
- nonce — transaction count (EOA) or contracts created (contract)
- balance — ETH held, in wei
- storageRoot — hash of the account's storage
- codeHash — hash of the account's code
EOA vs Contract Differences
The key distinction:
- Only EOAs can initiate transactions
- Only contracts have code and significant storage
- An EOA's codeHash is empty; a contract's is not
How State Changes
State changes only through transactions. A transaction can move ETH, deploy a contract, or call a contract that updates its storage.
After each block, the world state advances to a new, agreed-upon version.
The State Trie
All accounts are stored in a giant Merkle Patricia Trie. Its root hash — the state root — is recorded in each block header.
This single hash commits to the entire world state, just as a Merkle root commits to all transactions.
block header includes:
stateRoot -> all accounts
txRoot -> all transactions
receiptRoot -> all receiptsAccount Creation
An EOA effectively exists the moment a key pair is generated — no on-chain step is needed until it transacts.
A contract account is created when a deployment transaction runs constructor code and stores the resulting bytecode.
Smart Contract Interaction
To interact with a contract, an EOA sends a transaction specifying the contract address and the function data.
The EVM looks up the contract's code by its codeHash and executes it, possibly updating storage.
Putting It Together
Ethereum's state is a collection of accounts. EOAs are key-controlled and initiate transactions; contracts hold code and storage and react to calls.
The state root in each block commits to all of it.
Quick Check
Test your accounts knowledge.
Recap: Accounts and State
You learned that:
- Ethereum has EOAs (key-controlled) and contract accounts (code-controlled)
- Only EOAs can initiate transactions
- Each account has a nonce, balance, storageRoot, and codeHash
- The state root commits to all accounts
You have completed the Web3 fundamentals track.
Apprends Web3 & DApp Development Fundamentals avec un tuteur IA — gratuit
Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.
- Cours
- 29
- Leçons
- 105
Questions Fréquemment Posées
La leçon « Comptes et état » est-elle gratuite ?
Oui — le texte complet de « Comptes et état » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Web3 & DApp Development Fundamentals, passe à CoddyKit PRO. Le cours Web3 & DApp Development Fundamentals comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Comptes et état » ?
EOA et contrats Tu pratiques Web3 & DApp Development Fundamentals avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Web3 & DApp Development Fundamentals ?
Aucune expérience préalable n'est requise. Web3 & DApp Development Fundamentals sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.
Combien de temps prend la leçon « Comptes et état » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Web3 & DApp Development Fundamentals ?
Oui. Chaque leçon Web3 & DApp Development Fundamentals inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Machine virtuelle Ethereum
- Stockage, mémoire, pile
- Opcodes
- Comptes et état