
ERC-777は、Ethereum上でトークンの送信・受信・認可方法を定めるトークン標準です。スマートコントラクトを用いて実装されており、ウォレットやDApp、取引所がトークンを一貫して処理できるよう設計されています。
「トークン標準」は交通ルールのようなもので、さまざまなアプリケーションが異なる車両だとすれば、共通のルールを守ることで同じブロックチェーン上をスムーズにやり取りできます。ERC-777は従来の送信方法を踏襲しつつ、より柔軟なインターフェースを追加しています。
ERC-777は、従来標準の課題を解決するために設計されました。たとえば、一部のコントラクトアドレスではトークンを受け取れず、誤送信時の資金回収ができませんでした。また、資金受領時にアプリケーション側で自動通知を受けて追加処理を実行したいという要望もありましたが、ERC-20では非対応でした。
ERC-20ではトークン送信が「サイレント配送」となり、受取人への自動通知がなく、コントラクト受取人も安全な受領可否を宣言できません。ERC-777は、こうした課題を解消し、セキュリティとプログラマビリティを強化します。
ERC-777は「コールバック」と「オペレーター」という2つの主要な仕組みで動作します。コールバックは配達通知のようなもので、オペレーターは委任を受けて代理で操作する権限を持ちます。これらは標準化されたコントラクトインターフェースで実装されます。
ステップ1:送信者は事前送信コールバックを発動できます。送信者が「send callback」を登録していれば、トークン差し引き前にコントラクトへ通知され、ホワイトリストや送金制限などのチェックが可能です。
ステップ2:コントラクトが残高を更新します。すべてのチェックを通過すると、トークンコントラクトは送信者の残高を減算し、受信者の残高を加算し、イベントを記録してブロックチェーンエクスプローラーやDAppで追跡できるようにします。
ステップ3:受信者は受信コールバックを発動できます。受信インターフェースを宣言したコントラクトが受信者の場合、資金受領時に通知され、自動会計や領収発行、不審な送金の拒否などの処理が可能です。
「オペレーター」は、アカウントから委任を受けてトークンを代理で送信できる第三者であり、カストディや一括送金、企業用途に適しています。コールバックやオペレーターの検出には「レジストリコントラクト」ERC-1820が用いられ、どのアドレスがどのインターフェースを実装しているかを記録します。
最大の違いはインタラクションの方法です。ERC-20はシンプルで「ブラインド入金」のように受取人が受動的です。ERC-777は受信コールバックを導入し、受取人が通知を受けて受け入れ可否を判断できるため、誤送信や資金ロックのリスクを軽減します。
もう一つの違いは「オペレーター」です。ERC-20は2段階のapprove→transferFromモデルですが、ERC-777はオペレーターを標準サポートし、カストディや一括処理が効率的に行えます。
多くのERC-777実装は、ERC-20の主要関数も提供し、既存ウォレットやDeFiプロトコルとの互換性を維持しています。ただし、ERC-777のコールバック機能のみを利用する場合、従来プロトコルとの統合には追加対応が必要です。
ウォレットでのERC-777トークン送信は他のトークンとほぼ同様です。主な違いは、一部コントラクト受信アドレスが自動でチェックされ、受信対応を宣言していない場合は送信が即座に拒否され「ブラックホール」への損失を防げる点です。
ステップ1:ウォレットやアプリがERC-777に対応しているか確認してください。トークンコントラクトのドキュメントやウォレットの資産詳細で確認できます。
ステップ2:まず少額でテスト送信を行い、送信先が受信可能か、明確に拒否されるかを確認し、高額送信時のミスを防ぎます。
ステップ3:本送金は、取引所やコントラクトアドレスの場合、できるだけ指定の入金チャネルを利用してください。
Gateなどの取引所では、入金ページにネットワークやコントラクト要件が記載されています。ERC-777トークンでも、プラットフォームがERC-20入金のみ対応の場合は指示に従い、まず少額で入金確認後に本送金してください。
DeFiでは、ERC-777の受信コールバックにより自動会計やポイント・証明書発行など「受領時処理」が可能です。DAppでは、誤送信防止や受領時のビジネスロジック発動、手数料の自動控除などに活用できます。
例えば、コントラクトはtokensReceivedで注文状況や署名を検証し、受領時に自動で注文履行や権限付与を行ったり、tokensToSendで不審アドレスへの出金をブロックするリスク管理も可能です。コールバックにビジネスロジックを組み込むことで、ワークフローが効率化し、余計な取引ステップが減ります。
2025年時点で、主要なレンディングプロトコルやアグリゲーターの多くはERC-20対応が中心ですが、ウォレットや一部コントラクトはERC-777のコールバックやオペレーターへ対応し始めています。コールバック活用型の新規アプリでは手動確認やユーザーステップの削減が期待できます。
コールバックはプログラマビリティを高めますが、「リエントランシー(再入)」リスクも生じます。これは、トークン送信時のコールバックで外部呼び出しが発生し、対象コントラクトの保護が不十分な場合に残高が乱れる恐れがある現象です。
互換性面では、古いプロトコルの中にはERC-20の承認・送信プロセスしか認識せず、ERC-777のコールバックやオペレーターを理解しないものもあります。ERC-1820で受信インターフェースを登録していないコントラクトアドレスでは送信が拒否されたり、互換性維持のためのフォールバック経路が必要になる場合もあります。
ユーザーはまず少額テストを行いましょう。開発者は重要な関数にリエントランシー保護を実装し、ウォレット・取引所・ルーティングコントラクト間での互換性検証を徹底してください。
DeFiや取引所での広範な普及を重視し、受信コールバックやオペレーター機能が必須でなければ、成熟したERC-20エコシステムを利用するのが現実的です。
DAppで受信時の即時ビジネスロジック実行や細かなリスク管理、一括委任操作が必要な場合は、ERC-777により取引ステップを簡素化し、誤送信による損失も減らせますが、より広範なテストや適応が必要です。
実践的には「ハイブリッド戦略」を採用し、ERC-777コントラクト内にERC-20の主要関数も実装し、利用ガイドを明示し、重要なパスではコールバック非依存の代替フローも用意しましょう。
ステップ1:ERC-1820との連携。デプロイ後、1820レジストリに実装者を登録し、tokensSenderやtokensRecipientインターフェースを発見可能にします。
ステップ2:リエントランシー対策。外部呼び出しの可能性があるコールバック関数にはリエントランシーガードやChecks-Effects-Interactionsパターンを採用してください。
ステップ3:二重インターフェースの提供。ERC-777メソッドに加え、transferやapproveなどERC-20の主要関数も保持し、幅広い互換性を確保しましょう。
ステップ4:コントラクト受信者の明示的処理。受信インターフェースを持たないコントラクトアドレスには送信拒否または安全なダウングレード経路を用意し、資金ロックを防止します。
ステップ5:エコシステム全体でのテスト。主要ウォレットやルーター、取引所でエンドツーエンドテスト(少額テスト送金、一括デビット、失敗時のロールバック等)を実施し、ユーザー向けガイドも明確にしてください。
ERC-777はインタラクティブ機能を強化したEthereumトークン標準です。受信コールバックやオペレーター機能によりセキュリティや取引ワークフローが向上しますが、リエントランシーや互換性の課題も伴います。自動化や細かなリスク管理が求められる用途では有力な選択肢ですが、最大限のエコシステム対応を重視する場合はERC-20の利用や互換実装が安全です。ユーザー・プロジェクト双方とも、必ず少額で検証し、プラットフォームの互換性を確認した上で運用しましょう。
ERC-777の最大の利点はフック機構であり、トークン送信時にコントラクトが自動でロジックを実行でき、追加の承認ステップが不要です。これにより、トークン送信とコントラクト連携が単一取引で完結し、DeFiワークフローが大幅に効率化されます。ERC-20の2段階承認・送信モデルと比べ、ERC-777はより効率的でユーザー体験にも優れています。
最も多い原因は、受取側のウォレットやコントラクトがERC-777のフック機構に対応していないことです。送信時に受取側のフック関数が正しく実装されていない場合、取引は拒否されます。解決策としては、受取側をERC-777対応へアップグレードするか、互換性のあるウォレットや取引所を利用してください。
完全な置き換えは現実的ではありません。ERC-777は機能面で優れていますが、既存の互換性やエコシステムの慣性からERC-20が主流です。ERC-777は新規プロジェクトや特定用途で採用が進んでいますが、両標準は今後も長期的に共存するでしょう。プロジェクトのニーズに応じて、シンプルさ重視ならERC-777、幅広い互換性重視ならERC-20を選択してください。
GateはERC-777トークンの取引に対応していますが、事前に対象トークンが上場済みか確認してください。古いウォレットの中にはERC-777対応が限定的なものもあるため、最新のウォレットやMetaMaskなどWeb3ウォレットを利用しましょう。出金に失敗した場合はカスタマーサポートに連絡し、トークンの互換性を確認してください。
詳細な技術知識は不要ですが、基本的な仕組みを理解しておくと安心です。日常利用者としては、ERC-777は送金が簡単であること、一部ウォレットが非対応の場合があること、問題発生時も慌てる必要がないことを押さえておきましょう。Gateのような取引所を利用する場合、多くの互換性問題はプラットフォーム側で解決されているため、安心して利用できます。


