Title | Token Standard |
Author | Jacques Dafflon, Jordi Baylina, Thomas Shababi |
Status | Final |
Created | 2017-11-20 |
Description | http://eips.ethereum.org/EIPS/eip-777 |
Specification | http://eips.ethereum.org/EIPS/eip-777#Specification |
Category | ERC |
Requires | 1820 |
This standard defines a new way to interact with a token contract while remaining backward compatible with ERC20.
It defines advanced features to interact with tokens. Namely, operators to send tokens on behalf of another address—contract or regular account—and send/receive hooks to offer token holders more control over their tokens.
It takes advantage of ERC1820 to find out whether and where to notify contracts and regular addresses when they receive tokens as well as to allow compatibility with already-deployed contracts.
This standard tries to improve upon the widely used ERC20 token standard. The main advantages of this standard are:
tokensToSend
hook. (Rejection is done by revert
ing in the hook function.)tokensReceived
hook. (Rejection is done by revert
ing in the hook function.)approve
/transferFrom
) to achieve this.data
and operatorData
bytes fields to be used freely to pass data from the holder and the operator, respectively.
It is backward compatible with wallets that do not contain the tokensReceived
hook function by deploying a proxy contract implementing the tokensReceived
hook for the wallet.