Today, the ERC20 token is one of the most popular types of cryptocurrency. But what is an ERC20 token and what do they do? Here’s everything you need to know about the ERC20 token, a cryptocurrency that exists in the Ethereum network.
Ethereum: a Cryptocurrency and a Blockchain
In addition to being the second largest cryptocurrency by market cap, Ethereum also a blockchain for running smart contracts and DApps. This is why Ethereum has been the most popular ICO, or initial coin offering, platform since 2017.
ICOs on the Ethereum platform raised over $4 billion USD in 2017. And the reason for this success is the ERC20 token.
What is an ERC20 Token?
Fabian Vogelsteller proposed the ERC20 token in 2015. Vogelsteller is an Ethereum developer and software engineer often referred to as the “Father of ICO.”
“ERC” stands for Ethereum Request for Comment. “20” is the number of the request, meaning the submission to improve the platform.
As part of his proposal, Vogelsteller outlined rules that any token on the Ethereum blockchain should follow. ERC20 is, therefore, a way of standardizing token creation. This allows tens of thousands of different currencies to operate on the same blockchain without the need for customized software.
What Are They For?
The Ethereum platform consists of a blockchain plus a virtual machine that can execute smart contracts. And ERC20 tokens are essential to the operation of Ethereum-based smart contracts.
Specifically, smart contracts handle automated transactions between parties that have already agreed to and qualified for certain terms and conditions. This involves keeping track of their wallet balances, too.
How do tokens come into play? Users send Ether (ETH) to a smart contract that returns a specific ERC20 token.
DApps, or decentralized applications, are built using smart contracts. This means ERC20 tokens serve as the currency that allows a dApp to operate on the Ethereum platform.
What do ERC20 Tokens Represent?
What is an ERC20 token? It can represent many things aside from a token that allows smart contracts and DApps to function.
It can represent the following things:
- Utility tokens that facilitate smart contract and DApp functions
- Shares in a company, meaning a security tokens
- Reward program points
- Digital representations of real-world assets like gold or a property deed
Benefits of Using an ERC20 Token
There are two main advantages to using an ERC20 token within the Ethereum ecosystem: standardization and safety.
The single most important advantage of ERC20 tokens is standardization.
In the early days of ICOs, developers programmed smart contracts using idiosyncratic code that made it extremely difficult (and complicated) for exchanges and cryptocurrency wallets to provide support and interoperability. In short, many tokens were not just incompatible with exchanges, but also incompatible with each other.
ERC20 tokens eliminate the need for exchanges and wallets to write custom code to support each new token. Instead, with ERC20 tokens, exchanges and wallet providers only have to implement the standard code once.
And all subsequently created ERC20 tokens will be supported without the need to update the code. This is why over 100,000 ERC20 token-based smart contracts currently operate on the Ethereum platform.
Another advantage of ERC20 tokens is that they reduce vulnerabilities. Before the ERC20 standard went into use, smart contracts were often riddled with bugs that presented serious security risks.
The problem is that once a smart contract is deployed, its creators cannot modify it. So if a developer finds an error after the fact, they cannot fix it. Bugs in smart contract code can let users steal tokens from others or may even lose tokens.
The ERC20 Protocol isn’t Perfect
The ERC20 protocol does have its bugs. A major problem that can occur is when it sends ERC20 tokens instead of Ether to a smart contract, resulting in their loss. Approximately $3 million USD has vanished due to this problem.
In response to bugs like this, there are plans to release a new cryptocurrency called the ERC223 token.
How an ERC20 Token Works
There are 6 mandatory parameters and 3 optional parameters that define every ERC20 in existence, like the decentralized platform EOS. These are the requirements that must exist within a smart contract’s code. They govern the token’s issuance and transaction protocol.
- [totalSupply]: This part of the code defines the total supply of tokens. Once this number is reached, the smart contract will cease to issue new tokens.
- [balanceOf]: This command returns the number of tokens a given wallet holds.
- [transfer]: This part of the code takes a certain amount of tokens from the total supply and gives it to a user.
- [transferFrom]: This command transfers tokens between two users who have them.
- [approve]: This part of the code checks a transaction against the total supply of tokens, to make sure none are missing and that there are no extra.
- [allowance]: This command checks a user’s balance to make sure it has enough funds to send a certain amount of tokens to someone else.
- [name]: Sets the name of the token to whatever its creator wishes.
- [symbol]: Sets the alphabetic designation or “ticker symbol” that will identify the token on the Ethereum platform.
- [decimals]: This parameter sets the subdivisions or fundamental unit of the token as a currency. Here, most ERC20 creators follow the standard Ether uses, which is 18. Higher decimals allow users to hold smaller, fractional amounts of the token, while larger decimal numbers make the units larger.
Standardizing the Ethereum Network
There are nearly 40,000 ERC20 tokens and more than 100,000 smart contracts that use them. In other words, the ERC20 standard makes widespread adoption possible.
Indeed, ERC20 was born out of the problems that non-standardization posed to token creation and ICO popularization. It makes token creation easy and allows them to exist within one blockchain.
Now that ERC20 is running up against its own problems, there’s a new Ethereum Request for Comment, number 223, that is paving the way for a new standardized Ethereum.