ターミナルから OpenRouter のリンクをまとめて支払う
OpenRouter の暗号資産チャージは、1回ごとに別々の Coinbase 支払いリンクになります。多くの人のために、または自分の複数アカウントのためにクレジットを買うなら、ROZO Checkout の CLI でスクリプトからまとめて支払えます。いつものウォレットから、手元のコインで支払います。アカウントも API キーも不要です。
1. インストール
Node 20.18 以降と、バッチスクリプト用の jq が必要です。一度インストールすれば、毎回のダウンロードは不要です。同じ CLI は Claude Code プラグインや ClawHub スキルとしても入れられます。
Shell
npm i -g @rozoai/checkout rozo-checkout quote https://payments.coinbase.com/payment-links/pl_01YOURLINKID
2. 注文をまとめて作成する
links.txt に1行1リンクで書きます。ループがリンクごとに注文を1件作り、runs/batch.tsv に結果を1行ずつ書き込みます。
batch.sh
# links.txt:1行に1つの Coinbase リンク
command -v jq >/dev/null || { echo "install jq first"; exit 1; }
mkdir -p runs
while IFS= read -r link || [ -n "$link" ]; do
link="${link%$'\r'}"; link="${link%%\?*}"
[ -n "$link" ] || continue
id="${link##*/}"
rozo-checkout pay "$link" --with usdt-solana --yes --json --no-watch \
</dev/null > "runs/$id.json"
code=$?
row=$(jq -r --arg id "$id" --arg code "$code" '[$id, $code,
(.order.rozoPaymentId // .error.details.body.rozoPaymentId // "-"),
(if .success then "pending: pay before " + (.order.expiry.effectiveDeadlineIso // "?")
else (.error.code // .send.error.code // "FAILED") end)] | @tsv' \
"runs/$id.json" 2>/dev/null) || row="$id $code - NO_OUTPUT"
printf '%s\n' "$row" >> runs/batch.tsv
done < links.txt
--sendを付けなければ、注文を作っても資金は動きません。行にはpendingと表示され、JSON ファイルに入金情報が入ります。deposit.receiverAddressとdeposit.amount(Stellar ではdeposit.receiverMemoも)、Lightning では BOLT11 のdeposit.lnInvoiceです。- 注文ができたらすぐに、任意のウォレットか取引所から支払います。表示どおりの金額を、表示どおりのチェーンで送ってください。入金アドレスは使い切りです。古い注文のアドレスは再利用しないでください。
order.expiry.effectiveDeadlineIsoを基準に、少なくともorder.expiry.marginMinutes分前には支払いを止めます。- 同じリンクには毎回同じ
--withのコインを使います。未完了のリンクでpayを再実行すると同じ注文が返るので、再試行しても注文は増えません。
3. 各リンクの決済を確認する
注文は rozoPaymentId で追跡します。receipt は Coinbase 自身が請求書の支払い済みを報告したときだけ 0 で終了します。
Shell
rozo-checkout status <rozoPaymentId> --json | jq -r '.state, .escalate'
# 支払い済み? 0 で終了 = 決済済み
rozo-checkout receipt <rozoPaymentId> --json
対応コインとチェーン
| コイン | チェーン |
|---|---|
| USDT | Solana, BNB Chain, Ethereum, Polygon, Arbitrum |
| USDC | Solana, BNB Chain, Ethereum, Polygon, Arbitrum, Base, Stellar |
| BTC | Lightning |
| ネイティブコイン | ETH (Ethereum, Base, Arbitrum), BNB, SOL, POL |
--with で1つ選びます。例:usdt-solana、usdc-base、btc-lightning、sol。ネイティブコインは見積もりに載っているときだけ使えます。オンチェーン BTC と Tron には対応していません。全一覧は エージェント向けページにあります。
手数料
- ROZO は OpenRouter の請求額に加えて 1% のサービス手数料をいただきます。見積もりで、注文を作る前に請求額と支払総額がわかります。コインごとの正確な入金額は注文作成時に表示されます。
- 実際に送る金額には、そのコインのブリッジ手数料とネットワーク手数料も含まれるため、請求額より少し高くなります。ネイティブコインの金額には為替スプレッドが含まれます。
- OpenRouter は請求書に独自の暗号資産手数料を加えます。これは OpenRouter の手数料で、ROZO のものではありません。
上限
- 注文の作成は IP ごと1時間単位でレート制限があり、支払い実績があると上限が上がります。上限に達すると CLI は
RATE_LIMITEDを返します。少し待ってから、まだ決済されていないリンクを再開してください。現在の数値は一括購入ガイドにあります。 - ステーブルコインはネイティブコインや BTC Lightning よりずっと大きな請求書に対応しています。後者は1件あたりの上限が低めです。高額の請求書を予定する前に一括購入ガイドの上限をご確認ください。
- ローカルの鍵で署名する任意の
--sendは、1回の支払いが $1,100 までです。ウォレットから自分で支払う場合、この上限はありません。
送金額が足りなかったら
- 入金額が指定額より少ない注文は自動では完了しません。
statusがescalate: trueを返し、注文は ROZO 側の担当者の対応待ちになります。 - もう一度支払ったり、そのリンクで新しい注文を作ったりしないでください。リンク、rozoPaymentId、すべてのトランザクションハッシュを hi@rozo.ai に送っていただければ、手作業で対応します。
- 何も送らずに注文が期限切れになった場合は、同じリンクで同じ
payを再実行します。古いアドレスに何か送っていた場合は、先にご連絡ください。