ERC-777
In short: ERC-777 is a tradable token standard derived from ERC-20. It adds new features while staying backwards compatible, so wallets and apps built for ERC-20…
ERC-777 is a tradable token standard derived from ERC-20. It adds new features while staying backwards compatible, so wallets and apps built for ERC-20 can still connect to an ERC-777 token contract and use it as usual.
Why it matters
ERC-777 was designed to smooth out some of ERC-20's rough edges. It introduces "operators", addresses that a holder authorizes to send tokens on their behalf, and "hooks", functions that run when tokens are sent or received. Hooks let a receiving contract react to an incoming transfer in the same transaction, or reject tokens it does not want. Transfers can also carry extra data, such as a payment reference. The hooks rely on a shared on-chain registry, ERC-1820, where addresses record which contracts handle their tokens. The trade-off is complexity. Because hooks run external code in the middle of a transfer, protocols that did not expect this have been hit by re-entrancy exploits. As a result, ERC-777 is far less common than plain ERC-20.
Example
An online shop accepts an ERC-777 token. A customer sends tokens with the order number attached as data. The shop's contract receives the transfer through its hook, reads the order number and marks the order as paid, all in one transaction. With a plain ERC-20 token, the shop would need an extra approval step or would have to match payments to orders afterwards.