跳至主要内容
Change page

ERC-777 Token Standard

最後編輯: @nhsz(opens in a new tab), 2023年8月15日

Warning

ERC-777 is difficult to implement properly, due to its susceptibility to different forms of attack(opens in a new tab). It is recommended to use ERC-20 instead. This page remains as a historical archive.

Introduction?

ERC-777 is a fungible token standard improving the existing ERC-20 standard.

Prerequisites

To better understand this page, we recommend you first read about ERC-20.

What improvements does ERC-777 propose over ERC-20?

The ERC-777 provides the following improvements over ERC-20.

Hooks

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(opens in a new tab) standard.

Why are hooks great?

  1. Hooks allow sending tokens to a contract and notifying the contract in a single transaction, unlike ERC-20(opens in a new tab), which requires a double call (approve/transferFrom) to achieve this.
  2. 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.
  3. Hooks can reject transactions.

Decimals

The standard also solves the confusion around decimals caused in ERC-20. This clarity improves the developer experience.

Backwards compatibility with ERC-20

ERC-777 contracts can be interacted with as if they were ERC-20 contracts.

Further Reading

EIP-777: Token Standard(opens in a new tab)

這篇文章對你有幫助嗎?

網站上次更新: 2024年7月24日

學習

  • 學習中心
  • 什麼是以太坊?
  • 什麼是以太幣 (ETH)?
  • 以太坊錢包
  • 什麼是 Web3?
  • 智慧型合約
  • Gas fees
  • 執行節點
  • 以太坊安全及詐騙預防
  • 測驗中心
  • 以太坊詞彙表
(opens in a new tab)(opens in a new tab)(opens in a new tab)
  • 關於我們
  • 以太坊品牌資產
  • 行為守則
  • 工作機會
  • 隱私條款
  • 使用條款
  • Cookie 政策
  • 媒體聯絡方式(opens in a new tab)