0Pricing
Blockchain Smart Contracts with Solidity · Lekcja

Standard tokenów zamiennych ERC-20

Poznaj specyfikację i funkcjonalności standardu ERC-20 służącego do tworzenia zamiennych tokenów.

Standard tokenów zamiennych ERC-20 to bezpłatna lekcja Blockchain Smart Contracts with Solidity na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Blockchain Smart Contracts with Solidity, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Blockchain Smart Contracts with Solidity zawiera 4 lekcji w sumie.

Części tej lekcji nie zostały jeszcze przetłumaczone i są wyświetlane po angielsku.

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!

Często zadawane pytania

Czy lekcja „Standard tokenów zamiennych ERC-20” jest bezpłatna?

Tak — pełny tekst „Standard tokenów zamiennych ERC-20” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Blockchain Smart Contracts with Solidity, przejdź na CoddyKit PRO. Kurs Blockchain Smart Contracts with Solidity zawiera 4 lekcji w sumie.

Co nauczysz się w „Standard tokenów zamiennych ERC-20”?

Poznaj specyfikację i funkcjonalności standardu ERC-20 służącego do tworzenia zamiennych tokenów. Ćwiczysz Blockchain Smart Contracts with Solidity z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Blockchain Smart Contracts with Solidity?

Nie wymagamy żadnego doświadczenia. Blockchain Smart Contracts with Solidity w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.

Ile czasu zajmuje lekcja „Standard tokenów zamiennych ERC-20”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Blockchain Smart Contracts with Solidity?

Tak. Każda lekcja Blockchain Smart Contracts with Solidity zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Standard tokenów zamiennych ERC-20
  2. Implementacja tokena ERC-20
  3. Tokeny niewymienne ERC-721 (NFT)
  4. Standard multi-token ERC-1155
← Powrót do Blockchain Smart Contracts with Solidity