Written by Pablo Gómez
Founder & CEO at Metlabs · Reviewed on October 11, 2026
The standard was created to address ERC-20 gaps, especially tokens that got stuck in contracts unable to receive them. Operators replace the approve/allowance model with authorized operators. The tokensReceived and tokensToSend hooks fire automatically when tokens are received or sent, letting a contract run logic or reject a transfer on the spot. Hook discovery uses the ERC-1820 interface registry. ERC-777 is in Final status, created on 20 November 2017 by Jacques Dafflon, Jordi Baylina and Thomas Shababi.
Its main value today is as a security and best-practice reference. The standard itself is sound, but because the tokensReceived hook hands control to the receiver during the transfer, every contract should follow the checks-effects-interactions pattern or apply a reentrancy mutex. It is a textbook case cited to justify that ordering of operations in any integration that receives tokens through callbacks.
Adoption is limited: most of the ecosystem stayed on ERC-20, and later standards such as ERC-4626 and Permit2 met the real needs with a simpler implementation surface. For tokenization it is worth knowing as a contrast: ERC-2612 and account abstraction solve the approve-and-act experience without those hooks.
Sources
Also known as
- ERC777





