x402:AIエージェントがアカウント無しでAPIに支払う仕組み

インターネット上のAPIは、どれもフォーム越しに売られています。

価格ページを開き、メールアドレスを入力し、受信箱で確認し、カードを登録し、キーをコピーして環境変数にしまう。四分ほどで終わり、問題なく動きます。あなたが人間だからです。人間には受信箱があり、カードがあり、待つ辛抱強さがあります。

では、調査ループの途中にいるAIエージェントを想像してください。任された作業を終えるために、いますぐ一枚のウェブページをMarkdownにしたい。確認メールは受け取れません。カードもありません。人間が起きてキーを貼ってくれるまで待つこともできません。

そこでエージェントは、残された唯一のことをします。あきらめて別のサービスを使うのです。

その隙間を埋めるのが x402 であり、本日から Minibase API が本番環境でそれに応答します。

HTTPは1997年にこの事態を想定していた

ステータスコード 402 Payment Required は、当初からHTTP仕様に存在し、「将来の使用のために予約」と記されてきました。三十年近くのあいだ、これはRFCの中の冗談でした。誰も実装できないコード。リクエストの内部で少額のお金を動かす手段が、ウェブになかったからです。

x402は、それをついに使うプロトコルです。仕組みは三段階で説明できます。

  1. クライアントが認証情報を一切付けずにエンドポイントを呼ぶ。
  2. サーバーは 401 Unauthorized ではなく 402 Payment Required を返し、機械可読な支払条件を添える。いくらを、どの資産で、どのネットワークで、どのアドレスへ。
  3. クライアントが支払い、支払いの証明を添えてリクエストを再送する。サーバーは検証し、決済し、応答を返す。

アカウント不要。キー不要。ダッシュボード不要。交渉のすべてが二往復のHTTPの中で、別のプログラムが読める形式で完結します。

実際のエンドポイントでの見え方

何も付けずに、変換エンドポイントを呼んでみてください。

curl -i -X POST https://api.minibase.md/v1/convert \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com/article"}'

402 が返り、条件は payment-required ヘッダーにbase64で入っています。

{
  "x402Version": 2,
  "accepts": [{
    "scheme": "exact",
    "network": "eip155:8453",
    "amount": "10000",
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "payTo": "0xfb8157a583e3050440301f418f5e890190222a5c",
    "maxTimeoutSeconds": 300
  }]
}

自律的なクライアントに必要なものは、すべてここに入っています。networkCAIP-2 識別子で、eip155:8453 はBaseメインネット。asset はUSDCのコントラクト。amount は最小単位で、USDCは小数点以下6桁なので 10000 は1セント。payTo は入金先です。

クライアントはUSDCの送金に署名し、支払いを添えてリクエストを再送し、Markdownを受け取ります。人間の関与はゼロです。

誰も言わない点:暗号資産を保有する必要はない

「ステーブルコインを受け取ろう」という話への当然の反論は、ウォレットを運用することになる、というものです。秘密鍵。カストディ。経理担当者が見たこともない単位の残高が、寝ているあいだに動いたレートで評価される。

私たちはそれを一切していませんし、あなたも必要ありません。上のペイロードにある入金アドレスは Stripeが発行したものです。支払いはそのアドレスへオンチェーンで決済され、Stripeは一件ごとを通常のPaymentIntentとして記録し、通常のスケジュールでユーロで入金します。

実務上の帰結として、その資金はカード決済とまったく同じダッシュボードに、同じ入金として、同じ帳簿に現れます。守るべきウォレットも、領収書ごとの外貨評価も、期末に突き合わせる別帳簿もありません。ステーブルコインの部分は本物であり、同時に会計側からは完全に見えないのです。

時間を費やした二つの落とし穴

自分で実装するなら、私たちが授業料を払った罠は次の二つです。

ファシリテーターとのハンドシェイクは省略できません。 リソースサーバーは、価格を提示する前に、ファシリテーターがどのスキームとネットワークの組み合わせを実際に決済するのかを問い合わせる必要があります。この手順を飛ばすと、例外なくすべての呼び出しが Facilitator does not support exact on eip155:8453 で死にます。設定ミスのように見えて、実体は足りていない通信往復です。メインネットではこのファシリテーターはCoinbaseのものであり、公開テストネット用のものは本物のお金を決済しません。

1セント未満の価格は、会計を静かに壊します。 当社の原価は1ページあたり約0.002ドルなので、x402の入口も0.002ドルにするのが自然に見えました。ところがそうはいきません。PaymentIntentは整数のセント単位なので、1セントを下回る金額はオンチェーンで決済されたあと、まったく記録できなくなります。お金は届くのに、どの帳簿にも入らない。だからキー不要の入口は 1回あたり0.01ドル にしています。ボリューム料金の5倍ですが、アカウントも契約も要らない従量課金なら十分に成立する水準です。

導入すべきか

規模については正直でいましょう。x402が今四半期にサブスクリプション収益を置き換えることはありません。エージェント発の支払いはまだ黎明期で、クライアント側のツールも若く、顧客の大半は依然としてカードを持った人間です。

それでも、この非対称性は珍しいものです。入口の実装は数百行で済み、しかも認証情報をまったく持たない呼び出しにしか反応しません。既存のキー保有者は、これまでどおりの経路に、同じ枠と同じプランのまま素通りします。すでに売っているものは何ひとつ危険に晒されません。

そして、これを持たないことの失敗の仕方は目に見えません。キーを持たない呼び出しが 401 に当たっても、痕跡は残りません。登録もなく、問い合わせもなく、分析画面に一行も残らない。来ていたことすら分からないのです。だから私たちは、認証情報のない呼び出しを、相手がすでにプロトコルを話せるかどうかも含めて記録するようにしました。「そもそも誰かが叩いているのか?」という問いだけが、この投資に意味があったかを決めるからです。

エージェントがオープンなウェブで買い物をするのなら、登録フォームを通らない支払い方法が要ります。その方法はすでに存在し、1997年からHTTP仕様の中で眠っていて、配線には一日の午後で足ります。


試す: 認証情報なしで POST https://api.minibase.md/v1/convert を呼び、payment-required ヘッダーを読んでください。キーの方がよければ、無料プランは月1,000ページ、カード不要です。エージェント向けの完全な仕様は minibase.md/api.md

Continue reading

よりスマートに保存しませんか?

あらゆるウェブページをワンクリックでMarkdownに変換。

Chromeに追加