An ERC-20 token , or ERC-20 token in English, is a standard token created and traded on the Ethereum platform . This type of token is fungible , in the sense that its units are interchangeable, and programmable , i.e. the spending conditions are set at the time of its creation.
The ERC-20 standard is therefore a smart contract standard allowing anyone to create their own token on Ethereum. It is described in EIP 20, written by Fabian Vogelsteller and Vitalik Buterin in 2015.
Why the name ERC-20? ERC stands for E thereum R equest for C omments, and the number 20 simply comes from the number assigned to the proposal when it was created.
Examples of ERC-20 tokens
The ERC 20 standard is the most widely used in the industry. Many tokens used to raise funds by Initial Coin Offering were thus sold as ERC-20 tokens.
Among the best-known ERC20s are:
- The Basic Attention Token (BAT), or “basic attention token” in good French, used to reward the viewing of advertisements on the web, thanks to the Brave browser.
- The Crypto.com Coin (CRO), a token linked to the use of the payment card and other Crypto.com services.
- The Chainlink Token (LINK).
- Loyalty tokens from exchange platforms such as the Leo Token (LEO) from Bitfinex, the Huobi Token (HT) or the OKB from OKEx.
- Many stablecoins like Tether USD (USDT), Paxos Standard (PAX) or dai (DAI).
Note that several major cryptocurrencies have also gone through the ERC-20 stage: they were issued in the form of ERC-20 tokens before having their own blockchain when the mainnet was launched . We can cite the EOS token and the Binance Coin which are in this case.
Some practical information
How to know if a token is an ERC-20?
To find out if a crypto-asset is an ERC-20 token, go to Etherscan, a specialized block explorer for Ethereum. Then, type the name or stock symbol of the crypto-asset in question (here I wrote “tether”). Etherscan will tell you which tokens bear a name or have an approaching stock symbol, as well as their type (ERC-20 or other).
A small icon indicating that Etherscan has verified the token will normally appear near legitimate tokens. If we trust Etherscan here, we can assume that the Tether USD is the token corresponding to the contract which has the identifier 0xdac17f958d2ee523a2206206994597c13d831ec7.
Etherscan also makes the list of major ERC-20 tokens available at https://etherscan.io/tokens.
Which wallets support ERC-20 tokens?
Most Ethereum wallets support ERC-20 tokens, although not all of them can manage these tokens directly. The best wallets for ERC-20 are:
- MetaMask: This web browser extension gives you the ability to manage all existing ERC-20 tokens. It can also be connected to a hardware wallet like the Ledger Nano S , Ledger Nano X or Trezor Model T.
- The MyEtherWallet web interface , which allows advanced use of ERC-20 tokens and other smart contracts.
- BRD and Edge mobile wallets which support a large number of ERC-20 tokens by default and which allow a personalized addition.
- Exodus and Jaxx Liberty cross- platform wallets which also manage a large number of ERC-20 tokens.
How to create an ERC-20 token?
The ERC-20 standard is one of the most secure and proven token standards. It therefore makes sense to use it if you want to create your own token on Ethereum.
There are plenty of guidelines on the web to help you create your own ERC-20 token. We recommend our tutorial on the subject: Develop your own Ethereum token .
As we said, an ERC-20 token is a digital currency that exists thanks to a smart contract hosted on the Ethereum platform. This contract follows the ERC-20 standard which is composed of 9 basic functions and 2 events . It is also generally accompanied by 3 constants used to define the token. The constants linked to the contract are:
- name: the name of the token. Example: Tether USD.
- symbol: the stock symbol of the token. Example: USDT.
- decimals: the number of decimals of the token, by default 18 (like ether).
The functions are as follows:
- totalSupply: function used to obtain the total quantity of units in circulation.
- balanceOf: function giving the user the balance of units present on an Ethereum account.
- transfer: function allowing an account to send units to another account.
- transferFrom: function that allows units to be sent from one account to another account, without the account using this function being the one that owns the units.
- allowance: function that returns the number of units an account is allowed to withdraw from the contract .
- approve: function that modifies the number of units authorized to be withdrawn from the contract by a given account.
Finally, the basic events are:
- Transfer: triggered by the functions transferand transferFrom.
- Approval: triggered by the function approve.
Of course, developers can base themselves on this standard and add functions and events to it in order to create their personalized token.