agent-wallet-policy について
agent-wallet-policy は、Circle CLI でエージェントウォレットの利用上限を確認、設定、リセットするスキルです。変更時のメール OTP はユーザー自身が端末で入力し、エージェントには共有しない手順を示します。
主な機能
- 01取引ごと・期間ごとの上限確認
- 02カスタム利用上限の設定
- 03上限のデフォルト値へのリセット
- 04変更時のユーザーによるメール OTP 入力
- 05変更後の上限確認
活用シーン
- 01エージェントウォレットの現在の上限確認
- 02ユーザー端末で確認済みの上限を設定
- 03ポリシーをリセットして結果を確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ circlefin/ skills --skill agent-wallet-policyインストール後、Claude Code で/agent-wallet-policyを入力して読み込まれたか確認します。
同梱ファイルreferences/commands.md
詳細
概要
Circle CLI のすべての機能の概要については、マスタースキル use-circle-cli をご覧ください。このスキルでは、より限定的な支出ポリシーのフローを扱います。
Circle エージェントウォレットでは支出ポリシーを利用できます。これはウォレットごとの上限で、CLI がすべての支払いと送金に適用します。操作は 3 種類あります。
| 操作 | コマンド | OTP が必要ですか? |
|---|---|---|
| 現在の上限を表示 | circle wallet limit --address <addr> --chain ARC --output json | いいえ |
| カスタム上限を設定 | circle wallet limit set ... | はい — 人間が使用する OTP。ユーザー自身のターミナルで実行してください |
| デフォルトにリセット | circle wallet limit reset ... | はい — 人間が使用する OTP。ユーザー自身のターミナルで実行してください |
支出ポリシーはメインネット専用です(テストネットのチェーンは拒否されます。「トラブルシューティング/ルール」をご覧ください)。
前提条件
このフローの準備には、セッション確認(circle wallet status)とウォレットアドレスの検索(circle wallet list ... --output json)の 2 つの補助コマンドを使います。正確なコマンドについては references/commands.md をお読みください。
circle wallet status で「Not logged in」または「Terms acceptance is required」エラーが発生した場合は、use-agent-wallet スキルに引き継いでください。インストール、利用規約への同意、ログイン、ウォレットの作成について説明しています。
現在の上限を確認する(エージェント内、OTP 不要)
circle wallet limit --address <addr> --chain ARC --output json
1 回の取引、日次、週次、月次の USDC 上限が表示されます(未設定の区分は null)。読み取り専用で、資金は移動せず、OTP も不要なため、いつでも安全に実行できます。
上限を設定またはリセットする(対話型ターミナル — ユーザーに引き継ぐ)
circle wallet limit set と circle wallet limit reset は対話型です。実行中にユーザーのメールアドレスへ 6 桁の OTP を送信し、CLI の標準入力プロンプトでコードが入力されるのを待ちます。
OTP はパスワードと同等です。エージェントは OTP を受け取ったり、保存したり、転送したりしてはいけません。 ここでエージェントが行うのは、ユーザー自身のターミナルで実行するコマンドをそのままユーザーに提示し、実行結果の報告を待つことです。
1. ユーザーと値を確認する
上限は単調増加でなければなりません。per-tx ≤ daily ≤ weekly ≤ monthly。
一般的な保守的設定は次のとおりです。
| 区分 | 推奨する USDC 値 |
|---|---|
--per-tx | 1 |
--daily | 5 |
--weekly | 20 |
--monthly | 50 |
ユーザーが示した許容範囲に応じて調整してください。コマンドを生成する前に、明示的な同意を得てください。
2. コマンドをユーザーに提示する
ユーザーには次のように伝えてください。
支出上限の設定には、私が見てはいけない OTP が必要です。ご自身のターミナルで次のコマンドを実行してください。CLI から 6 桁のコードがメールで届くので、プロンプトに入力してください。完了したらお知らせください。
circle wallet limit set \ --address <addr> --chain ARC \ --policy-type stablecoin \ --per-tx 1 --daily 5 --weekly 20 --monthly 50
リセットする場合のコマンドは次のとおりです。
circle wallet limit reset --address <addr> --chain ARC --yes
OTP が送信される前に確認プロンプトを表示したい場合は、--yes を省略してください。
3. ユーザーから完了の報告を受けたら確認する
読み取り専用の上限確認コマンドを実行して新しい上限を確認し、ユーザーに伝えてください。正確なコマンドについては references/commands.md をお読みください。
トラブルシューティング
| 症状 | 原因 | 対処方法 |
|---|---|---|
| ユーザーが OTP メールを複数受信した | 前のコマンド実行がまだ待機中に、コマンドを再実行した | 最新の OTP のみを使うようユーザーに伝えてください。それ以前の OTP は無効です。 |
| OTP が「prefix mismatch」で拒否された | ユーザーが前回のリクエストで届いた 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 ARC --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 をご覧ください。