From circle
Funds a Circle agent wallet with USDC via the `circle` CLI, covering fiat on-ramp, crypto transfer, and Gateway deposits for Nanopayments. Use when the user needs to add USDC, top up a low balance, or deposit into Gateway.
How this skill is triggered — by the user, by Claude, or both
Slash command
/circle:fund-agent-walletThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
For an overview of the Circle CLI's **full** capability set — bridging, smart contract execution, x402 payment, and more — see the `use-circle-cli` master skill. This skill is the narrower funding flow.
For an overview of the Circle CLI's full capability set — bridging, smart contract execution, x402 payment, and more — see the use-circle-cli master skill. This skill is the narrower funding flow.
Funding an agent wallet means putting USDC where the CLI can spend it. There are two balance pools to be aware of:
accepts[] does not include GatewayWalletBatched. Settles in one block.accepts[] includes GatewayWalletBatched. Settles in <500ms once the balance exists.Agent wallet payment flows are gas-abstracted — users can pay with USDC without pre-funding native gas.
This skill covers funding both pools. Pick the path with the shortest time-to-result and hide chain complexity from the user.
# Confirm session is good
circle wallet status
# Get the wallet address
circle wallet list --chain BASE --type agent --output json
# Check current on-chain balance (per chain)
circle wallet balance --address <addr> --chain BASE --output json
# Check current Gateway balance (per chain)
circle gateway balance --address <addr> --chain BASE --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.
Ask the user: "How would you like to fund your wallet?"
Default recommendation: existing USDC → BASE. Fastest, lowest friction, and BASE is the most commonly accepted chain across the marketplace.
The CLI prompts for missing values when run interactively. Agents are non-interactive, so every circle wallet fund invocation against mainnet MUST include:
--address <addr> — wallet address from circle wallet list--chain <chain> — e.g. BASE--method <fiat|crypto> — without it: Error: --method is required in non-interactive mode.--amount <number> — USDC amount; without it: Error: --amount is required.--token usdc is the default and can be omitted, but pass it explicitly when the user asked for USDC specifically.
Opens a fiat on-ramp window in the user's default browser. Funds deposit directly to the wallet on the selected chain.
circle wallet fund --address <addr> --chain BASE --amount 25 --token usdc --method fiat --open
The user completes purchase in the on-ramp window. USDC arrives in the wallet on the selected chain after on-ramp settlement (typically minutes for card, longer for bank transfer).
Verify after the user reports purchase complete:
circle wallet balance --address <addr> --chain BASE --output json
The user already holds USDC somewhere (another wallet, an exchange, etc.) and wants to send it to the agent wallet.
circle wallet fund --address <addr> --chain BASE --amount 10 --token usdc --method crypto --open
--open renders the EIP-681 QR code on a local HTML page in the user's default browser. Use this by default. Terminal-rendered QR codes are frequently truncated or unscannable inside agent UIs (Claude Code, Codex, etc.); the browser page renders the QR at full resolution and works on both desktop and mobile.
The user scans the QR with any mobile wallet (MetaMask, Coinbase Wallet, Rainbow, Phantom) and confirms the transfer.
If the user can't scan a browser QR, READ references/crypto-transfer-alternatives.md (QR-to-PNG via --export, manual transfer details including USDC contract addresses).
circle wallet balance --address <addr> --chain BASE --output json
Only suggest a Gateway deposit when:
accepts[] includes GatewayWalletBatched on a specific chain, ANDcircle gateway deposit --method eco deposits BASE vanilla USDC into Gateway and lands on Polygon (Gateway domain 7) in ~30-50s for a $0.03 flat fee. The follow-up payment is pay --chain MATIC.
Use --method direct only when:
circle gateway deposit --help for the current list. Trying an unsupported source returns "Unknown method" or chain-not-supported.accepts[] (not circle services inspect). Eco lands on Polygon, so if the seller can't pay there, the Gateway balance won't be reachable for this payment.direct --chain <fast-chain> is ~8s on the fast chains only (MATIC, AVAX) and skips the eco fee. (e.g., user has 5 USDC vanilla on Polygon → direct --chain MATIC.)If none of conditions 1–4 holds, the answer is eco. Picking direct anyway is slow on BASE: direct on BASE (and ETH/ARB/OP/UNI) waits ~13–19 minutes for finality + gas, vs eco's ~30-50s + $0.03. (The ~8s above is MATIC/AVAX only — never quote it for BASE.)
Eco's cold-start (~30-50s + $0.03) is paid once; every Gateway call after is <500ms. Vanilla has no deposit but every call costs ~2s forever with no amortization. Agentic workflows are rarely single-call, so treat the deposit as one-time wallet onboarding, not a per-call cost. (Time breakeven is ~N=7-13 calls, but Gateway-only seller access and <500ms future calls already win at call 1.)
# Deposit (--amount, --address, --chain, --method are all required)
circle gateway deposit --amount 10 --address <addr> --chain BASE --method eco
# Verify (Gateway balance shows Polygon in the per-chain breakdown)
circle gateway balance --address <addr> --chain BASE --output json
# First payment/transfer on a new chain auto-deploys the wallet (see Troubleshooting).
Once the deposit verifies, hand off to the pay-via-agent-wallet skill for the actual payment — that skill owns the circle services pay flow (including its allowed-tools whitelist and gotchas).
Common mistake: using --chain BASE on the pay call when the Gateway balance landed on Polygon. The chain on pay must match where the balance lives.
When a condition for --method direct holds (above), or the user wants USDC back out of Gateway, READ references/gateway-direct-and-withdraw.md — direct command syntax, supported chains and timings, and the same-chain-only withdraw + circle bridge transfer pattern.
On ANY funding error (missing flags, unscannable QR, Wallet not deployed, Insufficient balance, wrong chain after eco, withdraw limits), READ references/troubleshooting.md for the error table and reference links.
circle wallet list.--method <fiat|crypto> to circle wallet fund — agents are non-interactive and the CLI will not prompt.--amount <number> to circle wallet fund — confirm the amount with the user first.--method crypto --open over rendering QR codes in the terminal — terminal QR codes get truncated inside Claude Code, Codex, and similar agent UIs and become unscannable.--method fiat --open so the on-ramp loads in the browser.accepts[].amount = max(price × N + fee + slack, Gateway minimum), where N is the workflow's expected call count. Typically reserve ~50% of vanilla as a soft headroom floor. Gateway enforces a server-side minimum deposit; sizing below it returns an error, so floor your suggestion to that minimum. Run circle gateway deposit --help for current bounds.--max-amount cap. Don't silently deposit ~100× the task cost.circle wallet --help for the current options if a Wallet not deployed error appears.--chain matching where the balance lives. Eco lands on Polygon → pay --chain MATIC. Direct lands on the source chain → pay --chain <same>.circle CLI itself causes friction during funding (unexpected error, confusing output, missing capability), file feedback per the use-circle-cli skill's Report friction (feedback) section.Trigger the use-agent-wallet skill instead when:
circle wallet status errors with "Not logged in" or "Terms acceptance is required".Trigger the pay-via-agent-wallet skill instead when:
circle services pay, circle services search, or any "pay for" prompt.Trigger the agent-wallet-policy skill instead when:
For cross-chain USDC moves the agent should use circle bridge transfer directly — it is part of the Circle CLI (see references/gateway-direct-and-withdraw.md for the withdraw-then-bridge pattern).
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.
npx claudepluginhub circlefin/skills --plugin circle-skillsUses Circle CLI for onchain stablecoin operations: paying for APIs, sending USDC, bridging, checking balances. Also acts as a rescue when agents hit paywalls or rate limits.
CLI for Polygon blockchain operations: wallet setup, token swaps, bridging, yield management (Aave, ERC-4626), on-chain identity, reputation, and x402 micropayments. Uses Sequence wallets and Trails DeFi.
Interact with a local AgentLayer wallet runtime: check balances, transfer tokens, swap, DeFi operations, or x402 payments. Prefers wallet tools over shell commands and previews writes before execution.