Skip to main content
skill CX Codex

use-agent-wallet — Claude Code skill: Circle wallet for agents

Bootstraps a Circle agent wallet through the CLI: install check, email and OTP login, wallet creation, session status and balance.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add circlefin/skills --skill use-agent-wallet -a claude-code
Open on GitHub

What use-agent-wallet does

The skill walks an agent through Circle wallet bootstrap. First it checks that the circle CLI is installed, then reads the current session with circle wallet status. If nobody is logged in, it runs the two-step flow: email, then a one-time code. The code is handled in chat, used right away, and not kept.

Next the agent lists existing wallets or creates one with circle wallet create. The --chain flag is required for circle wallet list and circle wallet balance; when no chain is given, the skill suggests starting with ARC. Per-chain addresses come from the command's JSON output. Balance is checked separately, and at 0 USDC the agent hands off to the fund-agent-wallet skill.

One hard gate: the CLI blocks every operational circle wallet command until the user accepts the Terms of Use and Privacy Policy. The skill requires showing that text and getting explicit consent — accepting on the user's behalf is off the table, and the agent ignores the CIRCLE_ACCEPT_TERMS=1 env var. Worth checking how your agent handles consent, because here it has to stop and ask. OTP request IDs are single-use and expire after 10 minutes.

What it helps with

  • stand up an agent USDC wallet from scratch
  • log in to the Circle CLI with email and a one-time code
  • check whether a session is active and when it expires
  • create wallets across supported EVM chains
  • read balances for saved addresses

Example prompts for the agent

  • Set up my Circle agent wallet: check if the CLI is installed and show session status
  • Log in to circle wallet with my email, I'll paste the code
  • Create an agent wallet and show the balance per chain

How to install use-agent-wallet

1Skills CLI (Vercel)

npx skills add circlefin/skills --skill use-agent-wallet -a claude-code

2Manually: put the files in place

~/.claude/skills/use-agent-wallet/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/use-agent-wallet/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about use-agent-wallet

How do I install use-agent-wallet in Claude?

Run npx skills add circlefin/skills --skill use-agent-wallet -a claude-code. The skill lands in ~/.claude/skills/use-agent-wallet/SKILL.md.

What does use-agent-wallet do?

It bootstraps a Circle agent wallet: verifies the CLI, handles terms acceptance, logs in via email and OTP, creates the wallet, and reports status with balance.

Can the agent accept the Terms of Use for me?

No. The skill shows the terms and waits for explicit consent before circle terms accept runs. The agent must not use the CIRCLE_ACCEPT_TERMS=1 env var on its own.

Source text

SKILL.md · Apache-2.0
---
name: use-agent-wallet
description: "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 wallet login, circle wallet create, circle wallet status, set up Circle agent wallet, terms acceptance, install Circle CLI, x402 setup."
requirements:
  runtimes: []
  connectors: []
---

## Overview

The Circle CLI (`@circle-fin/cli`, command `circle`) provides a programmatic agent wallet — a non-custodial USDC wallet designed for AI agents to authenticate, hold balances, and pay for paid x402 services on Circle's marketplace. This skill is the bootstrap surface for that wallet: install check, terms acceptance, login, wallet creation, and status inspection. After bootstrap completes, downstream operations (paying for services, funding, spending policy) hand off to dedicated skills.

For an overview of the Circle CLI's **full** capability set — bridging, smart contract execution, transaction inspection, and more — see the `use-circle-cli` master skill. This skill is the narrower bootstrap/identity surface.

## Workflow

1. Verify the CLI is installed, then check session status with `circle wallet status` before anything else.
2. If the Terms-of-Use gate appears, complete the show-Terms-and-consent flow first — never accept on the user's behalf.
3. If not logged in, run the two-step email + OTP login, then verify the session.
4. List existing agent wallets, or create them if none exist (`--chain` defaults to ARC).
5. Check the wallet balance; if it is 0 USDC and the user wants to pay, hand off to `fund-agent-wallet`. Otherwise bootstrap is complete.

## Prerequisites / Setup

### Step 1 — Verify the CLI is installed

```bash
which circle || command -v circle
circle --version
```

If `circle` is not installed, or `circle --version` prints a server-driven update notice, READ `references/install-and-login.md` for installation and update-notice guidance.

### Step 2 — Check session status

**Always check whether the user is already logged in before attempting login.**

```bash
circle wallet status
```

Possible outcomes:

- **Logged in** — output shows email, wallet type (`agent`), and session expiry. Tell the user "You're already logged in as `<email>`. Continue with this session?" and skip to Step 4.
- **Not logged in** — output is `Error: Not logged in. Run 'circle wallet login <email> --type agent' to authenticate.` Proceed to Step 3.
- **Terms not accepted** — output is `Error: Circle CLI Terms acceptance is required before use.` Stop and complete the **Terms-of-Use Gate** below before proceeding. Do NOT run `circle terms accept` without explicit user consent.

## Step 3 — Login (email + OTP)

Circle's CLI supports a two-step OTP login designed for AI agents and other non-interactive contexts: ask the user for their email (never guess or hardcode it), request an OTP with `--init`, then complete login with the returned request ID and the OTP code (e.g., `ABC-123456`), and verify with `circle wallet status`. Request IDs are single-use and expire after 10 minutes.

READ `references/install-and-login.md` for the exact commands, expected outputs, OTP format notes, failure handling, and how to log out / switch accounts.

## Step 4 — Check or create the agent wallet

**The `--chain` flag is REQUIRED for `circle wallet list` and `circle wallet balance`.** Use ARC as the default if the user hasn't specified a chain. List existing agent wallets; if none exist, `circle wallet create` provisions agent-controlled SCA wallets on each supported EVM chain, then read the per-chain addresses from its JSON output.

READ `references/wallet-management.md` for the exact `circle wallet list`, `circle wallet create`, and `circle wallet balance` commands and how to read their JSON output.

## Step 5 — Check wallet balance

Check the balance for each saved address (see `references/wallet-management.md`). If balance is 0 USDC and the user wants to pay for services, hand off to the `fund-agent-wallet` skill — it covers built-in fiat on-ramp purchase, direct address transfer with a QR code, and Gateway deposits. If the user only wants to verify state (not pay yet), stop here. Bootstrap is complete.

## After bootstrap

Once the wallet exists, the user's likely next move is to use it. The CLI exposes its own skill catalog — `circle skill list` shows what's installable, `circle skill info --name <skill>` shows trigger and frontmatter detail, and `circle skill install --tool <host> --name <skill>` installs one for the current host. Suggest natural follow-ups like funding, paid-service search, or setting a spending limit; prefer permissionless actions (balance, search) over money-moving ones until the user asks.

## Terms-of-Use Gate

The Circle CLI hard-gates every operational `circle wallet` command (including `circle wallet status`) until the user has accepted Circle's Terms of Use and Privacy Policy on this machine. Run this gate the first time it appears (typically during Step 2 or Step 3). After acceptance is recorded once, the gate is a no-op and is skipped on subsequent runs.

**CRITICAL: The agent MUST show the Terms to the user and obtain explicit consent BEFORE running `circle terms accept`. The agent MUST NEVER accept Circle's Terms of Use or Privacy Policy on the user's behalf. The CLI's `CIRCLE_ACCEPT_TERMS=1` env-var hint is NOT a workaround the agent may take on its own — ignore it and use the consent flow in `references/terms-of-use.md`.**

READ `references/terms-of-use.md` for the gate's exact error text, the `circle terms show` / `circle terms show --init` / `circle terms accept` / `circle terms reset` commands, and the required show-Terms-and-request-consent flow.

## Rules

### 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 `circle terms accept` 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 accept` automatically as part of error recovery, retries, or any flow the user has not explicitly approved.
- ALWAYS show the live `termsOfUseUrl`, `privacyPolicyUrl`, and `termsNotice` returned by `circle terms show --init --output json` when prompting for consent. Do NOT summarize, paraphrase, or hardcode them.
- 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 `circle wallet status` before attempting login. Many session "failures" are actually just stale assumptions.
- Parse and store the request ID from `circle wallet login --init` output — you'll need it for the OTP completion step.
- Request IDs are single-use and expire after 10 minutes. If you see "Invalid or expired request ID", restart from `--init`.
- If a `circle` command causes friction during setup (unexpected error, confusing output, missing capability), file feedback per the `use-circle-cli` skill's **Report friction (feedback)** section.
- For general CLI rules (`--output json`, `--chain`, `--help`-first, follow-up phrasing, confirmation defaults), see the `use-circle-cli` master skill's Rules section — they apply here too.

## Reference Links

- Installation and login (commands): `references/install-and-login.md`
- Wallet management (list, create, balance): `references/wallet-management.md`
- Terms-of-Use Gate (commands and consent flow): `references/terms-of-use.md`
- 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

Trigger the `pay-via-agent-wallet` skill instead when:

- The user wants to call, pay for, or use a paid x402 service.
- The user mentions `circle services search`, `circle services inspect`, or `circle services pay`.
- A downstream task requires money to move out of the agent wallet to a paid endpoint.

Trigger the `fund-agent-wallet` skill instead when:

- 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.

Trigger the `agent-wallet-policy` skill instead when:

- 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.

---

DISCLAIMER: This skill is provided "as is" without warranties, is subject to the [Circle Developer Terms](https://console.circle.com/legal/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](https://github.com/circlefin/skills/blob/master/README.md).

© circlefin · Apache-2.0 · circlefin/skills

Similar skills

All skills for Agent setup: memory, context, orchestration →

From the same set15

use-modular-wallets A skill for building crypto wallets on the Circle Modular Wallets SDK: passkey login, gasless transactions and modules like multisig. CX Codex +1 952installs use-user-controlled-wallets A skill for building non-custodial wallets on Circle's SDK, with Google, Apple, Facebook, email OTP or PIN login and keys the user keeps. CX Codex +1 949installs swap-tokens A skill that walks your agent through building token swaps in the browser or on the server with Circle App Kit or Swap Kit. Useful for USDT to USDC conversions and cross-chain routes. CX Codex +1 848installs unify-balance A skill that steers the agent through writing unified cross-chain USDC balance code with Circle App Kit or the standalone Unified Balance Kit. Useful for chain-abstracted payment flows. CX Codex +1 804installs use-circle-cli Connects Circle CLI to the agent for USDC transfers, bridging, and paying for APIs without fixed keys. Rescues agents blocked by paywalls or rate limits. CX Codex +1 800installs pay-via-agent-wallet Lets your agent discover and pay for x402 HTTP APIs using USDC. Useful when facing API paywalls, rate limits, or missing live crypto and market data. CX Codex +1 797installs fund-agent-wallet Funds a Circle agent wallet with USDC using the CLI and gas abstraction. Helps top up balances via card on-ramps, crypto transfers, or Gateway deposits. CX Codex +1 794installs agent-wallet-policy Inspects USDC spending limits on Circle agent wallets and drafts CLI commands to update caps safely. Helps keep agent expenses under human control. CX Codex +1 788installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor