ERC-20 is het technische regelboek dat de meeste tokens op het Ethereum-netwerk volgen. In plaats van één specifieke coin te beschrijven, definieert het een gedeelde interface, een set functies en events die een smart contract moet implementeren, zodat wallets, exchanges en andere applicaties elke conforme token op dezelfde manier kunnen aanspreken.
De standaard, voorgesteld door ontwikkelaar Fabian Vogelsteller in 2015 en geformaliseerd als EIP-20, vereist zes kernfuncties: het opvragen van de totale supply, het uitlezen van een accountsaldo, het rechtstreeks overmaken van tokens, het overmaken namens iemand anders, het goedkeuren van een derde partij om een vastgesteld bedrag te besteden, en het controleren van die resterende allowance. Twee events, Transfer en Approval, leggen activiteit on-chain vast zodat saldi betrouwbaar te volgen zijn. De meeste tokens voegen ook optionele metadata toe: een naam, een tickersymbool en een decimals-waarde die bepaalt hoe deelbaar de token is.
Omdat de interface gestandaardiseerd is, kan één wallet of decentrale exchange duizenden ERC-20 tokens ondersteunen zonder voor elk token apart maatwerk te bouwen. Elke token heeft een eigen contract address, waaraan software de ene token van de andere onderscheidt. Het approve/transferFrom-patroon wordt veel gebruikt door DeFi-protocollen, maar is ook een terugkerende bron van phishingrisico, omdat gebruikers onbewust onbeperkte bestedingsrechten aan een kwaadaardig contract kunnen geven. Latere standaarden, waaronder permit-gebaseerde goedkeuringen, zijn ontworpen om dat risico te verkleinen.