What Are Ethereum Tokens? ERC-20, ERC-223, ERC-721, and ERC-777 Tokens Explained

As if understanding Bitcoin wasn’t difficult enough, Ethereum adds a whole new level of complexity to the equation. Even if you have a solid technical background, it’s going to take some time and independent research before everything makes sense – unless you’re a genius, anyway.

With that being said, a basic understand of how Ethereum works can actually make it simpler to understand cryptocurrencies in general. You see, Ethereum is a decentralized platform upon which smart contracts can be written (in the Solidity programming language) and executed. It is the base layer that supports hundreds of decentralized applications (dApps).

Whenever a new application for blockchain technology and smart contracts is developed on top of Ethereum, a new Ethereum token can be created. The simplifying aspect of this process is that Ethereum has set standards for tokenization. Different types of applications will be tokenized according to different standards, depending on what the application is meant to do.

As a result of these standards, it is much more straightforward for smart contracts and tokens to interact and, therefore, for developers to create dapps on Ethereum. The common analogy you’ll hear to explain this benefit is that Ethereum is like the iOS or Android for dapps – an operating system that supports the applications and makes them much easier to build.

The most common standard for Ethereum tokens is currently the ERC-20 standard, but there are also ERC-223, ERC-721, and ERC-777 standards. In this article, we will explain each standard and how it is being used in the decentralized ecosystem.

What is an ERC-20 Token?

The ERC-20 standard used in smart contracts contains just 6 basic functions that make the token, well… functional. The code is so simple that you don’t need to have any computer science knowledge to understand it. Let’s go through it piece by piece.

First there is the totalSupply() function, which determines the total amount of tokens that will be  created to be exchanged within a given project’s token economy.

Then there is the transfer() function, which is used for the initial distribution of tokens to user wallets. This function is the biggest reason that ERC-20 tokens have become so popular for ICOs, as it makes it incredibly easy to send tokens to investors when the ICO has been completed.

The transferFrom() function is what then enables token holders to exchange tokens with one another after the initial distribution. Supposing that you want to send some BAT to a friend, this function takes your Ethereum wallet address, the recipient’s Ethereum wallet address, and the amount being sent, and then executes the transaction.

Next, as implied by its name, the balanceOf() function keeps track of the token balance in each user wallet. Simple enough.

The approve() function, meanwhile, is used to guarantee that the total token supply within the economy is held constant. In other words, this function is in place to ensure that nobody can create additional tokens out of thin air to benefit themselves.

Finally, the allowance() function makes sure transactions are valid before they are added to the blockchain. Whenever a user wants to transfer some tokens to another wallet, this function checks that the sending address has at least as many tokens as the amount stipulated in the transferFrom() function. In the event that it doesn’t, the transaction is not valid.

With these 6 functions, creating new tokens and developing platforms and wallets for them is exceedingly straightforward. This standard has already been employed by thousands of different projects. In fact, all of the projects in the Top 20 Ethereum Tokens are ERC-20 tokens.

TL;DR

ERC-20 Tokens:

  • Are the current industry standard
  • Consist of 6 key token functions
  • Already used by thousands of different cryptocurrency projects

What is an ERC-223 Token?

While the ERC-20 standard is very useful, it’s far from perfect. For example, one particularly bad design flaw with ERC-20s made it possible for tokens to be lost when people mistakenly send them to a smart contract using the process they would use for sending tokens to an ordinary wallet. Unfortunately, this has already resulted in the loss of over $3 million worth of ERC-20 tokens to date.

ERC-223 addresses this design flaw by allowing users to transfer tokens to smart contracts and wallets with the same function. Additionally, ERC-223 tokens improve on the efficiency of ERC-20s by making transfers require only 1 step rather than 2. That means that ERC-223 token transfers require only half the Gas (i.e. cheaper) as compared to ERC-20 transfers.

And on top of that, ERC-223 tokens are backwards compatible with ERC-20 tokens, meaning that they maintain all the original functionality while solving those bugs mentioned above.

As a result of these advantages, the ERC-223 standard may someday supplant ERC-20 as the most widely used standard for Ethereum tokens. However, most Ethereum wallets don’t yet support ERC-223 tokens, so adoption by project developers has been slow.

Given how quickly the cryptocurrency ecosystem evolves, though, don’t be surprised if ERC-223 tokens take off in popularity in 2019 or even sooner.

TL;DR

ERC-223 Tokens:

  • Address key flaws with the ERC-20 token standard
  • Require only half the Gas of ERC-20 tokens
  • Are backwards compatible with ERC-20
  • Have not yet been used by any noteworthy cryptocurrency projects

What is an ERC-721 Token?

ERC-721 tokens earned their first claim to fame when the Ethereum-based collectibles game, CryptoKitties, gained popularity at the end of 2017.

The key difference between the ERC-721 token standard and other ERC standards is that ERC-721 enables developers to easily create non-fungible tokens (NFTs). In other words, one token can be worth a different value than another token that’s being exchanged within the same platform/ecosystem.

Non-fungible tokens are extremely useful because they enable the tokenization of unique individual assets. That includes carefully bred digital cats, but also much more conventionally valuable assets such as artwork, vintage wines, real estate, diplomas, and more.

One of the best projects in the Ethereum ecosystem, 0x protocol, is working to add support for ERC-721 tokens and other new token standards in its v2 release, scheduled for late July 2018.

Another high-quality but new and lesser known project, 0xcert, focuses specifically on non-fungible tokens and enables anybody to create, own, and validate unique assets on the blockchain. Moreover, 0xcert makes it easy for developers to create dapps and smart contracts tailored to various types of unique assets.

As more real-world assets are tokenized in the coming years, you can bet that the ERC-721 token standard will become known for a lot more than CryptoKitties. Ownership of anything from fine art and music royalties to tickets for the next day’s ballgame can all be transparently transferred on the Ethereum blockchain. Supply chains can ensure product integrity and traceability at an unprecedented level. The possibilities for ERC-721 are exciting to say the least.

TL;DR

ERC-721 Tokens:

  • Are non-fungible tokens (NFTs)
  • Can be used to tokenize unique individual assets
  • First used by the Ethereum dapp CryptoKitties, but have many possible applications beyond digital gaming

What are ERC-777 and ERC-820 Tokens?

Similarly to ERC-223, ERC-777 is intended to improve upon the ERC-20 token standard and is backwards compatible with it.

One way ERC-777 is better than ERC-20 is that, like ERC-223, it addresses the design flaw that has led to over $3 million in lost tokens. What makes the ERC-777 standard unique, though, is the breadth of transaction handling mechanisms it includes.

To explain ERC-777, we must first start with the ERC-820 token standard. In that standard, a central registry of smart contracts is established on the Ethereum network. The registry makes it possible for anybody to “examine” a smart contract address and check the functions that it supports.

ERC-777 uses the same ERC-820 central registry to make smart contract functions easy to verify. It also establishes an entirely new set of functions rather than using the same ‘transfer’ and ‘approve’ functions employed in the ERC-20 standard. In place of those, ERC-777 uses a ‘send’ function which is used to transfer Ether itself.

Another big selling point for ERC-777 is that it allows for ‘approved operators’, meaning that people can approve smart contracts to move tokens on their behalf. This makes ERC-777 highly customizable, as it allows people to build extra functionality on top of tokens such as a mixer contract for improved transaction privacy or an emergency recover function to bail you out if you lose your private keys.

Additionally, ERC-777 creates a standard for minting and burning tokens, something which can be very useful depending on a project’s specific token economics.

Unfortunately, however, there are not yet any well-known applications built on the ERC-777 token standard for us to reference, so it remains to be seen whether this standard will be widely adopted in the future. Considering that it is more customizable than ERC-20 and reduces friction on transactions, just about every application on ERC-20 today could benefit from a move to ERC-777 in the future.

For anybody who really wants to dig into the details, further explanation of the transaction handling mechanisms that are part of the ERC-777 standard can be found in its github repository.

TL;DR

ERC-777 Tokens:

  • Address key flaws with the ERC-20 token standard
  • Are backwards compatible with ERC-20
  • Use functions used to transfer ETH itself, making transactions smoother
  • Allows for “approved operators,” making it more customizable than previous standards

Looking Ahead

The Ethereum platform isn’t staying static and neither are the token standards for building on top of it. While ERC-20 tokens dominate the Ethereum-based portion of the market for now, the future should see more and more projects moving to the new and improved ERC-223 or ERC-777 token standards.

With over 100,000 Token Contracts already live on Ethereum (yes, you read that right), the pace of development is showing no signs of slowing down. Most of those tokens will no doubt be redundant, useless, and valueless, but a select few of them might just change the world as we know it.

Related: Consensus Algorithms, Explained: What You Need To Know About Proof-of-Work, Proof-of-Stake, and Delegated Proof-of-Stake