ERC223 Token Standard

It is supposed to replace wETH

The main goals of developing the ERC223 token standard were:

  1. "Accidentally lost tokens inside contracts: there are two different ways to transfer ERC20 tokens depending on is the receiver address a contract or a wallet address. You should call transfer to send tokens to a wallet address or call approve on token contract and then transferFrom on the receiver contract to send tokens to the contract. Accidentally, a call of transfer function to a contract address will cause a loss of tokens inside the receiver contract.

  2. Inability of handling incoming token transactions: ERC20 token transaction is a call of transfer function inside token contract. ERC20 token contract is not notifying receiver that transaction occurs. Also there is no way to handle incoming token transactions on contract and no way to reject any non-supported tokens.

  3. ERC20 token transaction between wallet address and the contract is a couple of two different transactions in fact: You should call approve on token contract and then call transferFrom on another contract when you want to deposit your tokens into it.

  4. Ether transactions and token transactions behave differently: one of the goals of developing ERC223 was to make token transactions similar to Ether transactions to avoid users mistakes when transferring tokens and make interaction with token transactions easier for contract developers." - ERC Author

wETH Simple explanation

  • Ethereum (ETH) is not [[ERC20]] compatible standard

  • In order for ETH to be tradable for other tokens (ERC720) it needs to be wrapped into wETH form

  • " When you "wrap" ETH, you aren't really wrapping so much as trading via a smart contract for an equal token called wETH. If you want to get plain ETH back, you need to "unwrap" it. AKA trade it back for plain ETH."

Source: https://weth.io/

Further reading

  • Full implementation: https://github.com/Dexaran/ERC223-token-standard

  • Implementation is ready to be implemented: https://github.com/Dexaran/ERC223Token

Last updated