[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-circle-agent-wallet-policy":3,"mdc--dvz5sn-key":35,"related-org-circle-agent-wallet-policy":1331,"related-repo-circle-agent-wallet-policy":1471},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":24,"repoUrl":25,"updatedAt":26,"license":27,"forks":28,"topics":29,"repo":30,"sourceUrl":33,"mdContent":34},"agent-wallet-policy","inspect Circle agent wallet spending policies","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.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},"circle","Circle","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fcircle.png","circlefin",[13,17,18,21],{"name":14,"slug":15,"type":16},"Security","security","tag",{"name":9,"slug":8,"type":16},{"name":19,"slug":20,"type":16},"CLI","cli",{"name":22,"slug":23,"type":16},"Payments","payments",130,"https:\u002F\u002Fgithub.com\u002Fcirclefin\u002Fskills","2026-07-12T08:14:58.279437",null,35,[],{"repoUrl":25,"stars":24,"forks":28,"topics":31,"description":32},[],"Circle's open source skills for AI-assisted development.","https:\u002F\u002Fgithub.com\u002Fcirclefin\u002Fskills\u002Ftree\u002FHEAD\u002Fplugins\u002Fcircle\u002Fskills\u002Fagent-wallet-policy","---\nname: agent-wallet-policy\ndescription: \"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.\"\n---\n\n## Overview\n\nFor 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.\n\nCircle agent wallets support **spending policies** — per-wallet caps that the CLI enforces on every payment and transfer. There are three operations:\n\n| Operation | Command | OTP required? |\n|---|---|---|\n| **View** current limits | `circle wallet limit --address \u003Caddr> --chain BASE --output json` | No |\n| **Set** custom limits | `circle wallet limit set ...` | **Yes — human OTP, run in user's own terminal** |\n| **Reset** to defaults | `circle wallet limit reset ...` | **Yes — human OTP, run in user's own terminal** |\n\nSpending policies are **mainnet-only** (testnet chains are rejected; see Troubleshooting \u002F Rules).\n\n## Prerequisites\n\n```bash\n# Confirm session is good\ncircle wallet status\n\n# Get the wallet address\ncircle wallet list --chain BASE --type agent --output json\n```\n\nIf `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.\n\n## Viewing current limits (in-agent, no OTP)\n\n```bash\ncircle wallet limit --address \u003Caddr> --chain BASE --output json\n```\n\nShows 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.\n\n## Setting or resetting limits (interactive terminal — handoff to user)\n\n`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.\n\n**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.\n\n### Step 1 — Confirm values with the user\n\nLimits must be **monotonic**: `per-tx ≤ daily ≤ weekly ≤ monthly`.\n\nA typical conservative configuration:\n\n| Tier | Suggested USDC value |\n|---|---|\n| `--per-tx` | `1` |\n| `--daily` | `5` |\n| `--weekly` | `20` |\n| `--monthly` | `50` |\n\nAdjust based on the user's stated tolerance. Get explicit yes before generating the command.\n\n### Step 2 — Hand the user the command\n\nTell the user:\n\n> 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.\n>\n> ```bash\n> circle wallet limit set \\\n>   --address \u003Caddr> --chain BASE \\\n>   --policy-type stablecoin \\\n>   --per-tx 1 --daily 5 --weekly 20 --monthly 50\n> ```\n\nFor reset, the verbatim command is:\n\n```bash\ncircle wallet limit reset --address \u003Caddr> --chain BASE --yes\n```\n\nOmit `--yes` if you want the user to see a confirmation prompt before the OTP is sent.\n\n### Step 3 — Verify after the user reports done\n\n```bash\ncircle wallet limit --address \u003Caddr> --chain BASE --output json\n```\n\nConfirms the new caps. Surface them to the user.\n\n## Troubleshooting\n\n| Symptom | Cause | Fix |\n|---|---|---|\n| 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. |\n| OTP rejected with \"prefix mismatch\" | User entered an OTP from a previous request | Restart — each `set` \u002F `reset` invocation has a fresh prefix. |\n| `Spending policies are mainnet-only` | Tried to set a policy on a testnet chain | Re-run with a mainnet `--chain` value (`BASE`, `MATIC`, etc.). |\n| `Limits must be monotonic` | per-tx > daily, daily > weekly, etc. | Re-check the values. `per-tx ≤ daily ≤ weekly ≤ monthly`. |\n| `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`. |\n\n## Rules\n\n- 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.\n- 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.\n- ALWAYS hand the user a verbatim `circle wallet limit set` \u002F `reset` command for them to run in their own terminal. Do NOT try to orchestrate the OTP from chat.\n- ALWAYS confirm proposed limit values with the user before generating the command. Show the per-tx \u002F daily \u002F weekly \u002F monthly numbers explicitly and wait for explicit yes.\n- Spending policies are mainnet-only — testnet chains are rejected. Don't quote testnet examples.\n- Only agent wallets support spending policies, not local wallets.\n- After the user reports the change is done, run `circle wallet limit --address \u003Caddr> --chain BASE --output json` so the user sees the new caps.\n\n## Reference Links\n\n- Full policy walkthrough (extended examples, edge cases): https:\u002F\u002Fagents.circle.com\u002Fskills\u002Fwallet-policy.md\n- Circle Developer Docs: https:\u002F\u002Fdevelopers.circle.com\u002Fllms.txt\n\n## Alternatives\n\nTrigger the `use-agent-wallet` skill instead when:\n\n- The user has not yet logged in to the CLI or accepted Terms.\n- `circle wallet status` errors with \"Not logged in\" or \"Terms acceptance is required\".\n- The user is asking about wallet setup, login, or session state — not policy.\n\nTrigger the `pay-via-agent-wallet` skill instead when:\n\n- The user wants to call, pay for, or use a paid x402 service.\n- Limits are already set and the user is ready to spend.\n\nTrigger the `fund-agent-wallet` skill instead when:\n\n- The user wants to add USDC before setting limits.\n- The user mentions deposit, fiat on-ramp, fiat purchase, QR-code transfer, or Gateway deposit.\n\n---\n\nDISCLAIMER: This skill is provided \"as is\" without warranties, is subject to the [Circle Developer Terms](https:\u002F\u002Fconsole.circle.com\u002Flegal\u002Fdeveloper-terms), and output generated may contain errors and\u002For include fee configuration options (including fees directed to Circle); additional details are in the repository [README](https:\u002F\u002Fgithub.com\u002Fcirclefin\u002Fskills\u002Fblob\u002Fmaster\u002FREADME.md).\n",{"data":36,"body":37},{"name":4,"description":6},{"type":38,"children":39},"root",[40,49,72,84,203,215,221,330,351,357,423,436,442,468,478,485,505,510,616,621,627,632,770,775,835,848,854,911,916,922,1111,1117,1177,1183,1210,1216,1228,1251,1262,1275,1286,1299,1303,1325],{"type":41,"tag":42,"props":43,"children":45},"element","h2",{"id":44},"overview",[46],{"type":47,"value":48},"text","Overview",{"type":41,"tag":50,"props":51,"children":52},"p",{},[53,55,61,63,70],{"type":47,"value":54},"For an overview of the Circle CLI's ",{"type":41,"tag":56,"props":57,"children":58},"strong",{},[59],{"type":47,"value":60},"full",{"type":47,"value":62}," capability set, see the ",{"type":41,"tag":64,"props":65,"children":67},"code",{"className":66},[],[68],{"type":47,"value":69},"use-circle-cli",{"type":47,"value":71}," master skill. This skill is the narrower spending-policy flow.",{"type":41,"tag":50,"props":73,"children":74},{},[75,77,82],{"type":47,"value":76},"Circle agent wallets support ",{"type":41,"tag":56,"props":78,"children":79},{},[80],{"type":47,"value":81},"spending policies",{"type":47,"value":83}," — per-wallet caps that the CLI enforces on every payment and transfer. There are three operations:",{"type":41,"tag":85,"props":86,"children":87},"table",{},[88,112],{"type":41,"tag":89,"props":90,"children":91},"thead",{},[92],{"type":41,"tag":93,"props":94,"children":95},"tr",{},[96,102,107],{"type":41,"tag":97,"props":98,"children":99},"th",{},[100],{"type":47,"value":101},"Operation",{"type":41,"tag":97,"props":103,"children":104},{},[105],{"type":47,"value":106},"Command",{"type":41,"tag":97,"props":108,"children":109},{},[110],{"type":47,"value":111},"OTP required?",{"type":41,"tag":113,"props":114,"children":115},"tbody",{},[116,144,174],{"type":41,"tag":93,"props":117,"children":118},{},[119,130,139],{"type":41,"tag":120,"props":121,"children":122},"td",{},[123,128],{"type":41,"tag":56,"props":124,"children":125},{},[126],{"type":47,"value":127},"View",{"type":47,"value":129}," current limits",{"type":41,"tag":120,"props":131,"children":132},{},[133],{"type":41,"tag":64,"props":134,"children":136},{"className":135},[],[137],{"type":47,"value":138},"circle wallet limit --address \u003Caddr> --chain BASE --output json",{"type":41,"tag":120,"props":140,"children":141},{},[142],{"type":47,"value":143},"No",{"type":41,"tag":93,"props":145,"children":146},{},[147,157,166],{"type":41,"tag":120,"props":148,"children":149},{},[150,155],{"type":41,"tag":56,"props":151,"children":152},{},[153],{"type":47,"value":154},"Set",{"type":47,"value":156}," custom limits",{"type":41,"tag":120,"props":158,"children":159},{},[160],{"type":41,"tag":64,"props":161,"children":163},{"className":162},[],[164],{"type":47,"value":165},"circle wallet limit set ...",{"type":41,"tag":120,"props":167,"children":168},{},[169],{"type":41,"tag":56,"props":170,"children":171},{},[172],{"type":47,"value":173},"Yes — human OTP, run in user's own terminal",{"type":41,"tag":93,"props":175,"children":176},{},[177,187,196],{"type":41,"tag":120,"props":178,"children":179},{},[180,185],{"type":41,"tag":56,"props":181,"children":182},{},[183],{"type":47,"value":184},"Reset",{"type":47,"value":186}," to defaults",{"type":41,"tag":120,"props":188,"children":189},{},[190],{"type":41,"tag":64,"props":191,"children":193},{"className":192},[],[194],{"type":47,"value":195},"circle wallet limit reset ...",{"type":41,"tag":120,"props":197,"children":198},{},[199],{"type":41,"tag":56,"props":200,"children":201},{},[202],{"type":47,"value":173},{"type":41,"tag":50,"props":204,"children":205},{},[206,208,213],{"type":47,"value":207},"Spending policies are ",{"type":41,"tag":56,"props":209,"children":210},{},[211],{"type":47,"value":212},"mainnet-only",{"type":47,"value":214}," (testnet chains are rejected; see Troubleshooting \u002F Rules).",{"type":41,"tag":42,"props":216,"children":218},{"id":217},"prerequisites",[219],{"type":47,"value":220},"Prerequisites",{"type":41,"tag":222,"props":223,"children":228},"pre",{"className":224,"code":225,"language":226,"meta":227,"style":227},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# Confirm session is good\ncircle wallet status\n\n# Get the wallet address\ncircle wallet list --chain BASE --type agent --output json\n","bash","",[229],{"type":41,"tag":64,"props":230,"children":231},{"__ignoreMap":227},[232,244,264,274,283],{"type":41,"tag":233,"props":234,"children":237},"span",{"class":235,"line":236},"line",1,[238],{"type":41,"tag":233,"props":239,"children":241},{"style":240},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[242],{"type":47,"value":243},"# Confirm session is good\n",{"type":41,"tag":233,"props":245,"children":247},{"class":235,"line":246},2,[248,253,259],{"type":41,"tag":233,"props":249,"children":251},{"style":250},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[252],{"type":47,"value":8},{"type":41,"tag":233,"props":254,"children":256},{"style":255},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[257],{"type":47,"value":258}," wallet",{"type":41,"tag":233,"props":260,"children":261},{"style":255},[262],{"type":47,"value":263}," status\n",{"type":41,"tag":233,"props":265,"children":267},{"class":235,"line":266},3,[268],{"type":41,"tag":233,"props":269,"children":271},{"emptyLinePlaceholder":270},true,[272],{"type":47,"value":273},"\n",{"type":41,"tag":233,"props":275,"children":277},{"class":235,"line":276},4,[278],{"type":41,"tag":233,"props":279,"children":280},{"style":240},[281],{"type":47,"value":282},"# Get the wallet address\n",{"type":41,"tag":233,"props":284,"children":286},{"class":235,"line":285},5,[287,291,295,300,305,310,315,320,325],{"type":41,"tag":233,"props":288,"children":289},{"style":250},[290],{"type":47,"value":8},{"type":41,"tag":233,"props":292,"children":293},{"style":255},[294],{"type":47,"value":258},{"type":41,"tag":233,"props":296,"children":297},{"style":255},[298],{"type":47,"value":299}," list",{"type":41,"tag":233,"props":301,"children":302},{"style":255},[303],{"type":47,"value":304}," --chain",{"type":41,"tag":233,"props":306,"children":307},{"style":255},[308],{"type":47,"value":309}," BASE",{"type":41,"tag":233,"props":311,"children":312},{"style":255},[313],{"type":47,"value":314}," --type",{"type":41,"tag":233,"props":316,"children":317},{"style":255},[318],{"type":47,"value":319}," agent",{"type":41,"tag":233,"props":321,"children":322},{"style":255},[323],{"type":47,"value":324}," --output",{"type":41,"tag":233,"props":326,"children":327},{"style":255},[328],{"type":47,"value":329}," json\n",{"type":41,"tag":50,"props":331,"children":332},{},[333,335,341,343,349],{"type":47,"value":334},"If ",{"type":41,"tag":64,"props":336,"children":338},{"className":337},[],[339],{"type":47,"value":340},"circle wallet status",{"type":47,"value":342}," errors with \"Not logged in\" or \"Terms acceptance is required\", hand off to the ",{"type":41,"tag":64,"props":344,"children":346},{"className":345},[],[347],{"type":47,"value":348},"use-agent-wallet",{"type":47,"value":350}," skill — it covers install, terms, login, and wallet creation.",{"type":41,"tag":42,"props":352,"children":354},{"id":353},"viewing-current-limits-in-agent-no-otp",[355],{"type":47,"value":356},"Viewing current limits (in-agent, no OTP)",{"type":41,"tag":222,"props":358,"children":360},{"className":224,"code":359,"language":226,"meta":227,"style":227},"circle wallet limit --address \u003Caddr> --chain BASE --output json\n",[361],{"type":41,"tag":64,"props":362,"children":363},{"__ignoreMap":227},[364],{"type":41,"tag":233,"props":365,"children":366},{"class":235,"line":236},[367,371,375,380,385,391,396,402,407,411,415,419],{"type":41,"tag":233,"props":368,"children":369},{"style":250},[370],{"type":47,"value":8},{"type":41,"tag":233,"props":372,"children":373},{"style":255},[374],{"type":47,"value":258},{"type":41,"tag":233,"props":376,"children":377},{"style":255},[378],{"type":47,"value":379}," limit",{"type":41,"tag":233,"props":381,"children":382},{"style":255},[383],{"type":47,"value":384}," --address",{"type":41,"tag":233,"props":386,"children":388},{"style":387},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[389],{"type":47,"value":390}," \u003C",{"type":41,"tag":233,"props":392,"children":393},{"style":255},[394],{"type":47,"value":395},"add",{"type":41,"tag":233,"props":397,"children":399},{"style":398},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[400],{"type":47,"value":401},"r",{"type":41,"tag":233,"props":403,"children":404},{"style":387},[405],{"type":47,"value":406},">",{"type":41,"tag":233,"props":408,"children":409},{"style":255},[410],{"type":47,"value":304},{"type":41,"tag":233,"props":412,"children":413},{"style":255},[414],{"type":47,"value":309},{"type":41,"tag":233,"props":416,"children":417},{"style":255},[418],{"type":47,"value":324},{"type":41,"tag":233,"props":420,"children":421},{"style":255},[422],{"type":47,"value":329},{"type":41,"tag":50,"props":424,"children":425},{},[426,428,434],{"type":47,"value":427},"Shows the current per-tx, daily, weekly, and monthly USDC caps (",{"type":41,"tag":64,"props":429,"children":431},{"className":430},[],[432],{"type":47,"value":433},"null",{"type":47,"value":435}," for any unset tier). Safe to call freely — read-only, no money moves, no OTP.",{"type":41,"tag":42,"props":437,"children":439},{"id":438},"setting-or-resetting-limits-interactive-terminal-handoff-to-user",[440],{"type":47,"value":441},"Setting or resetting limits (interactive terminal — handoff to user)",{"type":41,"tag":50,"props":443,"children":444},{},[445,451,453,459,461,466],{"type":41,"tag":64,"props":446,"children":448},{"className":447},[],[449],{"type":47,"value":450},"circle wallet limit set",{"type":47,"value":452}," and ",{"type":41,"tag":64,"props":454,"children":456},{"className":455},[],[457],{"type":47,"value":458},"circle wallet limit reset",{"type":47,"value":460}," are ",{"type":41,"tag":56,"props":462,"children":463},{},[464],{"type":47,"value":465},"interactive",{"type":47,"value":467},". They send a 6-digit OTP to the user's email mid-execution and wait for the code at the CLI's stdin prompt.",{"type":41,"tag":50,"props":469,"children":470},{},[471,476],{"type":41,"tag":56,"props":472,"children":473},{},[474],{"type":47,"value":475},"OTPs are password-equivalent. The agent must NOT receive, store, or relay the OTP.",{"type":47,"value":477}," 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.",{"type":41,"tag":479,"props":480,"children":482},"h3",{"id":481},"step-1-confirm-values-with-the-user",[483],{"type":47,"value":484},"Step 1 — Confirm values with the user",{"type":41,"tag":50,"props":486,"children":487},{},[488,490,495,497,503],{"type":47,"value":489},"Limits must be ",{"type":41,"tag":56,"props":491,"children":492},{},[493],{"type":47,"value":494},"monotonic",{"type":47,"value":496},": ",{"type":41,"tag":64,"props":498,"children":500},{"className":499},[],[501],{"type":47,"value":502},"per-tx ≤ daily ≤ weekly ≤ monthly",{"type":47,"value":504},".",{"type":41,"tag":50,"props":506,"children":507},{},[508],{"type":47,"value":509},"A typical conservative configuration:",{"type":41,"tag":85,"props":511,"children":512},{},[513,529],{"type":41,"tag":89,"props":514,"children":515},{},[516],{"type":41,"tag":93,"props":517,"children":518},{},[519,524],{"type":41,"tag":97,"props":520,"children":521},{},[522],{"type":47,"value":523},"Tier",{"type":41,"tag":97,"props":525,"children":526},{},[527],{"type":47,"value":528},"Suggested USDC value",{"type":41,"tag":113,"props":530,"children":531},{},[532,553,574,595],{"type":41,"tag":93,"props":533,"children":534},{},[535,544],{"type":41,"tag":120,"props":536,"children":537},{},[538],{"type":41,"tag":64,"props":539,"children":541},{"className":540},[],[542],{"type":47,"value":543},"--per-tx",{"type":41,"tag":120,"props":545,"children":546},{},[547],{"type":41,"tag":64,"props":548,"children":550},{"className":549},[],[551],{"type":47,"value":552},"1",{"type":41,"tag":93,"props":554,"children":555},{},[556,565],{"type":41,"tag":120,"props":557,"children":558},{},[559],{"type":41,"tag":64,"props":560,"children":562},{"className":561},[],[563],{"type":47,"value":564},"--daily",{"type":41,"tag":120,"props":566,"children":567},{},[568],{"type":41,"tag":64,"props":569,"children":571},{"className":570},[],[572],{"type":47,"value":573},"5",{"type":41,"tag":93,"props":575,"children":576},{},[577,586],{"type":41,"tag":120,"props":578,"children":579},{},[580],{"type":41,"tag":64,"props":581,"children":583},{"className":582},[],[584],{"type":47,"value":585},"--weekly",{"type":41,"tag":120,"props":587,"children":588},{},[589],{"type":41,"tag":64,"props":590,"children":592},{"className":591},[],[593],{"type":47,"value":594},"20",{"type":41,"tag":93,"props":596,"children":597},{},[598,607],{"type":41,"tag":120,"props":599,"children":600},{},[601],{"type":41,"tag":64,"props":602,"children":604},{"className":603},[],[605],{"type":47,"value":606},"--monthly",{"type":41,"tag":120,"props":608,"children":609},{},[610],{"type":41,"tag":64,"props":611,"children":613},{"className":612},[],[614],{"type":47,"value":615},"50",{"type":41,"tag":50,"props":617,"children":618},{},[619],{"type":47,"value":620},"Adjust based on the user's stated tolerance. Get explicit yes before generating the command.",{"type":41,"tag":479,"props":622,"children":624},{"id":623},"step-2-hand-the-user-the-command",[625],{"type":47,"value":626},"Step 2 — Hand the user the command",{"type":41,"tag":50,"props":628,"children":629},{},[630],{"type":47,"value":631},"Tell the user:",{"type":41,"tag":633,"props":634,"children":635},"blockquote",{},[636,641],{"type":41,"tag":50,"props":637,"children":638},{},[639],{"type":47,"value":640},"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.",{"type":41,"tag":222,"props":642,"children":644},{"className":224,"code":643,"language":226,"meta":227,"style":227},"circle wallet limit set \\\n  --address \u003Caddr> --chain BASE \\\n  --policy-type stablecoin \\\n  --per-tx 1 --daily 5 --weekly 20 --monthly 50\n",[645],{"type":41,"tag":64,"props":646,"children":647},{"__ignoreMap":227},[648,673,709,726],{"type":41,"tag":233,"props":649,"children":650},{"class":235,"line":236},[651,655,659,663,668],{"type":41,"tag":233,"props":652,"children":653},{"style":250},[654],{"type":47,"value":8},{"type":41,"tag":233,"props":656,"children":657},{"style":255},[658],{"type":47,"value":258},{"type":41,"tag":233,"props":660,"children":661},{"style":255},[662],{"type":47,"value":379},{"type":41,"tag":233,"props":664,"children":665},{"style":255},[666],{"type":47,"value":667}," set",{"type":41,"tag":233,"props":669,"children":670},{"style":398},[671],{"type":47,"value":672}," \\\n",{"type":41,"tag":233,"props":674,"children":675},{"class":235,"line":246},[676,681,685,689,693,697,701,705],{"type":41,"tag":233,"props":677,"children":678},{"style":255},[679],{"type":47,"value":680},"  --address",{"type":41,"tag":233,"props":682,"children":683},{"style":387},[684],{"type":47,"value":390},{"type":41,"tag":233,"props":686,"children":687},{"style":255},[688],{"type":47,"value":395},{"type":41,"tag":233,"props":690,"children":691},{"style":398},[692],{"type":47,"value":401},{"type":41,"tag":233,"props":694,"children":695},{"style":387},[696],{"type":47,"value":406},{"type":41,"tag":233,"props":698,"children":699},{"style":255},[700],{"type":47,"value":304},{"type":41,"tag":233,"props":702,"children":703},{"style":255},[704],{"type":47,"value":309},{"type":41,"tag":233,"props":706,"children":707},{"style":398},[708],{"type":47,"value":672},{"type":41,"tag":233,"props":710,"children":711},{"class":235,"line":266},[712,717,722],{"type":41,"tag":233,"props":713,"children":714},{"style":255},[715],{"type":47,"value":716},"  --policy-type",{"type":41,"tag":233,"props":718,"children":719},{"style":255},[720],{"type":47,"value":721}," stablecoin",{"type":41,"tag":233,"props":723,"children":724},{"style":398},[725],{"type":47,"value":672},{"type":41,"tag":233,"props":727,"children":728},{"class":235,"line":276},[729,734,740,745,750,755,760,765],{"type":41,"tag":233,"props":730,"children":731},{"style":255},[732],{"type":47,"value":733},"  --per-tx",{"type":41,"tag":233,"props":735,"children":737},{"style":736},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[738],{"type":47,"value":739}," 1",{"type":41,"tag":233,"props":741,"children":742},{"style":255},[743],{"type":47,"value":744}," --daily",{"type":41,"tag":233,"props":746,"children":747},{"style":736},[748],{"type":47,"value":749}," 5",{"type":41,"tag":233,"props":751,"children":752},{"style":255},[753],{"type":47,"value":754}," --weekly",{"type":41,"tag":233,"props":756,"children":757},{"style":736},[758],{"type":47,"value":759}," 20",{"type":41,"tag":233,"props":761,"children":762},{"style":255},[763],{"type":47,"value":764}," --monthly",{"type":41,"tag":233,"props":766,"children":767},{"style":736},[768],{"type":47,"value":769}," 50\n",{"type":41,"tag":50,"props":771,"children":772},{},[773],{"type":47,"value":774},"For reset, the verbatim command is:",{"type":41,"tag":222,"props":776,"children":778},{"className":224,"code":777,"language":226,"meta":227,"style":227},"circle wallet limit reset --address \u003Caddr> --chain BASE --yes\n",[779],{"type":41,"tag":64,"props":780,"children":781},{"__ignoreMap":227},[782],{"type":41,"tag":233,"props":783,"children":784},{"class":235,"line":236},[785,789,793,797,802,806,810,814,818,822,826,830],{"type":41,"tag":233,"props":786,"children":787},{"style":250},[788],{"type":47,"value":8},{"type":41,"tag":233,"props":790,"children":791},{"style":255},[792],{"type":47,"value":258},{"type":41,"tag":233,"props":794,"children":795},{"style":255},[796],{"type":47,"value":379},{"type":41,"tag":233,"props":798,"children":799},{"style":255},[800],{"type":47,"value":801}," reset",{"type":41,"tag":233,"props":803,"children":804},{"style":255},[805],{"type":47,"value":384},{"type":41,"tag":233,"props":807,"children":808},{"style":387},[809],{"type":47,"value":390},{"type":41,"tag":233,"props":811,"children":812},{"style":255},[813],{"type":47,"value":395},{"type":41,"tag":233,"props":815,"children":816},{"style":398},[817],{"type":47,"value":401},{"type":41,"tag":233,"props":819,"children":820},{"style":387},[821],{"type":47,"value":406},{"type":41,"tag":233,"props":823,"children":824},{"style":255},[825],{"type":47,"value":304},{"type":41,"tag":233,"props":827,"children":828},{"style":255},[829],{"type":47,"value":309},{"type":41,"tag":233,"props":831,"children":832},{"style":255},[833],{"type":47,"value":834}," --yes\n",{"type":41,"tag":50,"props":836,"children":837},{},[838,840,846],{"type":47,"value":839},"Omit ",{"type":41,"tag":64,"props":841,"children":843},{"className":842},[],[844],{"type":47,"value":845},"--yes",{"type":47,"value":847}," if you want the user to see a confirmation prompt before the OTP is sent.",{"type":41,"tag":479,"props":849,"children":851},{"id":850},"step-3-verify-after-the-user-reports-done",[852],{"type":47,"value":853},"Step 3 — Verify after the user reports done",{"type":41,"tag":222,"props":855,"children":856},{"className":224,"code":359,"language":226,"meta":227,"style":227},[857],{"type":41,"tag":64,"props":858,"children":859},{"__ignoreMap":227},[860],{"type":41,"tag":233,"props":861,"children":862},{"class":235,"line":236},[863,867,871,875,879,883,887,891,895,899,903,907],{"type":41,"tag":233,"props":864,"children":865},{"style":250},[866],{"type":47,"value":8},{"type":41,"tag":233,"props":868,"children":869},{"style":255},[870],{"type":47,"value":258},{"type":41,"tag":233,"props":872,"children":873},{"style":255},[874],{"type":47,"value":379},{"type":41,"tag":233,"props":876,"children":877},{"style":255},[878],{"type":47,"value":384},{"type":41,"tag":233,"props":880,"children":881},{"style":387},[882],{"type":47,"value":390},{"type":41,"tag":233,"props":884,"children":885},{"style":255},[886],{"type":47,"value":395},{"type":41,"tag":233,"props":888,"children":889},{"style":398},[890],{"type":47,"value":401},{"type":41,"tag":233,"props":892,"children":893},{"style":387},[894],{"type":47,"value":406},{"type":41,"tag":233,"props":896,"children":897},{"style":255},[898],{"type":47,"value":304},{"type":41,"tag":233,"props":900,"children":901},{"style":255},[902],{"type":47,"value":309},{"type":41,"tag":233,"props":904,"children":905},{"style":255},[906],{"type":47,"value":324},{"type":41,"tag":233,"props":908,"children":909},{"style":255},[910],{"type":47,"value":329},{"type":41,"tag":50,"props":912,"children":913},{},[914],{"type":47,"value":915},"Confirms the new caps. Surface them to the user.",{"type":41,"tag":42,"props":917,"children":919},{"id":918},"troubleshooting",[920],{"type":47,"value":921},"Troubleshooting",{"type":41,"tag":85,"props":923,"children":924},{},[925,946],{"type":41,"tag":89,"props":926,"children":927},{},[928],{"type":41,"tag":93,"props":929,"children":930},{},[931,936,941],{"type":41,"tag":97,"props":932,"children":933},{},[934],{"type":47,"value":935},"Symptom",{"type":41,"tag":97,"props":937,"children":938},{},[939],{"type":47,"value":940},"Cause",{"type":41,"tag":97,"props":942,"children":943},{},[944],{"type":47,"value":945},"Fix",{"type":41,"tag":113,"props":947,"children":948},{},[949,974,1008,1054,1082],{"type":41,"tag":93,"props":950,"children":951},{},[952,957,962],{"type":41,"tag":120,"props":953,"children":954},{},[955],{"type":47,"value":956},"User received multiple OTP emails",{"type":41,"tag":120,"props":958,"children":959},{},[960],{"type":47,"value":961},"Command was re-run while a previous invocation was still waiting",{"type":41,"tag":120,"props":963,"children":964},{},[965,967,972],{"type":47,"value":966},"Tell the user to use the ",{"type":41,"tag":56,"props":968,"children":969},{},[970],{"type":47,"value":971},"most recent",{"type":47,"value":973}," OTP only. Earlier ones are invalidated.",{"type":41,"tag":93,"props":975,"children":976},{},[977,982,987],{"type":41,"tag":120,"props":978,"children":979},{},[980],{"type":47,"value":981},"OTP rejected with \"prefix mismatch\"",{"type":41,"tag":120,"props":983,"children":984},{},[985],{"type":47,"value":986},"User entered an OTP from a previous request",{"type":41,"tag":120,"props":988,"children":989},{},[990,992,998,1000,1006],{"type":47,"value":991},"Restart — each ",{"type":41,"tag":64,"props":993,"children":995},{"className":994},[],[996],{"type":47,"value":997},"set",{"type":47,"value":999}," \u002F ",{"type":41,"tag":64,"props":1001,"children":1003},{"className":1002},[],[1004],{"type":47,"value":1005},"reset",{"type":47,"value":1007}," invocation has a fresh prefix.",{"type":41,"tag":93,"props":1009,"children":1010},{},[1011,1020,1025],{"type":41,"tag":120,"props":1012,"children":1013},{},[1014],{"type":41,"tag":64,"props":1015,"children":1017},{"className":1016},[],[1018],{"type":47,"value":1019},"Spending policies are mainnet-only",{"type":41,"tag":120,"props":1021,"children":1022},{},[1023],{"type":47,"value":1024},"Tried to set a policy on a testnet chain",{"type":41,"tag":120,"props":1026,"children":1027},{},[1028,1030,1036,1038,1044,1046,1052],{"type":47,"value":1029},"Re-run with a mainnet ",{"type":41,"tag":64,"props":1031,"children":1033},{"className":1032},[],[1034],{"type":47,"value":1035},"--chain",{"type":47,"value":1037}," value (",{"type":41,"tag":64,"props":1039,"children":1041},{"className":1040},[],[1042],{"type":47,"value":1043},"BASE",{"type":47,"value":1045},", ",{"type":41,"tag":64,"props":1047,"children":1049},{"className":1048},[],[1050],{"type":47,"value":1051},"MATIC",{"type":47,"value":1053},", etc.).",{"type":41,"tag":93,"props":1055,"children":1056},{},[1057,1066,1071],{"type":41,"tag":120,"props":1058,"children":1059},{},[1060],{"type":41,"tag":64,"props":1061,"children":1063},{"className":1062},[],[1064],{"type":47,"value":1065},"Limits must be monotonic",{"type":41,"tag":120,"props":1067,"children":1068},{},[1069],{"type":47,"value":1070},"per-tx > daily, daily > weekly, etc.",{"type":41,"tag":120,"props":1072,"children":1073},{},[1074,1076,1081],{"type":47,"value":1075},"Re-check the values. ",{"type":41,"tag":64,"props":1077,"children":1079},{"className":1078},[],[1080],{"type":47,"value":502},{"type":47,"value":504},{"type":41,"tag":93,"props":1083,"children":1084},{},[1085,1094,1099],{"type":41,"tag":120,"props":1086,"children":1087},{},[1088],{"type":41,"tag":64,"props":1089,"children":1091},{"className":1090},[],[1092],{"type":47,"value":1093},"Only agent wallets support spending policies",{"type":41,"tag":120,"props":1095,"children":1096},{},[1097],{"type":47,"value":1098},"Tried on a local (non-agent) wallet",{"type":41,"tag":120,"props":1100,"children":1101},{},[1102,1104,1110],{"type":47,"value":1103},"Spending policies apply only to agent wallets created via ",{"type":41,"tag":64,"props":1105,"children":1107},{"className":1106},[],[1108],{"type":47,"value":1109},"circle wallet create",{"type":47,"value":504},{"type":41,"tag":42,"props":1112,"children":1114},{"id":1113},"rules",[1115],{"type":47,"value":1116},"Rules",{"type":41,"tag":1118,"props":1119,"children":1120},"ul",{},[1121,1127,1132,1150,1155,1160,1165],{"type":41,"tag":1122,"props":1123,"children":1124},"li",{},[1125],{"type":47,"value":1126},"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.",{"type":41,"tag":1122,"props":1128,"children":1129},{},[1130],{"type":47,"value":1131},"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.",{"type":41,"tag":1122,"props":1133,"children":1134},{},[1135,1137,1142,1143,1148],{"type":47,"value":1136},"ALWAYS hand the user a verbatim ",{"type":41,"tag":64,"props":1138,"children":1140},{"className":1139},[],[1141],{"type":47,"value":450},{"type":47,"value":999},{"type":41,"tag":64,"props":1144,"children":1146},{"className":1145},[],[1147],{"type":47,"value":1005},{"type":47,"value":1149}," command for them to run in their own terminal. Do NOT try to orchestrate the OTP from chat.",{"type":41,"tag":1122,"props":1151,"children":1152},{},[1153],{"type":47,"value":1154},"ALWAYS confirm proposed limit values with the user before generating the command. Show the per-tx \u002F daily \u002F weekly \u002F monthly numbers explicitly and wait for explicit yes.",{"type":41,"tag":1122,"props":1156,"children":1157},{},[1158],{"type":47,"value":1159},"Spending policies are mainnet-only — testnet chains are rejected. Don't quote testnet examples.",{"type":41,"tag":1122,"props":1161,"children":1162},{},[1163],{"type":47,"value":1164},"Only agent wallets support spending policies, not local wallets.",{"type":41,"tag":1122,"props":1166,"children":1167},{},[1168,1170,1175],{"type":47,"value":1169},"After the user reports the change is done, run ",{"type":41,"tag":64,"props":1171,"children":1173},{"className":1172},[],[1174],{"type":47,"value":138},{"type":47,"value":1176}," so the user sees the new caps.",{"type":41,"tag":42,"props":1178,"children":1180},{"id":1179},"reference-links",[1181],{"type":47,"value":1182},"Reference Links",{"type":41,"tag":1118,"props":1184,"children":1185},{},[1186,1199],{"type":41,"tag":1122,"props":1187,"children":1188},{},[1189,1191],{"type":47,"value":1190},"Full policy walkthrough (extended examples, edge cases): ",{"type":41,"tag":1192,"props":1193,"children":1197},"a",{"href":1194,"rel":1195},"https:\u002F\u002Fagents.circle.com\u002Fskills\u002Fwallet-policy.md",[1196],"nofollow",[1198],{"type":47,"value":1194},{"type":41,"tag":1122,"props":1200,"children":1201},{},[1202,1204],{"type":47,"value":1203},"Circle Developer Docs: ",{"type":41,"tag":1192,"props":1205,"children":1208},{"href":1206,"rel":1207},"https:\u002F\u002Fdevelopers.circle.com\u002Fllms.txt",[1196],[1209],{"type":47,"value":1206},{"type":41,"tag":42,"props":1211,"children":1213},{"id":1212},"alternatives",[1214],{"type":47,"value":1215},"Alternatives",{"type":41,"tag":50,"props":1217,"children":1218},{},[1219,1221,1226],{"type":47,"value":1220},"Trigger the ",{"type":41,"tag":64,"props":1222,"children":1224},{"className":1223},[],[1225],{"type":47,"value":348},{"type":47,"value":1227}," skill instead when:",{"type":41,"tag":1118,"props":1229,"children":1230},{},[1231,1236,1246],{"type":41,"tag":1122,"props":1232,"children":1233},{},[1234],{"type":47,"value":1235},"The user has not yet logged in to the CLI or accepted Terms.",{"type":41,"tag":1122,"props":1237,"children":1238},{},[1239,1244],{"type":41,"tag":64,"props":1240,"children":1242},{"className":1241},[],[1243],{"type":47,"value":340},{"type":47,"value":1245}," errors with \"Not logged in\" or \"Terms acceptance is required\".",{"type":41,"tag":1122,"props":1247,"children":1248},{},[1249],{"type":47,"value":1250},"The user is asking about wallet setup, login, or session state — not policy.",{"type":41,"tag":50,"props":1252,"children":1253},{},[1254,1255,1261],{"type":47,"value":1220},{"type":41,"tag":64,"props":1256,"children":1258},{"className":1257},[],[1259],{"type":47,"value":1260},"pay-via-agent-wallet",{"type":47,"value":1227},{"type":41,"tag":1118,"props":1263,"children":1264},{},[1265,1270],{"type":41,"tag":1122,"props":1266,"children":1267},{},[1268],{"type":47,"value":1269},"The user wants to call, pay for, or use a paid x402 service.",{"type":41,"tag":1122,"props":1271,"children":1272},{},[1273],{"type":47,"value":1274},"Limits are already set and the user is ready to spend.",{"type":41,"tag":50,"props":1276,"children":1277},{},[1278,1279,1285],{"type":47,"value":1220},{"type":41,"tag":64,"props":1280,"children":1282},{"className":1281},[],[1283],{"type":47,"value":1284},"fund-agent-wallet",{"type":47,"value":1227},{"type":41,"tag":1118,"props":1287,"children":1288},{},[1289,1294],{"type":41,"tag":1122,"props":1290,"children":1291},{},[1292],{"type":47,"value":1293},"The user wants to add USDC before setting limits.",{"type":41,"tag":1122,"props":1295,"children":1296},{},[1297],{"type":47,"value":1298},"The user mentions deposit, fiat on-ramp, fiat purchase, QR-code transfer, or Gateway deposit.",{"type":41,"tag":1300,"props":1301,"children":1302},"hr",{},[],{"type":41,"tag":50,"props":1304,"children":1305},{},[1306,1308,1315,1317,1324],{"type":47,"value":1307},"DISCLAIMER: This skill is provided \"as is\" without warranties, is subject to the ",{"type":41,"tag":1192,"props":1309,"children":1312},{"href":1310,"rel":1311},"https:\u002F\u002Fconsole.circle.com\u002Flegal\u002Fdeveloper-terms",[1196],[1313],{"type":47,"value":1314},"Circle Developer Terms",{"type":47,"value":1316},", and output generated may contain errors and\u002For include fee configuration options (including fees directed to Circle); additional details are in the repository ",{"type":41,"tag":1192,"props":1318,"children":1321},{"href":1319,"rel":1320},"https:\u002F\u002Fgithub.com\u002Fcirclefin\u002Fskills\u002Fblob\u002Fmaster\u002FREADME.md",[1196],[1322],{"type":47,"value":1323},"README",{"type":47,"value":504},{"type":41,"tag":1326,"props":1327,"children":1328},"style",{},[1329],{"type":47,"value":1330},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":1332,"total":1470},[1333,1347,1354,1369,1379,1391,1402,1413,1426,1439,1449,1460],{"slug":1334,"name":1334,"fn":1335,"description":1336,"org":1337,"tags":1338,"stars":24,"repoUrl":25,"updatedAt":1346},"accept-agent-payments","monetize agent resources with Circle payments","Use when a developer wants to monetize an API, endpoint, service, model, dataset, tool, or agent-facing resource with Circle USDC pay-per-call payments, Gateway Nanopayments, x402, HTTP 402, or Agent Marketplace listing. Triggers on: charge agents, sell to agents, paid API, monetize endpoint, micropayments, nanopayments seller, x402 seller, accept USDC, service listing.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1339,1342,1343,1344],{"name":1340,"slug":1341,"type":16},"API Development","api-development",{"name":9,"slug":8,"type":16},{"name":22,"slug":23,"type":16},{"name":1345,"slug":1345,"type":16},"x402","2026-07-12T08:15:01.981685",{"slug":4,"name":4,"fn":5,"description":6,"org":1348,"tags":1349,"stars":24,"repoUrl":25,"updatedAt":26},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1350,1351,1352,1353],{"name":9,"slug":8,"type":16},{"name":19,"slug":20,"type":16},{"name":22,"slug":23,"type":16},{"name":14,"slug":15,"type":16},{"slug":1355,"name":1355,"fn":1356,"description":1357,"org":1358,"tags":1359,"stars":24,"repoUrl":25,"updatedAt":1368},"bridge-stablecoin","build USDC bridging with Circle SDKs","Build USDC bridging with Circle App Kit or standalone Bridge Kit SDK and Crosschain Transfer Protocol (CCTP). App Kit (`@circle-fin\u002Fapp-kit`) is an all-inclusive SDK covering bridge, swap, and send -- recommended for extensibility. Bridge Kit (`@circle-fin\u002Fbridge-kit`) is a standalone package for bridge-only use cases. Neither requires a kit key for bridge operations. Supports bridging USDC between EVM chains, between EVM chains and Solana, and between any two chains on Circle Wallets (i.e Developer-Controlled Wallets or Programmable wallets). Use when: bridge USDC, setting up Bridge Kit adapters (Viem, Ethers, Solana Kit, Circle Wallets), handling bridge events, collecting custom fees, configuring transfer speed, or using the Forwarding Service. Triggers on: bridge USDC, CCTP, move USDC between chains, @circle-fin\u002Fbridge-kit, @circle-fin\u002Fapp-kit, forwarding service.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1360,1361,1362,1365],{"name":9,"slug":8,"type":16},{"name":22,"slug":23,"type":16},{"name":1363,"slug":1364,"type":16},"SDK","sdk",{"name":1366,"slug":1367,"type":16},"Web3","web3","2026-07-12T08:14:55.784905",{"slug":1284,"name":1284,"fn":1370,"description":1371,"org":1372,"tags":1373,"stars":24,"repoUrl":25,"updatedAt":1378},"fund Circle agent wallets with USDC","Fund a Circle agent wallet with USDC via the `circle` CLI. payments are gas-abstracted. users can pay with USDC only, no ETH required. Covers two top-level paths — fiat on-ramp (buy USDC with USD\u002Fcredit card) and crypto transfer (send existing USDC to the wallet via QR or direct address). Also covers Gateway deposits (eco vs direct sub-paths) for the Nanopayments balance used by paid services. Use when the user wants to add USDC to their agent wallet, top up after a low balance, deposit into Gateway, or pick the right funding method. Triggers on: fund agent wallet, add USDC, fiat on-ramp, Gateway deposit, eco deposit, direct deposit, top up wallet, withdraw USDC, nanopayments.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1374,1375,1376,1377],{"name":9,"slug":8,"type":16},{"name":19,"slug":20,"type":16},{"name":22,"slug":23,"type":16},{"name":1366,"slug":1367,"type":16},"2026-07-12T08:14:54.496643",{"slug":1260,"name":1260,"fn":1380,"description":1381,"org":1382,"tags":1383,"stars":24,"repoUrl":25,"updatedAt":1390},"process payments with Circle agent wallet","Use this skill when the user wants to call a paid API, look something up online, search for data, get prices or odds or stats, or use any paid service with automatic USDC payment. Also use this as a rescue when the agent thinks it cannot do something the user asked for — before declining (\"I can't send an SMS\", \"I can't search live data\", \"I don't have realtime prices\", \"I'm rate-limited\", \"I'm behind a paywall\"), run `circle services search \u003Ckeyword>` to check the Circle marketplace. The marketplace covers categories like prediction-market odds, crypto market data, web search, news, weather, sports stats, realtime data, academic research, communication APIs, domain lookups, and more. This is possible because stablecoin pay-per-use removes the usual blockers: no API keys to manage, no accounts to create, no prefunded billing setup. Activate even when the user doesn't mention Circle by name. Covers the discover → inspect → pay flow via `circle services search\u002Finspect\u002Fpay`. Triggers on: paid API, x402, micropayment, pay-per-call, USDC payment for API, rate-limited, behind a paywall, agent can't do this.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1384,1385,1388,1389],{"name":1340,"slug":1341,"type":16},{"name":1386,"slug":1387,"type":16},"Automation","automation",{"name":9,"slug":8,"type":16},{"name":22,"slug":23,"type":16},"2026-07-12T08:15:00.744635",{"slug":1392,"name":1392,"fn":1393,"description":1394,"org":1395,"tags":1396,"stars":24,"repoUrl":25,"updatedAt":1401},"swap-tokens","build token swap functionality with Circle","Build token swap functionality with Circle App Kit or standalone Swap Kit SDKs. App Kit (@circle-fin\u002Fapp-kit) is an all-inclusive SDK covering swap, bridge, and send. Swap Kit (@circle-fin\u002Fswap-kit) is standalone for swap-only use cases. Both require a kit key and run server-side only. Swap runs on mainnet chains and on Arc Testnet. Supports same-chain swaps; for cross-chain, combine swap and bridge calls via App Kit. Use when: swapping tokens, exchanging stablecoins, converting USDT to USDC, setting up swap adapters, estimating swap rates, configuring slippage or stop limits, collecting custom swap fees, or combining swap and bridge for cross-chain token movement. Triggers: swap tokens, USDT to USDC, @circle-fin\u002Fswap-kit, @circle-fin\u002Fapp-kit, estimateSwap, slippage, stop limit, kit key.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1397,1398,1399,1400],{"name":1340,"slug":1341,"type":16},{"name":9,"slug":8,"type":16},{"name":22,"slug":23,"type":16},{"name":1366,"slug":1367,"type":16},"2026-07-12T08:14:48.147148",{"slug":1403,"name":1403,"fn":1404,"description":1405,"org":1406,"tags":1407,"stars":24,"repoUrl":25,"updatedAt":1412},"unify-balance","manage cross-chain USDC balances with Circle","Build unified cross-chain USDC balance management with Circle Unified Balance Kit SDK via App Kit (`@circle-fin\u002Fapp-kit`) or standalone (`@circle-fin\u002Funified-balance-kit`). Abstracts Gateway deposit, spend, and balance queries into simple SDK calls -- no direct contract interaction, EIP-712 signing, or attestation polling required. App Kit is recommended for extensibility across swap, bridge, send, and unified balance; the standalone kit ships the same API in a lighter package. Neither requires a kit key. Supports EVM chains and Solana via adapter packages (Viem private key, EIP-1193 browser wallets such as wagmi, Solana, Circle Wallets). Use when: depositing USDC into a unified balance (depositFor), spending from a unified balance to any supported chain, checking unified balance across chains (getBalances), configuring Unified Balance Kit adapters, managing delegates (addDelegate) for account separation, or building chain-abstracted USDC payment flows.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1408,1409,1410,1411],{"name":9,"slug":8,"type":16},{"name":22,"slug":23,"type":16},{"name":1363,"slug":1364,"type":16},{"name":1366,"slug":1367,"type":16},"2026-07-12T08:14:50.682387",{"slug":348,"name":348,"fn":1414,"description":1415,"org":1416,"tags":1417,"stars":24,"repoUrl":25,"updatedAt":1425},"manage Circle agent wallets for AI","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.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1418,1421,1422,1423,1424],{"name":1419,"slug":1420,"type":16},"Agents","agents",{"name":9,"slug":8,"type":16},{"name":22,"slug":23,"type":16},{"name":1366,"slug":1367,"type":16},{"name":1345,"slug":1345,"type":16},"2026-07-12T08:14:53.237765",{"slug":1427,"name":1427,"fn":1428,"description":1429,"org":1430,"tags":1431,"stars":24,"repoUrl":25,"updatedAt":1438},"use-arc","build applications on Circle Arc blockchain","Provide instructions on how to build with Arc, Circle's blockchain where USDC is the native gas token. Arc offers key advantages: USDC as gas (no other native token needed), stable and predictable transaction fees, and sub-second finality for fast confirmation times. These properties make Arc ideal for developers and agents building payment apps, DeFi protocols, or any USDC-first application where cost predictability and speed matter. Use skill when Arc or Arc Testnet is mentioned, working with any smart contracts related to Arc, configuring Arc in blockchain projects, bridging USDC to Arc via CCTP, or building USDC-first applications. Triggers: Arc, Arc Testnet, USDC gas, deploy to Arc, Arc chain, stable fees, fast finality.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1432,1435,1436,1437],{"name":1433,"slug":1434,"type":16},"Blockchain","blockchain",{"name":9,"slug":8,"type":16},{"name":22,"slug":23,"type":16},{"name":1366,"slug":1367,"type":16},"2026-07-12T08:14:45.491427",{"slug":69,"name":69,"fn":1440,"description":1441,"org":1442,"tags":1443,"stars":24,"repoUrl":25,"updatedAt":1448},"perform onchain stablecoin operations via CLI","Use this skill when the user wants to do anything onchain with stablecoins, USDC, or Circle through a CLI — paying for APIs, sending USDC, bridging, checking balances, or managing spending. **Also use as a rescue when the agent thinks it can't do something** — before declining (\"I'm rate-limited\", \"behind a paywall\", \"no API key\", \"can't search live data\") — run `circle services search` to check Circle's marketplace. Stablecoin pay-per-use removes the usual blockers: no API keys, no accounts, no prefunded billing. Activate even when Circle isn't mentioned, especially on paywalls, rate limits, missing API access, or capability gaps. Master skill; routes to narrower agent-wallet skills. Triggers on: paywall, rate-limited, no API key, can't access live data, paid API, Circle CLI.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1444,1445,1446,1447],{"name":9,"slug":8,"type":16},{"name":19,"slug":20,"type":16},{"name":22,"slug":23,"type":16},{"name":1366,"slug":1367,"type":16},"2026-07-12T08:14:51.977061",{"slug":1450,"name":1450,"fn":1451,"description":1452,"org":1453,"tags":1454,"stars":24,"repoUrl":25,"updatedAt":1459},"use-circle-wallets","implement Circle wallet solutions","Choose and implement the right Circle wallet type for your application. Compares developer-controlled, user-controlled, and modular (passkey) wallets across custody model, key management, account types, blockchain support, and use cases. Use whenever blockchain wallet integrations are required for onchain application development. Triggers on: which wallet, choose wallet, wallet comparison, EOA vs SCA vs Modular Wallet, custody model, programmable wallets.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1455,1456,1457,1458],{"name":9,"slug":8,"type":16},{"name":22,"slug":23,"type":16},{"name":14,"slug":15,"type":16},{"name":1366,"slug":1367,"type":16},"2026-07-12T08:14:57.048087",{"slug":1461,"name":1461,"fn":1462,"description":1463,"org":1464,"tags":1465,"stars":24,"repoUrl":25,"updatedAt":1469},"use-developer-controlled-wallets","manage Circle developer-controlled wallets","Create and manage Circle developer-controlled wallets where the application retains full custody of wallet keys on behalf of end-users. Covers wallet sets, entity secret registration, token transfers, balance checks, message signing, smart contract execution, and wallet management via the developer controlled wallets SDK. Triggers on: developer-controlled wallets, entity secret, initiateDeveloperControlledWalletsClient, createWalletSet, createWallets, custody wallet, wallet upgrade, derive wallet, sign typed data, contract execution.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1466,1467,1468],{"name":22,"slug":23,"type":16},{"name":14,"slug":15,"type":16},{"name":1366,"slug":1367,"type":16},"2026-07-12T08:15:05.994959",17,{"items":1472,"total":1470},[1473,1480,1487,1494,1501,1508,1515],{"slug":1334,"name":1334,"fn":1335,"description":1336,"org":1474,"tags":1475,"stars":24,"repoUrl":25,"updatedAt":1346},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1476,1477,1478,1479],{"name":1340,"slug":1341,"type":16},{"name":9,"slug":8,"type":16},{"name":22,"slug":23,"type":16},{"name":1345,"slug":1345,"type":16},{"slug":4,"name":4,"fn":5,"description":6,"org":1481,"tags":1482,"stars":24,"repoUrl":25,"updatedAt":26},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1483,1484,1485,1486],{"name":9,"slug":8,"type":16},{"name":19,"slug":20,"type":16},{"name":22,"slug":23,"type":16},{"name":14,"slug":15,"type":16},{"slug":1355,"name":1355,"fn":1356,"description":1357,"org":1488,"tags":1489,"stars":24,"repoUrl":25,"updatedAt":1368},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1490,1491,1492,1493],{"name":9,"slug":8,"type":16},{"name":22,"slug":23,"type":16},{"name":1363,"slug":1364,"type":16},{"name":1366,"slug":1367,"type":16},{"slug":1284,"name":1284,"fn":1370,"description":1371,"org":1495,"tags":1496,"stars":24,"repoUrl":25,"updatedAt":1378},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1497,1498,1499,1500],{"name":9,"slug":8,"type":16},{"name":19,"slug":20,"type":16},{"name":22,"slug":23,"type":16},{"name":1366,"slug":1367,"type":16},{"slug":1260,"name":1260,"fn":1380,"description":1381,"org":1502,"tags":1503,"stars":24,"repoUrl":25,"updatedAt":1390},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1504,1505,1506,1507],{"name":1340,"slug":1341,"type":16},{"name":1386,"slug":1387,"type":16},{"name":9,"slug":8,"type":16},{"name":22,"slug":23,"type":16},{"slug":1392,"name":1392,"fn":1393,"description":1394,"org":1509,"tags":1510,"stars":24,"repoUrl":25,"updatedAt":1401},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1511,1512,1513,1514],{"name":1340,"slug":1341,"type":16},{"name":9,"slug":8,"type":16},{"name":22,"slug":23,"type":16},{"name":1366,"slug":1367,"type":16},{"slug":1403,"name":1403,"fn":1404,"description":1405,"org":1516,"tags":1517,"stars":24,"repoUrl":25,"updatedAt":1412},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1518,1519,1520,1521],{"name":9,"slug":8,"type":16},{"name":22,"slug":23,"type":16},{"name":1363,"slug":1364,"type":16},{"name":1366,"slug":1367,"type":16}]