HTTP 402 が戻ってきた:AI 知能体が自ら API に支払いを始めた
あなたのスマートエージェントは、インターフェースを呼び出す必要があります。通常のパスはすべて人間のために設計されています:アカウント登録、メール確認、クレジットカードのリンク、APIキーの取得、サブスクリプションプランの選択------17回使用するために、最初に10000回分のパッケージを購入します。
実は、4つ目の道があり、すでに30年経っています:HTTPステータスコード 402 Payment Required は、最初のHTTP仕様で「将来の使用のために予約された」と明記されています。未来がやってきました。x402プロトコル (v2、Coinbaseが主導して維持)によって402は、実用的な支払いハンドシェイクのセットに変わりました:サーバーが見積もりを返し、スマートエージェントがステーブルコインの支払い承認にサインし、決済側がチェーン上で送金を完了し、インターフェースが結果を返します------アカウントも、キーも、サブスクリプションも必要ありません。支払い自体が身分証明です。
これはホワイトペーパーのガイドではありません。以下の各ステップは、オンラインの実際のインターフェースでテストされています(テストサービス:call402.com、公開で稼働しているx402サービス)、表示される見積もりと返されるデータは実際のデータであり、示意図は一切ありません。
第一歩:まずは見積もりを尋ねる------実際の見積もり書
お金を払わずに任意のインターフェースを呼び出すと、HTTP 402と機械可読の見積もり書を受け取ります:
BASHコピー
curl -X POST https://call402.com/api/phone-lookup \
-H 'Content-Type: application/json' \
-d '{"number": "+14155552671"}'
JSONコピー
{
"x402Version": 2,
"accepts": [{
"scheme": "exact",
"network": "eip155:8453",
"amount": "5000",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"payTo": "0xAc6F1C3C3b17040730F16dC24Ee9993e9565BE4A",
"maxTimeoutSeconds": 300,
"extra": { "name": "USD Coin", "version": "2" }
}]
}
これを価格タグとして読む:amountは最小単位で、5000は0.005ドル(USDCは6桁の小数);assetはBaseチェーン上のUSDCコントラクト;payToは受取人;あなたはこの見積もりに基づいて300秒以内に支払うことができます。
第二歩:支払いと呼び出し------バイヤーコードはこれだけ
公式のTypeScriptライブラリを使用すると、完全なバイヤーはこれらの数行です:
TYPESCRIPTコピー
import { wrapFetchWithPayment } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { ExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";
const signer = privateKeyToAccount(process.env.EVM_PRIVATE_KEY as `0x${string}`);
const client = new x402Client();
client.register("eip155:*", new ExactEvmScheme(signer));
const fetchWithPay = wrapFetchWithPayment(fetch, client);
const res = await fetchWithPay("https://call402.com/api/phone-lookup", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ number: "+14155552671" }),
});
console.log(await res.json());
// 決済証明はPAYMENT-RESPONSE応答ヘッダーで返されます:
const proof = res.headers.get("PAYMENT-RESPONSE");
if (proof) {
const settlement = JSON.parse(Buffer.from(proof, "base64").toString("utf8"));
console.log("tx:", settlement.transaction, "payer:", settlement.payer);
}
BASHコピー
npm i @x402/fetch @x402/core @x402/evm viem
ラッパーは402を見つけると、見積もりに基づいてEIP-3009支払い承認を構築し、署名を添えて再試行し、決済側がBase上でこのUSDC送金を完了します。返されるのは通常のJSONです:
JSONコピー
{ "valid": true, "country": "US", "type": "FIXED_LINE_OR_MOBILE",
"e164": "+14155552671", "national": "(415) 555-2671" }
この店の他のインターフェース------および任意のx402バイヤー------の使い方は全く同じです。一人のバイヤーがすべての店を回る。
第三歩:200を信じるな、自分で決済を確認する
PAYMENT-RESPONSE応答ヘッダーを解読します(これはBase64エンコードされたJSONです)、3つのことを確認します:この取引がBaseブラウザ上に実際に存在し、状態が成功していること;USDCの送金記録が確かにあなたのアドレスから見積もりのpayToに送られていること;金額と見積もりamountがぴったり一致していること。この3つのうち1つでも合わない場合は、記録して手を止めてください------直接再度支払わないでください。
実際に遭遇する落とし穴はこれらです:
第四歩:ウォレットに予算の規律を設ける
署名できるスマートエージェントは、支出できるスマートエージェントです。4つのルールで退屈にさせます:
- 単回上限 (例えば0.01ドル)と日次上限 (例えば1ドル)は、署名の前に必ず確認する必要があります。
- ドメインと資産のホワイトリスト ------バイヤーはホワイトリスト外の見積もりを拒否すべきです。
- 専用ウォレット 、上限の浮動資金のみを保持し、常にメインウォレットを使用しないこと。
- 一冊の増加のみの支出帳 :取引ハッシュ、インターフェース、金額を定期的にチェーン上の送金と照合します。
最後に一つの質問を残します
もしあなたのスマートエージェントが毎日1ドルの予算のウォレットを持っているなら、最初に何を自分で購入させますか?また、絶対に触れさせたくないものは何ですか?この支払いの関門が開かれると、スマートエージェントが自分でできることは大幅に増えます------そして、誰もがどこに線を引くかは、技術そのものよりもこの事がどのように進むかを決定するかもしれません。












