手持ちのコインでどの x402 API でも支払う
x402 エンドポイントは 402 Payment Required を返し、USDC を求めます。ROZO が支払うのは Base の USDC を求めるエンドポイントです。エージェントが持っているのは別のチェーンの別のコインかもしれません。手持ちのコインで ROZO 残高を一度チャージすれば、以降の x402 呼び出しは残高から数秒で支払われます。
コマンド3つ
エージェントがシェルコマンドを実行できるなら、連携はこれだけです。
# 1. 残高を一度チャージ。一回限りの入金アドレスが表示されるので、自分のウォレットから送金します。 npx @rozoai/checkout x402 topup 20 --with usdt-solana # 2. 有料エンドポイントを呼ぶ。402 を読み、ROZO が署名し、支払い付きでリクエストを再送します。 npx @rozoai/checkout x402 pay https://api.example.com/v1/search --method POST --body '{"q":"..."}' # 3. 残高を確認。 npx @rozoai/checkout x402 balance
x402 pay の動き
- リクエストはあなたのマシンからエンドポイントへ直接送られます。ROZO にはリクエスト本文、ヘッダー、そのサービス用の API キーは見えません。
- 402 を受け取ると、CLI は支払い要件を読み、Base の USDC だけを残し、
--max-usd(既定 1.00)を超えるものは拒否します。 - 新しい
idempotencyKeyで ROZO に1件の支払いの署名を依頼します。再試行は同じキーを使うため、タイムアウトしても二重請求は起きません。 PAYMENT-SIGNATUREヘッダーを付けて元のリクエストを再送し、レスポンスを出力します。
生の HTTP:呼び出し2回
シェルがない場合は同じ API を直接呼びます。エージェントキーは Authorization: Bearer ak_... で送ります。
# チャージ:選んだコイン用の一回限りの入金アドレスを返します。 curl -s -X POST https://apiserver.mpprouter.dev/v1/x402/topup \ -H 'authorization: Bearer ak_...' -H 'content-type: application/json' \ -d '{"amount":"20","token":"USDT","chain":"900"}' # 署名:402 の "accepts" から選んだ要件を1つ渡します。 # PAYMENT-SIGNATURE ヘッダーの値が返るので、それを付けてリクエストを再送します。 curl -s -X POST https://apiserver.mpprouter.dev/v1/x402/sign \ -H 'authorization: Bearer ak_...' -H 'content-type: application/json' \ -d '{"accepts":[{"scheme":"exact","network":"eip155:8453","amount":"10000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x...","maxTimeoutSeconds":60}],"budget":"0.05","idempotencyKey":"<uuid>"}'
POST /v1/x402/keys でエージェントキーを作成します(表示は一度だけ)。GET /v1/x402/balance で残高を取得します。1件の支払いの再試行には毎回同じ idempotencyKey を使ってください。
チャージに使えるものと、実際に支払われるもの
あえて2つに分けています。ROZO に送るものと、販売者が受け取るもの。
チャージ側(あなた → ROZO)
| コイン | チェーン |
|---|---|
| USDT | Solana, BNB Chain, Ethereum, Polygon |
| USDC | Solana, BNB Chain, Ethereum, Polygon, Base, Stellar |
支払い側(ROZO → x402 販売者)
| ネットワーク | 資産 | x402 スキーム |
|---|---|---|
Base eip155:8453 | USDC | exact |
| Solana | 今後対応予定。Solana の USDC しか受け付けないエンドポイントは、請求前に拒否されます。 | |
exact 支払いはトークン送金なので、販売者は常に USDC を受け取ります。USDT でチャージした残高からも、販売者には ROZO が USDC で支払います。ネイティブコインや sats をお持ちですか? ROZO Checkout で OpenRouter のチャージに使えます。上限とキー
- 1回あたり:既定で最大 $5。1日あたり:既定で最大 $100。キーを特定の
payToアドレスに限定することもできます。 - 最低チャージ額:$5。チャージには 1% の手数料がかかり、その後の x402 支払いは販売者が求める金額だけが差し引かれます。
- エージェントキー:初回チャージで
ak_から始まるキーが作られます。表示は一度だけで、CLI が~/.rozo-checkout/x402-keyに本人のみ読める権限で保存します。ROZO はハッシュだけを保持します。 - キーは残高の所有権です。プロンプト、ログ、チケットに貼らないでください。紛失したら新しく作り、残高の移行についてご連絡ください。
よくある質問
なぜ先にチャージが必要なのですか?
x402 の支払い要件の有効期間は1〜5分ですが、チェーン間の送金にはそれ以上かかります。すでに用意された残高から払う以外に、その時間内に応えることはできません。チャージはまれに大きく、支払いは頻繁に小さく。
お金はどこにありますか?
あなたの ROZO x402 残高にあります。資金は ROZO のウォレットに置かれ、Base のウォレットがあなたのキーに代わって支払いに署名します。全残高の合計は毎時これらのウォレットと照合されます。ROZO があなた自身のウォレットの鍵を持つことはありません。
残高を引き出すには?
セルフ出金にはまだ対応していません。マスクしたキー(例:ak_...a1b2)と金額を hi@rozo.ai にメールしてください。ご指定のチェーンで返金します。
ROZO にリクエストは見えますか?
見えません。有料リクエストはあなたのマシンからエンドポイントへ直接送られます。ROZO が見るのは署名を頼まれた支払い要件、つまり支払先、金額、ネットワークだけです。
販売者はどのネットワークで支払いを受け取りますか?
Base の USDC(eip155:8453)、x402 スキーム exact です。Solana での支払いは今後対応予定です。エンドポイントが Solana しか受け付けない場合、CLI は X402_UNSUPPORTED で止まり、何も請求されません。
エージェントガイドを読む
同じ3つのコマンド、すべてのエラーコード、安全ルールは SKILL.md と /llms.txt にあります。
rozo-checkout-skill を開く /llms.txt を読む