use-agent-wallet
Set up and manage a Circle agent wallet through the `circle` CLI. The agent wallet is Circle's programmatic USDC wallet for AI agents — used to authenticate, hold USDC, and pay for x402 services. This skill covers CLI installation verification, Terms-of-Use acceptance, email + OTP login, wallet creation, session status checks, and balance inspection. Use whenever the user wants to set up, log in to, or inspect the state of their Circle agent wallet, or whenever a downstream skill (like paying for an x402 service or funding the wallet) needs the wallet bootstrapped first. Triggers on: Circle CLI, agent wallet, circle wallet status, circle wallet login, circle wallet create, circle wallet list, circle wallet balance, set up Circle, log in to Circle, x402 setup, Circle Agent Wallet, USDC for agents, terms acceptance, install Circle CLI.
NPX Install
npx skill4agent add circlefin/skills use-agent-walletTags
Translated version includes tags in frontmatterSKILL.md Content
View Translation Comparison →Overview
@circle-fin/clicircleuse-circle-cliPrerequisites / Setup
Step 1 — Verify the CLI is installed
which circle || command -v circle
circle --versionnpm install -g @circle-fin/clicircle --versionnpm install -g @circle-fin/cli@latestStep 2 — Check session status
circle wallet status- Logged in — output shows email, wallet type (), and session expiry. Tell the user "You're already logged in as
agent. Continue with this session?" and skip to Step 4.<email> - Not logged in — output is Proceed to Step 3.
Error: Not logged in. Run 'circle wallet login <email> --type agent' to authenticate. - Terms not accepted — output is Stop and complete the Terms-of-Use Gate below before proceeding. Do NOT run
Error: Circle CLI Terms acceptance is required before use.without explicit user consent.circle terms accept
Step 3 — Login (email + OTP, two-step non-interactive flow)
3a. Initialize login (request OTP)
circle wallet login <user-email> --type agent --init--type agentagentOTP code sent to user@example.com
Please run: circle wallet login --request <request-id> --otp <code>3b. Complete login (verify OTP)
circle wallet login --type agent --request <request-id> --otp <user-otp>- Full form:
ABC-123456 - Bare digits: — the CLI prepends the cached prefix automatically
123456 - The CLI validates the prefix matches what was sent (anti-phishing)
Logged in as user@example.comInvalid or expired request IDOTP prefix mismatchInvalid OTP3c. Verify session
circle wallet statusLogging out / switching accounts
circle wallet logoutStep 4 — Check or create the agent wallet
--chaincircle wallet listcircle wallet balancecircle wallet list --chain BASE --type agent --output jsoncircle wallet create --output json{ chain, address, ... }addressStep 5 — Check wallet balance
circle wallet balance --address <addr> --chain BASE --output jsonfund-agent-walletAfter bootstrap
circle skill listcircle skill info --name <skill>circle skill install --tool <host> --name <skill>Terms-of-Use Gate
circle walletcircle wallet statusBy using the Circle CLI, you agree to:
Terms of Use: https://agents.circle.com/terms-of-use
Privacy Policy: https://www.circle.com/legal/privacy-policy
Error: Circle CLI Terms acceptance is required before use.
Hint: Set CIRCLE_ACCEPT_TERMS=1 to accept in non-interactive shells (CI, scripts, sandboxed agents).circle terms acceptCIRCLE_ACCEPT_TERMS=1Read current acceptance status
circle terms show --output jsondata.acceptedtrueFetch the Terms info to present to the user
data.acceptedfalsecircle terms show --init --output jsontermsOfUseUrlprivacyPolicyUrltermsNoticeShow the Terms and request consent
Circle CLI requires acceptance of its Terms of Use and Privacy Policy before I can run any wallet commands.
- Terms of Use:
<termsOfUseUrl from the JSON response>- Privacy Policy:
<privacyPolicyUrl from the JSON response><termsNotice from the JSON response>Please review both links. Do you accept these Terms and authorize me to record acceptance on your behalf? (yes/no)
After explicit consent only
circle terms accept --output jsondata.acceptance.acceptedtruecircle terms resetRules
Security
- NEVER guess or hardcode the user's email address for agent wallet login.
- OTP codes provided during an active authentication session are safe to handle — accept them in chat, use them immediately, do not retain or reuse afterward.
- NEVER include real private keys, API keys, or other persistent secrets in skill files or persist them anywhere.
- NEVER run without explicit user consent in the current session. The agent MUST NEVER accept Circle's Terms on the user's behalf, and MUST NEVER call
circle terms acceptautomatically as part of error recovery, retries, or any flow the user has not explicitly approved.circle terms accept - ALWAYS show the live ,
termsOfUseUrl, andprivacyPolicyUrlreturned bytermsNoticewhen prompting for consent. Do NOT summarize, paraphrase, or hardcode them.circle terms show --init --output json - If the user declines the Terms, stop the flow. Do not retry, work around the gate, or call /
circle terms reset.circle terms accept
Best practices
- ALWAYS check before attempting login. Many session "failures" are actually just stale assumptions.
circle wallet status - Parse and store the request ID from output — you'll need it for the OTP completion step.
circle wallet login --init - Request IDs are single-use and expire after 10 minutes. If you see "Invalid or expired request ID", restart from .
--init - For general CLI rules (,
--output json,--chain-first, follow-up phrasing, confirmation defaults), see the--helpmaster skill's Rules section — they apply here too.use-circle-cli
Reference Links
- Setup walkthrough (full bootstrap doc): https://agents.circle.com/skills/setup.md
- Login flow detail: https://agents.circle.com/skills/wallet-login.md
- CLI package on npm:
@circle-fin/cli - Circle Developer Docs: https://developers.circle.com/llms.txt — Always read this when looking for source documentation on Circle products.
Alternatives
pay-via-agent-wallet- The user wants to call, pay for, or use a paid x402 service.
- The user mentions ,
circle services search, orcircle services inspect.circle services pay - A downstream task requires money to move out of the agent wallet to a paid endpoint.
fund-agent-wallet- The agent wallet has 0 USDC and the user wants to add funds.
- The user mentions deposit, fiat on-ramp, fiat purchase, QR-code transfer, or Gateway deposit.
- A payment flow blocks because of insufficient balance.
agent-wallet-policy- The user wants to set, view, or reset spending limits on the wallet.
- The user mentions per-tx / daily / weekly / monthly caps, spending policy, or wallet rules.