ERC-20 is een standaard voor cryptocurrency die als token op de Ethereum blockchain kan worden gebruikt. Bekende voorbeelden van ERC20 coins zijn bijvoorbeeld Tether (USDT), BNB, OMG, ZRX, ZIL, ICX, HOT en IOST. Veel ICO’s worden als ERC20 token gelanceerd, om daarna met de inkomsten het realiseren van een eigen blockchain mogelijk te maken. Maar hoe maak je nou zo’n eigen token? Op basis van onderstaande handleiding kan je al over 20 minuten je eigen ERC20 token lanceren! Succes 🙂
Let op: Voer onderstaande eerst uit op het Test Netwerk, dat is gratis en stelt je in staat om eventuele fouten nog te corrigeren. Lanceer je de coin op het productie netwerk van Ethereum, dan wordt de code definitief in de blockchain opgenomen en kan je deze nooit meer wijzigen (wel upgraden mits je daar vooraf rekening mee houdt!).
Stap 1: Ga naar https://www.myetherwallet.com (MEW) en maak een nieuwe wallet aan. In de testfase kies je rechtsbovenin voor het Ropsten Test network, in de live fase kies je gewoon voor MEW Ether network. Sla de private key of 12 woorden goed op, anders kan je nooit meer inloggen. Noteer het “Address” veld dat je na het aanmaken ziet. Dit wordt het adres waarop straks de airdrop van je nieuwe eigen token plaats zal vinden.
Stap 2: Download het voorbeeld smartcontract via https://github.com/bitfwdcommunity/Issue-your-own-ERC20-token/blob/master/contracts/erc20_tutorial.sol. Let op: Deze ondersteunt standaard geen update/upgrade mogelijkheden! Het achteraf wijzigen van je coin of de mogelijkheden is dan niet mogelijk!
Stap 3: Voor het testnetwerk: maak een Metamask.io account aan, kies het Ropsten Testnetwerk en ga naar https://faucet.metamask.io en maak bijv. 1 ETH naar je test walletadres over. Voor het productienetwerk: Stuur wat ETH (+-0,03) naar het walletadres.
Stap 4: Open het .sol bestand van #2 in een teksteditor en bewerk de volgende regels:
– 6, 7, 8 en 9 (Geen effect, puur voor herinnering bij de volgende velden)
– 102: Contract KORTENAAMVANDECOIN
– 116: symbol: KORTENAAMVANDECOIN
– 117: name: LANGERENAAMVANDECOIN
– 118: Decimals op 18 laten staan
– 119: De hoeveelheid coins van regel 9, met daarachter 18 nullen (het aantal decimalen dus, zonder . of , er tussen)
– 120 & 121: Vervang het 0x… adres door het adres van stap #1. Hier worden de coins op gestort.
Stap 5: Ga naar http://remix.ethereum.org/ en copy paste de inhoud van erc20_tutorial.sol naar het voorbeeld .sol contract dat je ziet. Kies bij de compiler versie 0.4.24 (of nieuwer, je ziet de juiste versie op de eerste regel van het .sol bestand staan)
Stap 6: Klik op compile, als het goed is zie je groene tabjes verschijnen. Kies bij Details de naam van je nieuwe coin. Staat die er niet tussen, dan heb je hem niet goed in het .sol bestand geplaatst.
Stap 7: Kies voor Bytecode. Nou zijn er meerdere opties, je ziet een zogenaamd JSON formaat, waar ergens staat: Bytecode { …… }. Kopieer het stuk tussen de {}’s, zonder de {} eromheen. Copy paste dit tijdelijk in een ander bestand en zet er 0x voor, dus: 0xBYTECODEHIER.
Stap 8: Ga naar MEW (MyEtherWallet.com) en kies het juiste netwerk (Ropsten Test network) of MEW Ether network (Productie). Login en kies bovenin voor de optie Contracts en daarna voor Deploy contract. Copy paste de Bytecode (inclusief voorloop 0x) in het bovenste veld. Als alles goed is gegaan wordt de rand van dit veld groen. Wordt dit rood, dan heb je iets verkeerd gedaan. De waarde in het GAS veld wordt automatisch bijgewerkt. Selecteer onderin de manier om in te loggen en voer dit uit. Nu kan je de transactie Signen, daarna zal je smartcontract op de blockchain geplaatst worden. Op het testnetwerk kan je weinig verkeerd doen, op het productienetwerk kan je hierna niet meer terug, let dus erg goed op wat je doet! Kies voor Deploy transaction en als dat goed gaat heb je zojuist je eerste eigen muntje gemaakt, gefeliciteerd!
Let op: Het wallet adres voor het test- en productienetwerk wijken van elkaar af. Een adres op het testnetwerk is niet gelijk aan het productienetwerk. Wijzig dit dus als je van test naar productie gaat in het .sol bestand!