読み込み中...
読み込み中...
HTTP 402 Payment Requiredステータスコードを活用した、ブロックチェーンベースのオープン決済プロトコルを学ぶ
x402プロトコルでは、決済のライフサイクル全体が6つのステップで完結します。 クライアントとサーバー間のHTTP会話の中で、価格提示から決済完了までがシームレスに行われます。
クライアント(ブラウザ/AIエージェント)がAPIリソースにHTTPリクエストを送信
サーバーがHTTP 402を返却。PAYMENT-REQUIREDヘッダーに価格・通貨・ネットワーク・受取アドレスを含む
クライアントがEIP-3009による署名付き決済ペイロードを生成し、X-PAYMENTヘッダーで再リクエスト
ファシリテーターが署名・金額・受取アドレス・残高を検証(約100ms)
ファシリテーターがトランザクションをブロックチェーンに送信(Baseで約2秒でファイナリティ)
決済成功後、サーバーが200 OKとPAYMENT-RESPONSEヘッダーでリソースを提供
サーバーが402レスポンスに含めるBase64エンコードされたJSONオブジェクト。
{
"x402Version": 1,
"accepts": [{
"scheme": "exact",
"network": "base-sepolia",
"maxAmountRequired": "1000",
"resource": "https://api.example.com/data",
"description": "API access fee",
"mimeType": "application/json",
"payTo": "0x1234...abcd",
"extra": {
"name": "USDC",
"version": "2"
}
}]
}クライアントがEIP-3009による署名付き決済ペイロードを含めて再リクエスト。
{
"x402Version": 1,
"scheme": "exact",
"network": "base-sepolia",
"payload": {
"signature": "0xabcd...1234",
"authorization": {
"from": "0xbuyer...",
"to": "0xseller...",
"value": "1000",
"validAfter": "0",
"validBefore": "1700000000",
"nonce": "0x..."
}
}
}決済成功後、サーバーが200 OKレスポンスに含める決済確認情報。
{
"x402Version": 1,
"scheme": "exact",
"network": "base-sepolia",
"payload": {
"success": true,
"transactionHash": "0xtxhash..."
}
}EIP-3009(Transfer With Authorization)は、トークン保有者がオフチェーンで署名を行い、 第三者(ファシリテーター)がその署名を使ってオンチェーン転送を実行できる仕組みです。
ユーザーはETHやSOLを保有する必要がなく、USDCのみで決済可能
署名はオフチェーンで行われるため、署名時にガス代は発生しない
validBefore/validAfterパラメータで署名の有効期間を制限
リプレイ攻撃を防止するためのユニークなノンス