エージェント・開発者向け

AI エージェント向け ROZO Checkout

ROZO Checkout を使うと、AI エージェントが OpenRouter の請求 — つまり Coinbase の決済リンク — を、リンクが本来要求する Base USDC ではなく、Lightning 経由の BTC や、Solana・BNB Chain・Ethereum・Polygon・Base・Stellar 上の USDT/USDC で支払えます。以下のエンドポイントはすべて公開 HTTP です。API キーもアカウントもブラウザもウォレット接続のポップアップも不要なので、決済処理全体をスクリプトや 1 回のツール呼び出しに収められます。

デモ動画:AI エージェントが ROZO Checkout を通じて、Stellar の USDC で OpenRouter の請求を支払う流れ。

たった 1 つのコマンド

エージェントがシェルコマンドを実行できるなら、これだけで組み込みは完了です。リンクの見積り、注文の作成、送金内容の表示を行い、請求が決済されるまで待ちます。注文があとどれくらい有効かも表示されます。

Shell提供中
npx @rozoai/checkout pay https://payments.coinbase.com/payment-sessions/paymentSession_3230343499xxx

この URL があなたの OpenRouter 決済リンクで、OpenRouter の Buy Credits → Crypto の流れからコピーします。末尾の xxx は例であることを示すためのもので、実際のリンクは本物の文字で終わります。

ターミナル上では、どの通貨で支払うかを尋ねます。プロンプトで自分のウォレットアドレスを貼り付けると、実際に支払える通貨に印を付けてくれます — これは表示上のヒントにすぎず、署名される内容を変えることは一切ありません — そのアドレスと選んだ通貨は次回のために記憶されます。そのあと、どのウォレットからでも支払える入金アドレスを表示します。秘密鍵も環境変数も設定も不要です

使う通貨がもう決まっている場合や、スクリプトを書いている場合は、通貨を指定して質問を飛ばせます。エージェントとスクリプトは必ず --with を渡してください — ピッカーはターミナルでしか表示されず、既定の通貨は意図的に用意されていません。

Shell
npx @rozoai/checkout pay https://payments.coinbase.com/payment-sessions/paymentSession_3230343499xxx --with usdt-solana

--withusdt-solanausdc-solanausdt-bnbusdc-bnbusdt-ethereumusdc-ethereumusdt-polygonusdc-polygonusdc-baseusdc-stellarbtc-lightning を受け付けます — 対応チェーン一覧をご覧ください。stdin が TTY でない場合は --yes を、stdout に JSON オブジェクトをちょうど 1 つだけ出力したい場合は --json を付けてください。以下はすべて同じ決済を、あなたがすでに使っているツールで表現したものです。

ツールを選ぶ

お使いのものを開いてください。ほとんどのツールで中身は同じです — 上の npx コマンドを実行するか、エージェントに /llms.txt を読ませるかです。いずれの場合も自分のウォレットから支払うので、鍵は一切関係しません。ローカルで署名するのは任意の --send フラグだけです。

Claude Codeskill を入れる、またはワンライナーを貼る

このリポジトリ自体が Claude Code の skill です。SKILL.mdscripts/dist/ 配下の実行ファイルが同梱されています。skills ディレクトリにクローンすれば Claude Code が自動的に認識します。

Shell
git clone https://github.com/RozoAI/rozo-checkout-skill ~/.claude/skills/rozo-checkout

あるいは設定を一切せず、任意のセッションにこれを貼り付けてください:

プロンプト
Pay this OpenRouter link with USDT on Solana using:
npx @rozoai/checkout pay https://payments.coinbase.com/payment-sessions/paymentSession_3230343499xxx --with usdt-solana
Codex CLIAGENTS.md に書く、または直接実行

Codex はプロジェクトルートの AGENTS.md を読みます。常設の指示を追加しておけば、毎回説明しなくても支払い方がわかります:

AGENTS.md
## Paying OpenRouter invoices
To pay a payments.coinbase.com link, run:
npx @rozoai/checkout pay https://payments.coinbase.com/payment-sessions/paymentSession_3230343499xxx --with usdt-solana
Full reference: https://checkout.rozo.ai/llms.txt

あるいはセッション内で自分でコマンドを実行するだけでも構いません — 設定は不要です。

OpenCodeAGENTS.md に書く、または直接実行

OpenCode もプロジェクトルートの AGENTS.md を読むので、上の Codex 用のスニペットをそのまま使えます。最短の方法はやはりコマンド自体です:

Shell
npx @rozoai/checkout pay https://payments.coinbase.com/payment-sessions/paymentSession_3230343499xxx --with usdt-solana
Cline.clinerules に書く、または直接実行

Cline はプロジェクトルートの .clinerules から常設の指示を読み込みます。同じルールを入れてください:

.clinerules
To pay an OpenRouter / Coinbase payment link, run:
npx @rozoai/checkout pay https://payments.coinbase.com/payment-sessions/paymentSession_3230343499xxx --with usdt-solana
Full reference: https://checkout.rozo.ai/llms.txt

Cline はコマンドを実行する前に確認を求めます。決済においてはまさに望ましい挙動です。

Cursor.cursor/rules に書く、または直接実行

.cursor/rules/ にプロジェクトルールを追加して、エージェントにコマンドを教えます:

.cursor/rules/rozo-checkout.mdc
To pay an OpenRouter / Coinbase payment link, run:
npx @rozoai/checkout pay https://payments.coinbase.com/payment-sessions/paymentSession_3230343499xxx --with usdt-solana
Full reference: https://checkout.rozo.ai/llms.txt

あるいは Cursor のターミナルでコマンドを実行するだけでも構いません — ルールは不要です。

Hermes Agentセッション内でワンライナーを実行

Hermes Agent(Nous Research)はシェルへのアクセスと独自の skill 機構を持っています。hermes で起動して、コマンドの実行を依頼してください:

プロンプト
Fetch https://checkout.rozo.ai/llms.txt, then pay this OpenRouter link:
npx @rozoai/checkout pay https://payments.coinbase.com/payment-sessions/paymentSession_3230343499xxx --with usdt-solana
OpenClawopenclaw agent exec

OpenClaw のヘッドレス実行は単発のタスク向けで、スクリプトやチャットチャンネルから起動する決済に向いています:

Shell
openclaw agent exec "Pay this OpenRouter link with USDT on Solana by running: npx @rozoai/checkout pay https://payments.coinbase.com/payment-sessions/paymentSession_3230343499xxx --with usdt-solana"
Piセッション内でワンライナーを実行

Pi は BYOK のターミナルエージェントで、組み込みツールに bash を含むため、コマンドを直接実行できます。pi で起動して、こう依頼してください:

プロンプト
Pay this OpenRouter link with USDT on Solana by running:
npx @rozoai/checkout pay https://payments.coinbase.com/payment-sessions/paymentSession_3230343499xxx --with usdt-solana
ターミナル — エージェントなしスクリプトを順に実行

各ステップを自分で進めたい場合は、リポジトリをクローンしてスクリプトを実行してください。自己完結型のバンドルなので、Node 18+ 以外にインストールするものはありません。

Shell
git clone https://github.com/RozoAI/rozo-checkout-skill
cd rozo-checkout-skill
LINK="https://payments.coinbase.com/payment-links/pl_01YOURLINKID"

# 1. Quote — read-only, costs nothing
node scripts/dist/quote.js --url "$LINK"

# 2. Create the order. No money moves; the full deposit address is
#    WITHHELD and you get a masked summary to review first.
node scripts/dist/create-order.js --url "$LINK" --chain 900 --token USDT

# 3. Only once you have decided to pay, re-run with --confirm to
#    release the full deposit block.
node scripts/dist/create-order.js --url "$LINK" --chain 900 --token USDT --confirm

# 4. Pay the deposit block from any wallet — no key, no configuration.
#    Send exactly the amount, token, chain and every other field it gives
#    you, copied from the JSON and never retyped.

# 5. Watch it settle
node scripts/dist/status.js --rozo-payment-id <rozoPaymentId> --watch --timeout 600

各スクリプトは stdout に JSON オブジェクトをちょうど 1 つだけ出力します。終了コードは 0 が成功、1 が拒否または失敗(error.code を読んでください)、2 が使い方の誤り、3 が送信済みだが未確認です。

自分のウォレットから支払うのが既定の方法で、鍵は必要ありません。この端末に署名させたい場合は — EVM チェーンと Solana のみ — send-evm.js または send-sol.js を使います。Solana では solana-keygen がすでに作成した ~/.config/solana/id.json を、EVM では暗号化された V3 keystore を使い、そのパスフレーズは実行時に入力を求められます(フラグで渡すことはありません)。無人実行では環境変数の生の鍵も引き続き使えます。この経路には制限が 1 つだけあります。1 回の支払いは 1,100 ドルを超えられません。上書きはできません。これより大きい請求は、上記の鍵不要の経路で支払ってください。

状態は awaiting_depositpayin_detectedpayin_confirmedbridgingpaying_coinbasesettled と遷移します。オンチェーンのトランザクションが確認されても、それで終わりではありません。settled になるまでポーリングを続けてください。

その他のエージェント/llms.txt を読ませる

URL を取得してコマンドを実行できるエージェントなら何でも可能です。1 行で済み、設定は不要です:

プロンプト
Fetch https://checkout.rozo.ai/llms.txt into your context, then use it
to pay this OpenRouter link: https://payments.coinbase.com/payment-sessions/paymentSession_3230343499xxx

シェルは無いが HTTP リクエストは送れるエージェントの場合は、下の4 つの生の呼び出しを直接叩いてください。

生の HTTP — あらゆるフレームワーク向け

4 回の呼び出しだけで、すべて公開・鍵不要です。CLI も skill もこの層の上に載っているので、どんなフレームワークからでも — LangChain、OpenAI のツール呼び出し、cron ジョブ — 直接叩けます。

Shell提供中
MPP="https://apiserver.mpprouter.dev/v1/services/rozo-agent-api"
INTENTS="https://intentapiv4.rozo.ai/functions/v1/payment-api"
LINK="https://payments.coinbase.com/payment-links/pl_01YOURLINKID"

# 1. Quote: merchant, amount, expiry, and a ~60-second quoteReceipt.
#    callerPays always equals the invoice amount; discount is always "0".
curl -s -X POST "$MPP/quote-invoice" \
  -H 'content-type: application/json' \
  -d "{\"url\":\"$LINK\"}"

# 2. Create a bridge order for, say, USDT on Solana.
#    Creates an order but moves no money; an unfunded order simply expires.
curl -s -X POST "$MPP/create-invoice" \
  -H 'content-type: application/json' \
  -d "{\"url\":\"$LINK\",\"source\":{\"chainId\":\"900\",\"tokenSymbol\":\"USDT\"}}"

# 3. Authoritative deposit instructions, using the rozoPaymentId above.
#    Pay EXACTLY source.amount of the requested token on the requested chain
#    to source.receiverAddress, including source.receiverMemo when present.
#    For Lightning, pay the BOLT11 in source.lnInvoice.
curl -s "$INTENTS/payments/<rozoPaymentId>"

# 4. Fulfilment status, using the Coinbase linkId.
curl -s "$MPP/invoice-status?payment_id=pl_01YOURLINKID"

create-invoice は IP 単位のレート制限があります(1 時間あたり約 30 回)。読み取り系エンドポイントに制限はありません。Coinbase のリンクが決済完了と見なされるのは、ルーターが paid / coinbase.settled を返したときだけです。intents の状態が payment_completed になっただけでは、それはブリッジのライフサイクルであって最終的な決済完了ではありません。

実装に組み込むべきエラー: 409 リンクは使用済み · 410 リンクは期限切れ · UNSUPPORTED_SOURCE(レスポンスの supported オブジェクトに有効なチェーンとトークンの組み合わせが列挙されます。Lightning はサポート対象ですが、このリストには含まれません)· RATE_LIMITED IP 単位の作成上限、時間をおいて再試行してください。

機械可読版。同じフロー、エンドポイント、安全ルールをプレーンテキストで checkout.rozo.ai/llms.txt に公開しています。エージェントにはこのページではなく、そちらを読ませてください。

必要なもの

対応トークンを保有するウォレットと、そのトークンが乗っているチェーン。ネイティブのガス通貨は受け付けません。SOL、ETH、BNB、MATIC では決済されません。オンチェーンの BTC も同様です。

チェーンChain idトークン備考
Ethereum1USDC, USDT小数点以下 6 桁
BNB Chain56USDC, USDT小数点以下 18 桁 — 1012 桁ずれのバグが起きる典型的な原因
Polygon137USDC, USDT小数点以下 6 桁
Base8453USDC小数点以下 6 桁
Solana900USDC, USDT小数点以下 6 桁。SPL トークン。ネイティブ SOL は非対応
Stellar1500USDC小数点以下 7 桁。入金には memo が必須で、種別は MEMO_TEXT — memo がすべて数字の場合も同じです。ウォレットで MEMO_ID を選ぶと別の memo になり、支払いが照合されません
Bitcoin LightninglightningBTC金額は整数の satoshi。BOLT11 インボイスで支払います
  1. Node 18 以降が CLI と skill の方法に必要です(node -v)。生の HTTP の方法は HTTP クライアントだけあれば足ります。
  2. Coinbase の決済リンク。例: https://payments.coinbase.com/payment-links/pl_01YOURLINKID
  3. アカウントも API キーも不要です。このページのエンドポイントはすべて公開されています。
  4. 既定の経路に鍵は不要です。自分のウォレットから入金先アドレスに支払う場合、秘密鍵も環境変数も設定も一切必要ありません。ローカルで署名するのは任意の --send フラグだけで、その鍵は Solana では ~/.config/solana/id.json、EVM では暗号化された keystore(パスフレーズは実行時に入力)から取得します。無人実行では環境変数の生の鍵も使えますが、鍵をコマンドライン引数から受け取ることは決してありません。その署名経路では 1 回の支払いが 1,100 ドルまでに制限されます。これより大きい金額は鍵不要の経路で支払ってください。

どのウォレットが必要ですか?

ウォレットは 1 つ、チェーンも 1 つで足ります — チェーンごとに用意する必要はありません。上の表から、すでに持っている通貨を選び、それが今ある場所から支払ってください。

安全性について、正直に

金額、トークン、ネットワークを間違えること、そして二重に支払うことは、たいてい取り返しがつきません。特に重要なガードは以下のとおりです。自分でクライアントを書く場合も、これらは必ず実装してください。

完全な一覧 — 2 段階の確認、money-detected ルール、危殆化アドレスのブラックリスト、プロセスをまたぐ送金 1 回限りのロック、ホットウォレットの上限、アドレスのマスキング — は GitHub リポジトリの Safety design に記載しています。

最初の請求を支払う

コマンド 1 つ、アカウント不要、API キー不要。SKILL.md はエージェント向け、QUICKSTART.md は組み込む開発者向けに書かれています。

rozo-checkout-skill を開く /llms.txt を読む