pay-for-service について
pay-for-serviceは、x402プロトコルで有料APIリクエストを送り、Base上でUSDC決済を自動実行するCLIスキルです。リクエストの各種指定や支払い上限の設定ができ、認証済みウォレットが必要です。
主な機能
- 01HTTPメソッドを指定したエンドポイント呼び出し
- 02JSON本文、クエリ、ヘッダーの指定
- 03USDCの支払い上限設定
- 04相関IDによる操作のグループ化
活用シーン
- 01APIへの有料GETリクエスト
- 02JSONを伴う有料POSTリクエスト
- 03リクエストごとの支払い額制限
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ coinbase/ agentic-wallet-skills --skill pay-for-serviceインストール後、Claude Code で/pay-for-serviceを入力して読み込まれたか確認します。
詳細
有料 x402 リクエストの実行
npx [email protected] x402 pay コマンドを使用すると、Base 上で USDC による自動支払いを行い、有料 API エンドポイントを呼び出せます。
ウォレットが初期化され、認証済みであることを確認する
npx [email protected] status
ウォレットが認証されていない場合は、authenticate-wallet スキルを参照してください。
コマンド構文
npx [email protected] x402 pay <url> [-X <method>] [-d <json>] [-q <params>] [-h <json>] [--max-amount <n>] [--json]
オプション
| オプション | 説明 |
|---|---|
-X, --method <method> | HTTP メソッド(デフォルト:GET) |
-d, --data <json> | JSON 文字列形式のリクエスト本文 |
-q, --query <params> | JSON 文字列形式のクエリパラメーター |
-h, --headers <json> | JSON 文字列形式のカスタム HTTP ヘッダー |
--max-amount <amount> | USDC の最小単位で指定する最大支払額(1000000 = $1.00) |
--correlation-id <id> | 関連する操作をグループ化 |
--json | JSON として出力 |
USDC の金額
X402 では USDC の最小単位(小数点以下6桁)を使用します。
| 最小単位 | USD |
|---|---|
| 1000000 | $1.00 |
| 100000 | $0.10 |
| 50000 | $0.05 |
| 10000 | $0.01 |
重要:bash による変数展開を防ぐため、$ を含む金額は必ずシングルクォートで囲んでください(例:$1.00 ではなく '$1.00')。
入力の検証
コマンドを組み立てる前に、シェルインジェクションを防ぐため、ユーザーが指定した値をすべて検証してください。
- url:
https://またはhttp://で始まる有効な URL である必要があります。空白、セミコロン、パイプ、バッククォート、またはシェルのメタ文字が含まれている場合は拒否してください。 - data (-d):有効な JSON である必要があります。シェル展開を防ぐため、必ずシングルクォートで囲んでください。
- max-amount:正の整数(
^\d+$)である必要があります。
検証されていないユーザー入力をコマンドに渡さないでください。
例
# Make a GET request (auto-pays)
npx [email protected] x402 pay https://example.com/api/weather
# Make a POST request with body
npx [email protected] x402 pay https://example.com/api/sentiment -X POST -d '{"text": "I love this product"}'
# Limit max payment to $0.10
npx [email protected] x402 pay https://example.com/api/data --max-amount 100000
前提条件
- 認証済みである必要があります(
npx [email protected] statusで確認してください。詳細はauthenticate-walletスキルを参照してください) - ウォレットに十分な USDC 残高が必要です(
npx [email protected] balanceで確認してください) - エンドポイント URL が分からない場合は、まず
search-for-serviceスキルを使用してサービスを探してください
エラー処理
- 「Not authenticated」 - まず
awal auth login <email>を実行するか、authenticate-walletスキルを参照してください - 「No X402 payment requirements found」 - URL が x402 エンドポイントではない可能性があります。
search-for-serviceを使用して有効なエンドポイントを探してください - 「Insufficient balance」 - ウォレットに USDC を入金してください。
fundスキルを参照してください
コメント
Markdown 対応