ERC-777 Token Standard
ERC-777 is a fungible token standard improving the existing ERC-20 standard.
To better understand this page, we recommend you first read about ERC-20.
The ERC-777 provides the following improvements over ERC-20.
Hooks are a function described in the code of a smart contract. Hooks get called when tokens are sent or received through the contract. This allows a smart contract to react to incoming or outgoing tokens.
The hooks are registered and discovered using the ERC-1820 standard.
- Hooks allow sending tokens to a contract and notifying the contract in a single transaction, unlike ERC-20, which requires a double call (
transferFrom) to achieve this.
- Contracts that have not registered hooks are incompatible with ERC-777. The sending contract will abort the transaction when the receiving contract has not registered a hook. This prevents accidental transfers to non-ERC-777 smart contracts.
- Hooks can reject transactions.
The standard also solves the confusion around
decimals caused in ERC-20. This clarity improves the developer experience.
ERC-777 contracts can be interacted with as if they were ERC-20 contracts.