ERC-20, or Ethereum Request for Comment, is a technical standard that is used to issue tokens on the smart contract-enabled Ethereum blockchain. While there are other standards such as ERC-721 (for defining non-fungible tokens), most of the tokens created on the Ethereum platform are based on the ERC-20 standard.
Defining a Common Set of Rules for Ethereum-based Tokens
According to Etherscan, there are, at the time of writing, 196,695 ERC-20 token contracts that have been launched on the Ethereum network. The ERC-20 standard was developed in order to establish a common set of rules for issuing Ethereum-based tokens.
ERC-20 compliant tokens may be used to reliably and safely conduct transactions on the Ethereum blockchain - as they allow developers to accurately determine how token transfers will be conducted. In addition to defining how tokens are transferred between different crypto addresses, the ERC-20 standard specifies how data associated with tokens may be accessed.
Enabling a Tokenized Economy with the ERC-20 Standard
Initially proposed on November 19, 2015 by Fabian Vogelstellar, a Berlin-based Ethereum developer, the ERC-20 specification was developed to allow users to easily create blockchain-enabled tokens. The widely-used standard also allows developers to program additional functionality needed for utility tokens.
ERC-20 compliant tokens have mainly been issued during crowdfunding campaigns, called Initial Coin Offerings (ICOs). The majority of tokens used in ICO campaigns were ERC-20 compliant - as it’s one of the simplest standards to implement. Moreover, the commonly used token specification allows for interoperability with other Ethereum-based token standards.
Largest ERC-20 Token Sales Have Raised Over $200 Million Each
As confirmed by ICOData, the largest ERC-20 (or ICO) token sales conducted include those launched by the developers of EOS, Telegram Open Network (TON), Filecoin, and Tezos (XTZ) - with each crowdfunding campaign raising over $200 million.
Ethereum’s Native Token Not Based on ERC-20 Standard
Notably, Ethereum’s native token, Ether (ETH), is not based on the ERC-20 standard. In order to use Ether on crypto networks that only accept ERC-20 tokens, users may convert their ETH to a “wrapped” token, called “WETH.” All wrapped Ethereum tokens reside in a smart contract that is used to maintain a 1:1 peg to Ether.
As noted by Investopedia, ERC-20 tokens may digitally represent a wide range of assets including IOUs, vouchers, and even real estate property. Conducting ERC-20 transactions is also quite simple as they are supported by most cryptocurrency wallets that allow Ether transfers and deposits.
Software Bugs May Be Found in ERC-20 Tokens
However, there can be software bugs or glitches found in ERC-20 tokens as the Ethereum-based standard and blockchain technology are in their early stages of development.
For instance, ETH tokens that are transferred directly to a smart contract will result in a loss of funds.
The tokens are lost during the transfer process due to an error in the protocol which occurs when a token’s contract is unable to respond to token transfer requests. Approximately $70,000 worth of Ethereum tokens have been lost due to this glitch.
Optional and Mandatory Rules for ERC-20 Tokens
The Ethereum Community has developed a list of rules for defining ERC-20 tokens. There are nine rules for creating ERC-20 tokens - including 3 optional (recommended) guidelines and six mandatory rules.
A token’s name, the symbol associated with it, and the suggested use of up to 18 decimal places when using an ERC-20 token are optional rules or guidelines. As detailed by Cointelegraph, mandatory rules which ERC-20 tokens must follow include those associated with the following functions (or processes):
- Approve - used to prevent counterfeiting as this function checks each ERC-20 transaction against the outstanding token supply,
- Allowance - used to check balance of ERC-20 accounts before transfers, in order to determine whether an account has sufficient funds,
- balanceOf - a function that returns the number of tokens stored in a particular Ethereum account,
- transfer - used to manage the transfer of tokens to user accounts (taken from the token’s total supply),
- transferFrom - a function used to transfer tokens between different users,
- totalSupply - the total number of ERC-20 tokens issued
How Ethereum, Smart Contracts, and ERC-20 Tokens Work
In order to understand how ERC-20 tokens function in the smart contract-based Ethereum ecosystem, let’s review how the cryptocurrency’s blockchain and virtual machine work to support transactions on the open-source network.
As a permissionless and publicly accessible, decentralized network, Ethereum performs two main functions including registering transactions on its blockchain and processing smart contracts through its virtual machine. These functions are required when building decentralized applications (dApps) as they are an integral part of Ethereum’s economic system.
ERC-20 Tokens May Represent Proof of Ownership
Developers who deploy dApps on Ethereum are charged for using the crypto network’s computing power and all payments are made in Ether, the platform’s native cryptocurrency. While creating dApps, developers may issue ERC-20 tokens in order to use them as a currency or they may serve as “points” in a loyalty program.
DApp developers may also create ERC-20 tokens to represent proof of ownership of a property or other real world assets including gold or commodities. As explained, ERC-20 compliant tokens are issued through smart contracts.
Smart contracts also allow developers to manage transactions involving ERC-20 tokens - as they can be used to maintain a record of account balances. Ethereum-based smart contracts are programmed using Solidity, which uses If-This-Then-That (IFTTT) logic.
Following ERC-20 and Other Standards Makes It Easier to Update Source Code
After an ERC-20 tokens have been issued, they may be traded or used to pay for goods and services. Without an established standard like ERC-20, it would not be possible to trade tokens on the Ethereum network - as different tokens might not be compatible with each other.
It’s important for Ethereum developers to adhere to best practices which include following established standards such as the ERC-20 specification. Software programs must be well-documented so that it becomes easier for developers to understand what a particular piece of code does. Properly documented source code can also be updated in a more efficient manner.