Standard de jetons fongibles ERC-20
Comprenez les spécifications et les fonctionnalités du standard ERC-20 pour créer des jetons interchangeables.
Standard de jetons fongibles ERC-20 est une leçon Blockchain Smart Contracts with Solidity gratuite sur CoddyKit. Ceci est la leçon 1 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 Blockchain Smart Contracts with Solidity, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Blockchain Smart Contracts with Solidity comprend 4 leçons au total.
Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.
Intro to Blockchain Tokens
Welcome to the world of blockchain tokens! Beyond cryptocurrencies like Ether, blockchains host many other digital assets.
These assets, often called 'tokens', can represent anything from digital currency to ownership of real-world items, or even voting rights in a decentralized organization.
Fungibility: Interchangeable Assets
A key concept for tokens is fungibility. What does it mean?
- Fungible: Each unit is identical and interchangeable with another. Like a dollar bill – one $1 bill is the same as any other $1 bill.
- Non-Fungible: Each unit is unique and cannot be replaced by another. Like a piece of art or a specific house.
ERC-20 tokens are fungible, meaning every token is equal to every other token of the same type.
Meet the ERC-20 Standard
ERC-20 (Ethereum Request for Comment 20) is a technical standard for fungible tokens on the Ethereum blockchain.
It defines a common set of rules that all compliant tokens must follow. This ensures they can interact seamlessly with wallets, exchanges, and other smart contracts.
Interoperability Through Standards
Why is a standard so important?
- Compatibility: Any wallet that supports ERC-20 can manage any ERC-20 token.
- Ecosystem Growth: Decentralized applications (dApps) can easily integrate different tokens.
- Predictable Behavior: Developers know exactly how an ERC-20 token will behave, making integration safer and faster.
Core Function: `totalSupply()`
The totalSupply() function returns the total number of tokens in existence. It's a public view function, meaning it doesn't change the blockchain state and costs no gas to call.
Try running this simple contract to see how totalSupply might be represented:
pragma solidity ^0.8.0;
contract SimpleTokenInfo {
uint256 public totalTokens = 1000; // Example supply
function totalSupply() public view returns (uint256) {
return totalTokens;
}
}Core Function: `balanceOf()`
The balanceOf(address account) function returns the token balance of a specific address. It helps you check how many tokens a user owns.
Let's add balanceOf to our example. The deployer will start with all tokens.
pragma solidity ^0.8.0;
contract SimpleTokenInfo {
uint256 public totalTokens = 1000;
mapping(address => uint256) public balances;
constructor() {
balances[msg.sender] = totalTokens; // Assign all to deployer
}
function totalSupply() public view returns (uint256) {
return totalTokens;
}
function balanceOf(address account) public view returns (uint256) {
return balances[account];
}
}Core Function: `transfer()`
The transfer(address recipient, uint256 amount) function allows the sender of the transaction to send tokens directly to another address.
This is the most common way to move tokens between users.
pragma solidity ^0.8.0;
contract SimpleTokenInfo {
uint256 public totalTokens = 1000;
mapping(address => uint256) public balances;
constructor() {
balances[msg.sender] = totalTokens;
}
function totalSupply() public view returns (uint256) {
return totalTokens;
}
function balanceOf(address account) public view returns (uint256) {
return balances[account];
}
function transfer(address recipient, uint256 amount) public returns (bool) {
require(balances[msg.sender] >= amount, "Insufficient balance");
balances[msg.sender] -= amount;
balances[recipient] += amount;
return true;
}
}Delegated Transfers: `approve()` & `allowance()`
ERC-20 also supports delegated transfers, where one user (the owner) allows another address (the spender) to move tokens on their behalf.
approve(address spender, uint256 amount): The owner grants permission to a spender to withdraw a specificamountof tokens.allowance(address owner, address spender): Returns the amount of tokens that thespenderis currently allowed to withdraw from theowner.
Executing Delegated Transfers: `transferFrom()`
Once an approve() call has been made, the designated spender can then use the transferFrom() function.
transferFrom(address sender, address recipient, uint256 amount): Allows a spender to transfer amount tokens from the sender's balance to the recipient, provided the spender has enough allowance from the sender.
Tracking Actions: ERC-20 Events
ERC-20 defines two standard events: Transfer and Approval. These events are crucial for off-chain applications (like wallets or block explorers) to track token movements and approvals without having to read the entire blockchain state.
They emit logs that can be efficiently indexed and queried.
pragma solidity ^0.8.0;
contract EventExample {
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
function demonstrateTransferEvent(address _to, uint256 _value) public {
// Imagine actual transfer logic here
emit Transfer(msg.sender, _to, _value);
}
function demonstrateApprovalEvent(address _spender, uint256 _value) public {
// Imagine actual approval logic here
emit Approval(msg.sender, _spender, _value);
}
}Check Your Understanding
The ERC-20 standard outlines specific functions that all compliant tokens must implement. Understanding these is crucial for working with tokens.
ERC-20: Your Token Blueprint
You've now learned about the ERC-20 Fungible Token Standard! It's the blueprint for most interchangeable tokens on Ethereum.
- It defines core functions like
totalSupply(),balanceOf(), andtransfer(). - It enables delegated transfers with
approve(),allowance(), andtransferFrom(). - Standard events
TransferandApprovalhelp track token activity.
This standard ensures that all ERC-20 tokens are compatible, making the Ethereum ecosystem robust and easy to navigate. Next, we'll dive into implementing your own ERC-20 token!
Questions Fréquemment Posées
La leçon « Standard de jetons fongibles ERC-20 » est-elle gratuite ?
Oui — le texte complet de « Standard de jetons fongibles ERC-20 » 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 Blockchain Smart Contracts with Solidity, passe à CoddyKit PRO. Le cours Blockchain Smart Contracts with Solidity comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Standard de jetons fongibles ERC-20 » ?
Comprenez les spécifications et les fonctionnalités du standard ERC-20 pour créer des jetons interchangeables. Tu pratiques Blockchain Smart Contracts with Solidity 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 Blockchain Smart Contracts with Solidity ?
Aucune expérience préalable n'est requise. Blockchain Smart Contracts with Solidity 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 1 sur 4.
Combien de temps prend la leçon « Standard de jetons fongibles ERC-20 » ?
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 Blockchain Smart Contracts with Solidity ?
Oui. Chaque leçon Blockchain Smart Contracts with Solidity 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
- Standard de jetons fongibles ERC-20
- Mise en œuvre d’un jeton ERC-20
- Jetons non fongibles ERC-721 (NFT)
- Standard multi-jetons ERC-1155