エクステンション概要
x402のコアビジネスロジックを変更せずに機能を拡張するオプション機能群です。
エクステンションは支払いライフサイクルにプラグインできるコンポーザブルなオプション機能です。コアの動作を変更せずに、ディスカバリー・ガスレス決済・認証・監査などの機能を追加できます。
エクステンションポイント
リソースサーバーエクステンション
3つのライフサイクルポイントで動作します:
- 宣言時(ルート登録):
enrichDeclaration - 402レスポンスの拡張:
enrichPaymentRequiredResponse - 決済レスポンスの拡張:
enrichSettlementResponse
ファシリテーターエクステンション
メカニズム実装用のキーを提供します。主に決済時のガス代スポンサー処理に使用されます。
登録パターン
エクステンションは registerExtension() でリソースサーバーに登録し、ルート設定の extensions オブジェクトにエクステンションのキーを使って宣言します:
server.registerExtension(bazaarExtension);
const routes = {
"GET /weather": {
accepts: [{ scheme: "exact", price: "$0.001", network: "eip155:8453", payTo: "0x..." }],
extensions: {
bazaar: { discoverable: true, category: "weather" },
},
},
};