Blockchain-smart contracts met Solidity · Les

ERC-20-standaard voor fungibele tokens

Krijg inzicht in de specificaties en functionaliteit van de ERC-20-standaard voor het maken van uitwisselbare tokens.

Les 1 van 412 stappen

ERC-20-standaard voor fungibele tokens is een gratis Blockchain-smart contracts met Solidity-les op CoddyKit. Dit is les 1 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Blockchain-smart contracts met Solidity. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Blockchain-smart contracts met Solidity bevat in totaal 4 lessen.

Inleiding tot blockchain-tokens

Welkom in de wereld van blockchain-tokens! Naast cryptovaluta zoals Ether bevatten blockchains nog veel meer digitale activa.

Deze activa, die vaak 'tokens' worden genoemd, kunnen van alles vertegenwoordigen: van digitale valuta tot eigendom van objecten uit de echte wereld of zelfs stemrechten in een gedecentraliseerde organisatie.

Deelbaarheid: onderling verwisselbare activa

Een belangrijk concept bij tokens is fungibility. Wat betekent dat?

  • Fungible: elke eenheid is identiek aan een andere en kan ermee worden verwisseld. Denk aan een bankbiljet van één dollar: elk biljet van $1 is hetzelfde als elk ander biljet van $1.
  • Non-Fungible: elke eenheid is uniek en kan niet door een andere worden vervangen. Denk aan een kunstwerk of een specifiek huis.

ERC-20-tokens zijn fungible. Dat betekent dat elke token gelijk is aan elke andere token van hetzelfde type.

Maak kennis met de ERC-20-standaard

ERC-20 (Ethereum Request for Comment 20) is een technische standaard voor fungible tokens op de Ethereum-blockchain.

De standaard definieert een gemeenschappelijke set regels die alle tokens die eraan voldoen moeten volgen. Zo kunnen ze probleemloos samenwerken met wallets, handelsplatforms en andere smart contracts.

Interoperabiliteit dankzij standaarden

Waarom is een standaard zo belangrijk?

  • Compatibiliteit: elke wallet die ERC-20 ondersteunt, kan elke ERC-20-token beheren.
  • Groei van het ecosysteem: gedecentraliseerde applicaties (dApps) kunnen eenvoudig verschillende tokens integreren.
  • Voorspelbaar gedrag: ontwikkelaars weten precies hoe een ERC-20-token zich gedraagt, waardoor integratie veiliger en sneller wordt.

Kernfunctie: `totalSupply()`

De functie totalSupply() retourneert het totale aantal tokens dat bestaat. Het is een openbare view-functie. Dat betekent dat de status van de blockchain niet wordt gewijzigd en dat het aanroepen ervan geen gas kost.

Voer dit eenvoudige contract uit om te zien hoe totalSupply kan worden weergegeven:

pragma solidity ^0.8.0;

contract SimpleTokenInfo {
    uint256 public totalTokens = 1000; // Example supply

    function totalSupply() public view returns (uint256) {
        return totalTokens;
    }
}

Kernfunctie: `balanceOf()`

De functie balanceOf(address account) retourneert het token-saldo van een specifiek adres. Hiermee kun je controleren hoeveel tokens een gebruiker bezit.

Voeg balanceOf toe aan ons voorbeeld. De deployer begint met alle 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];
    }
}

Kernfunctie: `transfer()`

Met de functie transfer(address recipient, uint256 amount) kan de afzender van een transactie tokens rechtstreeks naar een ander adres sturen.

Dit is de meest gebruikte manier om tokens tussen gebruikers te verplaatsen.

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;
    }
}

Gemachtigde overdrachten: `approve()` en `allowance()`

ERC-20 ondersteunt ook gemachtigde overdrachten. Daarbij staat de ene gebruiker (de owner) een ander adres (de spender) toe om namens hem of haar tokens te verplaatsen.

  • approve(address spender, uint256 amount): de eigenaar geeft een spender toestemming om een specifiek amount aan tokens op te nemen.
  • allowance(address owner, address spender): retourneert het aantal tokens dat de spender momenteel van de owner mag opnemen.

Gemachtigde overdrachten uitvoeren: `transferFrom()`

Nadat er een aanroep van approve() is gedaan, kan de aangewezen spender de functie transferFrom() gebruiken.

transferFrom(address sender, address recipient, uint256 amount): hiermee kan een spender amount tokens van het saldo van de sender naar de recipient overboeken, op voorwaarde dat de spender voldoende allowance van de sender heeft.

Acties bijhouden: ERC-20-gebeurtenissen

ERC-20 definieert twee standaardgebeurtenissen: Transfer en Approval. Deze gebeurtenissen zijn essentieel voor toepassingen buiten de blockchain (zoals wallets of blockchainverkenners) om tokenbewegingen en goedkeuringen bij te houden zonder de volledige status van de blockchain te hoeven lezen.

Ze genereren logboekvermeldingen die efficiënt kunnen worden geïndexeerd en opgevraagd.

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);
    }
}

Controleer je begrip

De ERC-20-standaard beschrijft specifieke functies die alle tokens die eraan voldoen moeten implementeren. Als je deze begrijpt, kun je goed met tokens werken.

ERC-20: het ontwerp voor je token

Je hebt nu geleerd over de ERC-20-standaard voor fungible tokens! Dit is het ontwerp waarop de meeste onderling verwisselbare tokens op Ethereum zijn gebaseerd.

  • De standaard definieert kernfuncties zoals totalSupply(), balanceOf() en transfer().
  • Gemachtigde overdrachten zijn mogelijk met approve(), allowance() en transferFrom().
  • Met de standaardgebeurtenissen Transfer en Approval kun je tokenactiviteit bijhouden.

Deze standaard zorgt ervoor dat alle ERC-20-tokens compatibel zijn, waardoor het Ethereum-ecosysteem robuust en gemakkelijk te gebruiken is. Hierna leer je hoe je je eigen ERC-20-token implementeert!

Gratis beginnen

Leer Blockchain-smart contracts met Solidity met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
12
Lessen
48

Veelgestelde vragen

Is de les “ERC-20-standaard voor fungibele tokens” gratis?

Ja — de volledige tekst van “ERC-20-standaard voor fungibele tokens” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Blockchain-smart contracts met Solidity wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Blockchain-smart contracts met Solidity bevat in totaal 4 lessen.

Wat leer ik in “ERC-20-standaard voor fungibele tokens”?

Krijg inzicht in de specificaties en functionaliteit van de ERC-20-standaard voor het maken van uitwisselbare tokens. Je oefent met Blockchain-smart contracts met Solidity door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Blockchain-smart contracts met Solidity te beginnen?

Ervaring vooraf is niet nodig. Blockchain-smart contracts met Solidity op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 1 van 4.

Hoe lang duurt de les “ERC-20-standaard voor fungibele tokens”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Blockchain-smart contracts met Solidity?

Ja. Elke les over Blockchain-smart contracts met Solidity bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. ERC-20-standaard voor fungibele tokens
  2. Een ERC-20-token implementeren
  3. ERC-721-non-fungible tokens (NFT's)
  4. ERC-1155-multitokennorm
← Terug naar Blockchain-smart contracts met Solidity