ERC-777 トークン規格
最終更新: 2025年8月21日
警告
**ERC-777はさまざまな形態の攻撃に対する脆弱性opens in a new tabがあるため、適切に実装することが困難です。 代わりにERC-20を使用することが推奨されます。**このページは、歴史的なアーカイブとして残されています。
はじめに
ERC-777は、既存のERC-20標準を改良した代替性トークン標準です。
前提条件
このページをよりよく理解するために、まずERC-20についてお読みになることをお勧めします。
ERC-777は、ERC-20に対してどのような改善を提案しているか?
ERC-777は、ERC-20に対して以下の改善を提案します。
フック
フックとは、スマートコントラクトのコードで記述された関数です。 フックは、コントラクトによりトークンが送受信される際に呼び出されます。 これにより、スマートコントラクトはトークンの受信/送信に対応できるようになります。
フックは、ERC-1820opens in a new tab標準を使用して登録・検出されます。
フックの利点:
- この操作に二重呼び出し(
approve/transferFrom)を必要とするERC-20opens in a new tabとは異なり、フックでは単一のトランザクションでコントラクトへのトークン送信とコントラクトへの通知が可能です。 - 登録フックを持たないコントラクトは、ERC-777を利用できません。 受信コントラクトがフックを登録していない場合、送信コントラクトはトランザクションを中止します。 これにより、ERC-777非互換のスマートコントラクトに対する誤転送を防ぐことができます。
- フックは、トランザクションを却下することができます。
小数点以下の桁数
この標準は、ERC-20で引き起こされたdecimalsをめぐる混乱も解決します。 この混乱を解消することで、デベロッパーの利用体験が向上します。
ERC-20との後方互換性
ERC-777コントラクトとの間は、ERC-20コントラクトに対する場合と同様のやりとりが可能です。