💳agent-wallet-policy
- プラグイン
- circle-skills
- ソース
- GitHub で見る ↗
説明
Circle エージェントウォレットの支出ポリシーを確認します —— `circle` CLI を通じて、1トランザクションあたり、日次、週次、月次の USDC 上限を参照できます。 次のような場合に使用: ユーザーが現在の制限値を確認したい場合。 上限の設定またはリセットには、インタラクティブなターミナルセッションでの OTP 確認が必要です —— エージェントはユーザーが自身で実行するためのコマンドをそのままの形で提示します。OTP はエージェントのストレージを経由してはなりません。 メインネット専用 —— テストネットチェーンは拒否されます。 以下のキーワードで起動: 支出制限、支出ポリシー、トランザクションあたりの上限、日次上限、週次上限、月次上限、ウォレットルール、OTP 確認。
原文を表示
View spending policy on a Circle agent wallet — per-transaction, daily, weekly, and monthly USDC caps via the `circle` CLI. Use when the user wants to inspect current limits. Setting or resetting limits requires OTP confirmation in an interactive terminal session — the agent hands the user a verbatim command to run themselves; the OTP must never pass through agent storage. Mainnet-only — testnet chains are rejected. Triggers on: spending limit, spending policy, per-tx cap, daily cap, weekly cap, monthly cap, wallet rules, OTP confirmation.
ユースケース
- ✓現在の支出ポリシーの上限値を確認したい
- ✓USDC取引額の制限内容を把握したい
本文(日本語訳)
概要
Circle CLIの完全な機能セットの概要については、use-circle-cli マスタースキルを参照してください。
本スキルは、より範囲を絞った支出ポリシーのフローを対象としています。
Circle エージェントウォレットは支出ポリシーをサポートしています。 これはウォレットごとに設定された上限値で、すべての支払いおよび送金時にCLIが適用します。 操作は以下の3種類です:
| 操作 | コマンド | OTP必要? |
|---|---|---|
| 現在の上限を確認 | circle wallet limit --address <addr> --chain BASE --output json |
不要 |
| カスタム上限を設定 | circle wallet limit set ... |
必要 — ユーザー自身のターミナルで人間がOTPを入力 |
| デフォルトにリセット | circle wallet limit reset ... |
必要 — ユーザー自身のターミナルで人間がOTPを入力 |
支出ポリシーはメインネット専用です(テストネットチェーンは拒否されます。トラブルシューティング / ルールを参照)。
前提条件
# セッションが有効であることを確認
circle wallet status
# ウォレットアドレスを取得
circle wallet list --chain BASE --type agent --output json
circle wallet status が "Not logged in" または "Terms acceptance is required" というエラーを返した場合は、use-agent-wallet スキルに引き継いでください。
そちらでインストール、利用規約への同意、ログイン、ウォレット作成をカバーしています。
現在の上限の確認(エージェント内で実行可能 / OTP不要)
circle wallet limit --address <addr> --chain BASE --output json
現在のUSDC上限(1回あたり、日次、週次、月次)を表示します(未設定のティアは null)。
読み取り専用で資金の移動もOTPも不要なため、自由に呼び出して構いません。
上限の設定またはリセット(インタラクティブターミナル — ユーザーへの引き継ぎ)
circle wallet limit set および circle wallet limit reset はインタラクティブなコマンドです。
実行中にユーザーのメールアドレスへ6桁のOTPが送信され、CLIのstdinプロンプトでコードの入力を待機します。
OTPはパスワードと同等の機密情報です。エージェントはOTPを受け取ったり、保存したり、中継したりしてはなりません。 ここでのエージェントの役割は、ユーザー自身のターミナルで実行するコマンドをそのまま渡し、完了の報告を待つことだけです。
ステップ1 — ユーザーと値を確認する
上限値は単調増加である必要があります:1回あたり ≤ 日次 ≤ 週次 ≤ 月次
一般的な保守的な設定例:
| ティア | 推奨USDC値 |
|---|---|
--per-tx |
1 |
--daily |
5 |
--weekly |
20 |
--monthly |
50 |
ユーザーが許容すると述べた範囲に基づいて調整してください。 コマンドを生成する前に、明示的な同意を得てください。
ステップ2 — ユーザーにコマンドを渡す
ユーザーに以下のように伝えてください:
支出上限を設定するにはOTPが必要ですが、私がそれを見るべきではありません。 以下のコマンドをご自身のターミナルで実行してください。 CLIからメールで6桁のコードが届きますので、プロンプトに入力してください。 完了したらお知らせください。
circle wallet limit set \ --address <addr> --chain BASE \ --policy-type stablecoin \ --per-tx 1 --daily 5 --weekly 20 --monthly 50
リセットの場合のコマンドはこちらです:
circle wallet limit reset --address <addr> --chain BASE --yes
OTP送信前にユーザーへ確認プロンプトを表示させたい場合は、--yes を省略してください。
ステップ3 — ユーザーから完了報告を受けたら確認する
circle wallet limit --address <addr> --chain BASE --output json
新しい上限値を確認し、結果をユーザーに提示してください。
トラブルシューティング
| 症状 | 原因 | 対処 |
|---|---|---|
| ユーザーが複数のOTPメールを受信した | 前回の実行がまだ待機中に、コマンドが再実行された | 最新のOTPのみを使用するようユーザーに伝えてください。古いものは無効化されています。 |
| "prefix mismatch" でOTPが拒否された | ユーザーが前回のリクエストのOTPを入力した | 再実行してください。set / reset の呼び出しごとに新しいプレフィックスが生成されます。 |
Spending policies are mainnet-only |
テストネットチェーンでポリシーを設定しようとした | メインネットの --chain 値(BASE、MATIC 等)で再実行してください。 |
Limits must be monotonic |
per-tx > daily、daily > weekly 等になっている | 値を見直してください。per-tx ≤ daily ≤ weekly ≤ monthly |
Only agent wallets support spending policies |
ローカル(非エージェント)ウォレットで実行しようとした | 支出ポリシーは circle wallet create で作成されたエージェントウォレット専用です。 |
ルール
- OTPをあなた(エージェント)と共有するようユーザーに求めてはなりません。OTPはユーザーのメールからユーザー自身のターミナルのCLIプロンプトに直接入力される必要があります。エージェントのコンテキスト、ツール呼び出し、またはローカルファイルを経由させてはなりません。
- メールやメッセージング連携ツール(例:MCP経由のGmailやSlack)が接続されている場合、OTPをそれらを通じて取得することも可能です。その選択肢をユーザーに案内し、どう扱うかはユーザーの判断に委ねてください。
circle wallet limit set/resetコマンドは必ずそのままの形でユーザーに渡し、ユーザー自身のターミナルで実行させてください。チャットを通じてOTPをやり取りしようとしないでください。- コマンドを生成する前に、設定しようとする上限値を必ずユーザーに確認してください。1回あたり / 日次 / 週次 / 月次の数値を明示し、明示的な同意を待ってください。
- 支出ポリシーはメインネット専用です。テストネットチェーンは拒否されます。テストネットの例を提示しないでください。
- 支出ポリシーはエージェントウォレット専用であり、ローカルウォレットには対応していません。
- ユーザーから変更完了の報告を受けたら、
circle wallet limit --address <addr> --chain BASE --output jsonを実行し、新しい上限値をユーザーに提示してください。
参考リンク
- ポリシーの完全なウォークスルー(詳細な例やエッジケースを含む): https://agents.circle.com/skills/wallet-policy.md
- Circle 開発者ドキュメント: https://developers.circle.com/llms.txt
代替スキル
次のような場合は、代わりに use-agent-wallet スキルをトリガーしてください:
- ユーザーがまだCLIにログインしていない、または利用規約への同意が完了していない場合。
circle wallet statusが "Not logged in" または "Terms acceptance is required" エラーを返す場合。- ユーザーがポリシーではなく、ウォレットのセットアップ、ログイン、またはセッション状態について質問している場合。
次のような場合は、代わりに pay-via-agent-wallet スキルをトリガーしてください:
- ユーザーがx402の有料サービスを呼び出したい、利用料を支払いたい、または使用したい場合。
- 上限がすでに設定されており、ユーザーが支払いを行う準備ができている場合。
次のような場合は、代わりに fund-agent-wallet スキルをトリガーしてください:
- ユーザーが上限設定の前にUSDCを追加したい場合。
- ユーザーがデポジット、法定通貨のオンランプ、法定通貨での購入、QRコード送金、またはGatewayデポジットについて言及している場合。
免責事項: 本スキルは「現状のまま」提供されており、いかなる保証もありません。Circle 開発者利用規約に準拠し、生成される出力にはエラーが含まれる場合や手数料設定オプション(Circleへの手数料を含む)が含まれる場合があります。詳細についてはリポジトリのREADMEを参照してください。
原文(English)を表示
Overview
For an overview of the Circle CLI's full capability set, see the use-circle-cli master skill. This skill is the narrower spending-policy flow.
Circle agent wallets support spending policies — per-wallet caps that the CLI enforces on every payment and transfer. There are three operations:
| Operation | Command | OTP required? |
|---|---|---|
| View current limits | circle wallet limit --address <addr> --chain BASE --output json |
No |
| Set custom limits | circle wallet limit set ... |
Yes — human OTP, run in user's own terminal |
| Reset to defaults | circle wallet limit reset ... |
Yes — human OTP, run in user's own terminal |
Spending policies are mainnet-only (testnet chains are rejected; see Troubleshooting / Rules).
Prerequisites
# Confirm session is good
circle wallet status
# Get the wallet address
circle wallet list --chain BASE --type agent --output json
If circle wallet status errors with "Not logged in" or "Terms acceptance is required", hand off to the use-agent-wallet skill — it covers install, terms, login, and wallet creation.
Viewing current limits (in-agent, no OTP)
circle wallet limit --address <addr> --chain BASE --output json
Shows the current per-tx, daily, weekly, and monthly USDC caps (null for any unset tier). Safe to call freely — read-only, no money moves, no OTP.
Setting or resetting limits (interactive terminal — handoff to user)
circle wallet limit set and circle wallet limit reset are interactive. They send a 6-digit OTP to the user's email mid-execution and wait for the code at the CLI's stdin prompt.
OTPs are password-equivalent. The agent must NOT receive, store, or relay the OTP. The agent's job here is to hand the user a verbatim command to run in their own terminal, then wait for them to report back.
Step 1 — Confirm values with the user
Limits must be monotonic: per-tx ≤ daily ≤ weekly ≤ monthly.
A typical conservative configuration:
| Tier | Suggested USDC value |
|---|---|
--per-tx |
1 |
--daily |
5 |
--weekly |
20 |
--monthly |
50 |
Adjust based on the user's stated tolerance. Get explicit yes before generating the command.
Step 2 — Hand the user the command
Tell the user:
Setting spending limits requires an OTP I shouldn't see. Please run this command in your own terminal — the CLI will email you a 6-digit code; enter it at the prompt. Let me know once it completes.
circle wallet limit set \ --address <addr> --chain BASE \ --policy-type stablecoin \ --per-tx 1 --daily 5 --weekly 20 --monthly 50
For reset, the verbatim command is:
circle wallet limit reset --address <addr> --chain BASE --yes
Omit --yes if you want the user to see a confirmation prompt before the OTP is sent.
Step 3 — Verify after the user reports done
circle wallet limit --address <addr> --chain BASE --output json
Confirms the new caps. Surface them to the user.
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
| User received multiple OTP emails | Command was re-run while a previous invocation was still waiting | Tell the user to use the most recent OTP only. Earlier ones are invalidated. |
| OTP rejected with "prefix mismatch" | User entered an OTP from a previous request | Restart — each set / reset invocation has a fresh prefix. |
Spending policies are mainnet-only |
Tried to set a policy on a testnet chain | Re-run with a mainnet --chain value (BASE, MATIC, etc.). |
Limits must be monotonic |
per-tx > daily, daily > weekly, etc. | Re-check the values. per-tx ≤ daily ≤ weekly ≤ monthly. |
Only agent wallets support spending policies |
Tried on a local (non-agent) wallet | Spending policies apply only to agent wallets created via circle wallet create. |
Rules
- NEVER ask the user to share the OTP with you. The OTP must go directly from the user's email to the CLI prompt in their own terminal — it should never touch the agent's context, tool calls, or any local file.
- If email- or messaging-integration tools are connected (e.g., Gmail or Slack via MCP), the OTP can also be fetched through them — note the option to the user; how to handle it is their call.
- ALWAYS hand the user a verbatim
circle wallet limit set/resetcommand for them to run in their own terminal. Do NOT try to orchestrate the OTP from chat. - ALWAYS confirm proposed limit values with the user before generating the command. Show the per-tx / daily / weekly / monthly numbers explicitly and wait for explicit yes.
- Spending policies are mainnet-only — testnet chains are rejected. Don't quote testnet examples.
- Only agent wallets support spending policies, not local wallets.
- After the user reports the change is done, run
circle wallet limit --address <addr> --chain BASE --output jsonso the user sees the new caps.
Reference Links
- Full policy walkthrough (extended examples, edge cases): https://agents.circle.com/skills/wallet-policy.md
- Circle Developer Docs: https://developers.circle.com/llms.txt
Alternatives
Trigger the use-agent-wallet skill instead when:
- The user has not yet logged in to the CLI or accepted Terms.
circle wallet statuserrors with "Not logged in" or "Terms acceptance is required".- The user is asking about wallet setup, login, or session state — not policy.
Trigger the pay-via-agent-wallet skill instead when:
- The user wants to call, pay for, or use a paid x402 service.
- Limits are already set and the user is ready to spend.
Trigger the fund-agent-wallet skill instead when:
- The user wants to add USDC before setting limits.
- The user mentions deposit, fiat on-ramp, fiat purchase, QR-code transfer, or Gateway deposit.
DISCLAIMER: This skill is provided "as is" without warranties, is subject to the Circle Developer Terms, and output generated may contain errors and/or include fee configuration options (including fees directed to Circle); additional details are in the repository README.
原文・著作権は Anthropic および各プラグイン作者に帰属します。日本語訳は Claude API による自動翻訳です。