Een token implementeren
transfer en approve
Een token implementeren is een gratis De basis van Web3- en DApp-ontwikkeling-les op CoddyKit. Dit is les 2 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject De basis van Web3- en DApp-ontwikkeling. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus De basis van Web3- en DApp-ontwikkeling bevat in totaal 4 lessen.
Een token bouwen
Nu implementeer je de kern van een ERC-20-token vanaf nul. Als je de interne werking begrijpt, kun je echte tokens beter debuggen en controleren, zelfs wanneer je later bibliotheken gebruikt.
We richten ons op de status, transfer en approve.
Kernstatusvariabelen
Een token moet saldi en de totale voorraad bijhouden. Saldi worden opgeslagen in een toewijzing van adres naar hoeveelheid.
<code>contract Token {
string public name = 'MyToken';
string public symbol = 'MTK';
uint8 public decimals = 18;
uint256 public totalSupply;
mapping(address => uint256) public balanceOf;
}</code>De constructor
De constructor maakt een aanvankelijke voorraad aan voor de implementator. We verhogen totalSupply en crediteren het saldo van de maker.
<code>constructor(uint256 initialSupply) {
totalSupply = initialSupply;
balanceOf[msg.sender] = initialSupply;
}</code>De gebeurtenissen
Declareer de twee verplichte gebeurtenissen. We verzenden Transfer bij elke verplaatsing en Approval wanneer een machtiging wordt ingesteld.
<code>event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);</code>transfer implementeren
De functie transfer verplaatst tokens van de aanroeper naar een ontvanger. De functie moet controleren of de aanroeper voldoende saldo heeft en de gebeurtenis Transfer verzenden.
<code>function transfer(address to, uint256 amount) public returns (bool) {
require(balanceOf[msg.sender] >= amount, 'insufficient balance');
balanceOf[msg.sender] -= amount;
balanceOf[to] += amount;
emit Transfer(msg.sender, to, amount);
return true;
}</code>Bescherming tegen het nuladres
Tokens naar address(0) sturen vernietigt ze feitelijk per ongeluk. Veel implementaties wijzen dit expliciet af.
<code>function transfer(address to, uint256 amount) public returns (bool) {
require(to != address(0), 'transfer to zero');
require(balanceOf[msg.sender] >= amount, 'insufficient');
balanceOf[msg.sender] -= amount;
balanceOf[to] += amount;
emit Transfer(msg.sender, to, amount);
return true;
}</code>De allowance-toewijzing
Om gedelegeerde overdrachten te ondersteunen voegen we een geneste toewijzing toe: van eigenaar naar uitgever naar goedgekeurde hoeveelheid.
<code>mapping(address => mapping(address => uint256)) public allowance;</code>approve implementeren
Met de functie approve kan de aanroeper een uitgever machtigen om maximaal een bepaalde hoeveelheid van diens tokens te verplaatsen. De functie legt de machtiging vast en verzendt Approval.
<code>function approve(address spender, uint256 amount) public returns (bool) {
allowance[msg.sender][spender] = amount;
emit Approval(msg.sender, spender, amount);
return true;
}</code>Veiligheid tegen overloop
Sinds Solidity 0.8 voeren rekenkundige bewerkingen bij overloop en onderloop automatisch een revert uit. De aftrekking in transfer is veilig: bij een te laag saldo volgt een revert, hoewel de expliciete require een duidelijkere foutmelding geeft.
Waarom bool retourneren
De standaard schrijft een bool-retourwaarde voor vanwege compatibiliteit. Bij succes retourneren we true. Bij fouten voeren we een revert uit, wat de moderne conventie is en veiliger dan stilletjes false retourneren.
Alles samenvoegen
Met de status, gebeurtenissen, transfer en approve op hun plaats heb je een werkende fungibele token. De volgende les voegt transferFrom toe om de machtigingsstroom te voltooien.
<code>// state + constructor + events + transfer + approve
// = a minimal working ERC-20</code>Korte controle
Test je begrip van het implementeren van een token.
Samenvatting
Je hebt de kern van een ERC-20-token geïmplementeerd:
- Status: name, symbol, decimals, totalSupply, balanceOf-toewijzing
- De constructor maakt de aanvankelijke voorraad aan voor de implementator
transfercontroleert het saldo, werkt de status bij en verzendtTransferapprovelegt een machtiging vast en verzendtApproval- Bescherm tegen het nuladres en vertrouw op de overloopveiligheid van 0.8
Leer De basis van Web3- en DApp-ontwikkeling 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
- 29
- Lessen
- 105
Veelgestelde vragen
Is de les “Een token implementeren” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad De basis van Web3- en DApp-ontwikkeling, waaronder “Een token implementeren”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus De basis van Web3- en DApp-ontwikkeling bevat in totaal 4 lessen.
Wat leer ik in “Een token implementeren”?
transfer en approve Je oefent met De basis van Web3- en DApp-ontwikkeling 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 De basis van Web3- en DApp-ontwikkeling te beginnen?
Ervaring vooraf is niet nodig. De basis van Web3- en DApp-ontwikkeling 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 2 van 4.
Hoe lang duurt de les “Een token implementeren”?
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 De basis van Web3- en DApp-ontwikkeling?
Ja. Elke les over De basis van Web3- en DApp-ontwikkeling 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
- De ERC-20-standaard
- Een token implementeren
- Allowances
- Minten en burnen