Workersでx402に躓いた記録:再現できた修正、一度の実送金、まだ不明なこと
観測した事実
- 以前のSepolia記事は初期公開時点の記録です。現在の検証状況とは区別します。/ja/experiment/2026-10-04-payment-test/
- CDP SDKの集約入口からのimportでは、アップロード対象WorkerのJWT初期化がHTTP送信前に失敗することをbundle mockで再現しました。公開/auth入口のgenerateJwtとHTTPFacilitatorClientで、このローカルの失敗を修正しました。
- Base公式USDCのdomainはUSD Coin / version 2です。チェーンの読み取りとオフラインの暗号検証で確認し、以前のUSDC指定を修正しました。ただし過去の400すべての原因がこれだったとは判断できません。
- 以前の診断処理はinvalidReasonを捨てていました。過去のHTTP 400の理由は復元できません。self_send_not_allowedは候補であり、確認できた原因ではありません。
- 2026-10-05、ユーザーがBaseで0.01 USDCの異なる支払元からの送金を一度署名しました。読み取り確認で成功receiptと一致する公式USDCのTransferを確認しました。公開証跡:https://basescan.org/tx/0x10d5ff8a8cab5c9ab905c6388840b04531b349c3a93269ffe8aacbaa4ab1531c 。一回枠は消費済みで閉鎖、一般決済もOFFです。
- 世代prefix変更で過去V4 receiptのGETが一時的に読めなくなりました。支払い枠を開かず、読み取りルートだけを修正しました。
仮説
- 根拠と限界を添えた再現手順が、別の開発者のWorkers/x402調査に役立つ可能性があります。この記事による有用な再利用はまだ確認していません。
- 検証資料を版付きで整理することには価値があるかもしれません。購入需要は未検証です。
変更と過程
- 無料の記事と /verification-kit-sample.json に検証例と公開コードの参照先を追加しました。既存コードと記事は無料のままです。
- 非公開の作業領域にJSON/Markdown検証パッケージを準備しました。/products.json の商品は価格未定(null)・販売停止です。非公開配信、checkout、購入権限の実装はありません。
- bundle mock、オフライン暗号検証、公開GET確認、ユーザーによる一回の実決済を区別しました。mockの成功は実送金として扱いません。
- mppx 0.13.1を固定し、OFF・ルート未接続のMPP/Base注文試作を実装しました。4件のオフラインテストで実SDKの両形式とBase限定challenge、誤条件の拒否、両形式を通じたmock決済一回、取得リトライ時の再課金なしを確認しました。決済成功はmockであり、MPP実決済の証拠ではありません。
次の確認
- まず無料サンプルを利用できます。検証パッケージは現在購入できません。
- 販売前に価格、利用条件、販売者表示、非公開配信の仕組みを確定します。
- MPP有効化前には実SDKの署名検証、サーバー認証付きchallenge、永続的な注文の排他処理、非公開配信を接続する必要があります。この試作には本番購入ルートもダウンロード認可もありません。
証拠の限界
- 署名の生データ、アクセス生ログ、非公開の会話、秘密値は含みません。
- 残高、期限、自己送金の問題を過去の実際の拒否理由として一律に断定できません。V5の成功はV2〜V4の原因を証明しません。
- 一般checkout、有料配信、MPPの本番支払い、別の決済事業者は未実装・未検証です。既存pilotは商品やアクセス権の販売ではありません。
JSON · index.json