Blockchain Smart Contracts with Solidity · Lezione

Standard per token fungibili ERC-20

Comprenda le specifiche e le funzionalità dello standard ERC-20 per creare token intercambiabili.

Lezione 1 di 412 passaggi

Standard per token fungibili ERC-20 è una lezione Blockchain Smart Contracts with Solidity gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Blockchain Smart Contracts with Solidity, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Blockchain Smart Contracts with Solidity include 4 lezioni in totale.

Parti di questa lezione non sono ancora state tradotte e vengono mostrate in inglese.

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 specific amount of tokens.
  • allowance(address owner, address spender): Returns the amount of tokens that the spender is currently allowed to withdraw from the owner.

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(), and transfer().
  • It enables delegated transfers with approve(), allowance(), and transferFrom().
  • Standard events Transfer and Approval help 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!

Gratis per iniziare

Impara Blockchain Smart Contracts with Solidity con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
12
Lezioni
48

Domande Frequenti

La lezione «Standard per token fungibili ERC-20» è gratuita?

Sì — il testo completo di «Standard per token fungibili ERC-20» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Blockchain Smart Contracts with Solidity, passa a CoddyKit PRO. Il corso Blockchain Smart Contracts with Solidity include 4 lezioni in totale.

Cosa imparerò in «Standard per token fungibili ERC-20»?

Comprenda le specifiche e le funzionalità dello standard ERC-20 per creare token intercambiabili. Eserciti Blockchain Smart Contracts with Solidity con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Blockchain Smart Contracts with Solidity?

Non è richiesta alcuna esperienza precedente. Blockchain Smart Contracts with Solidity su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.

Quanto tempo richiede la lezione «Standard per token fungibili ERC-20»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Blockchain Smart Contracts with Solidity?

Sì. Ogni lezione Blockchain Smart Contracts with Solidity include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Standard per token fungibili ERC-20
  2. Implementazione di un token ERC-20
  3. Token non fungibili ERC-721 (NFT)
  4. Standard multi-token ERC-1155
← Torna a Blockchain Smart Contracts with Solidity