1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Python標準ライブラリだけで x402(AIが1回ごとに払うHTTP 402)の門を書いた — まだ本物の支払いは通していない段階1

1
Posted at

先に書いておくこと

これは段階1です。偽の確認役(facilitator)を相手にしたテスト21件だけで確かめていて、テストネットでも本番でも、まだ1回も本物の支払いを受けていません。本番のネットワークは allow_mainnet=True を自分で書かない限り断ります。

x402 の流れ

仕様(https://docs.x402.org/core-concepts/http-402 )の流れはこうです。

  1. 払わずに呼ぶ → 402 と PAYMENT-REQUIRED ヘッダー(Base64のJSON。値段・受け取り先・ネットワーク)
  2. クライアントが署名して PAYMENT-SIGNATURE をつけて再送
  3. 門が確認役の /verify に聞く → 関数を動かす → /settle に聞く
  4. 決済が通ったときだけ 200・結果・PAYMENT-RESPONSE

門は鍵を持たず、署名も確かめません。それは確認役の仕事です。

門が守る約束(テストで確認)

場合 結果
払っていない 402 と値段
正しい支払い 200・結果・受領
同じ支払いを2回 402 payment_already_used
署名の偽造 402・関数は動かない
値段より少ない・受け取り先が違う 402
決済の失敗 402・結果なし
関数が例外を出す 400・決済しない(同じ支払いを使い直せる)

見つけてもらうための情報(Bazaar)

402 の応答に extensions.bazaar(呼び出しの例と入出力の型)を入れられます(https://docs.x402.org/extensions/bazaar )。載せた例を実際に払って呼ぶと、載せた答えが返ることもテストで確かめています。$0.001 未満の値段は受け付けません。

使い方(偽の確認役・お金は動かない)

python -m paygate --tool yourmodule:yourfunction --pay-to 0xYOUR_TESTNET_RECEIVING_ADDRESS --facilitator fake

--pay-to は受け取り用のアドレスです。秘密鍵や復元の言葉はこの道具のどこにも入れないでください。

限界

  • 二重払いの記憶はプロセスの中だけ。再起動すると忘れます
  • exact の方式だけ
  • 項目名は 2026-10-28 に読んだ docs.x402.org と Fireblocks の参照ページに合わせています。本番の前に最新の仕様を確かめてください

コード

https://github.com/ayatrader/x402-paygate (MIT・Python標準ライブラリのみ)

次はテストネット(Base Sepolia)で外から1回払って結果が返るか(段階2)を確かめ、確かめた数字だけ追記します。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?