For general questions, please read our F.A.Q.
Disclaimer: Cryptomover is not a licensed financial advisor. The information presented in this piece is an opinion, and is not purported to be fact. Cryptocurrency is a volatile virtual commodity and can move quickly in any direction. Cryptomover is not responsible for any loss incurred by following this advice.


78. What are ERC20 and ERC223 Tokens? (Published: 21st Nov, 2017)
Today’s food for thought we look at the Ethereum token creation conventions, namely the ERC20 and ERC223 standards. This can be especially helpful to developers new to solidity and want to create a token on it. Understanding this can also help investors in making their investment decisions for ICO.

Theoretically, smart contract on Ethereum blockchain can be arbitrary designed if there is no syntax error within Solidity. However, for several third-party software such as Myetherwallet and Mist to have easy access to your smart contract, a set of conventions has been decided for token creation smart contracts. These conventions include variables, functions and their names. Ethereum token developers are strongly recommended to follow this set of conventions, otherwise their tokens may not be recognized by ethereum wallets. Most people have probably heard of ERC20 token standards. This article will mainly focus on how ERC223 standards has improved on ERC20.

ERC20 guarantees the token created to have simple transferability among wallets and contracts. There are three functions: ‘transfer’, ‘transferFrom’ and ‘allow’ that must exist in every ERC20 contract. People can simply use ‘transfer’ to send their tokens and if someone wants to spend token reside in a contract, the contract must first ‘allow’ the spender before the spender can ‘transferFrom’ token from that contract.

As the version of Solidity and Ethereum virtual machine updates, more functions are available and a new set of stardard, namely ERC223 has been created. ERC223 is backwards compatible with ERC20 meaning every software that supports ERC20 will also supports ERC223. In additions, ERC223 merges the token transfer function among wallets and contracts into one single function ‘transfer’. The biggest change is that ERC223 no longer allow token to be transferred to a contract that does not allow token to be withdrawn. Before ERC223, if someone send his/her token into a contract that has not allowed anyone to use it, the token will simply be locked and can never leave that contract. Because of this, hundreds of thousands of dollars’ worth of ERC20 token has been locked up. Merging functions can also save transaction fees in terms of gas.

Key messages:
1. Follow either ERC20 or ERC223 standards when you want to create a token on Ethereum if you want your token to be observable on wallets.
2. Learn the token structure before you invest. If the token is ERC20, then pay special attention before sending it to a contract address.
3. For developers, we recommend shifting from ERC20 to ERC223 for the benefits we have mentioned above. The standard solidity code is available here:

© 2017-2018