[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-circle-bridge-stablecoin":3,"mdc--uoncd1-key":35,"related-org-circle-bridge-stablecoin":2612,"related-repo-circle-bridge-stablecoin":2754},{"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},"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},"circle","Circle","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fcircle.png","circlefin",[13,15,18,21],{"name":9,"slug":8,"type":14},"tag",{"name":16,"slug":17,"type":14},"Web3","web3",{"name":19,"slug":20,"type":14},"Payments","payments",{"name":22,"slug":23,"type":14},"SDK","sdk",130,"https:\u002F\u002Fgithub.com\u002Fcirclefin\u002Fskills","2026-07-12T08:14:55.784905",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\u002Fbridge-stablecoin","---\nname: bridge-stablecoin\ndescription: \"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.\"\n---\n\n## Overview\n\nCrosschain Transfer Protocol (CCTP) is Circle's native protocol for burning USDC on one chain and minting it on another. App Kit (`@circle-fin\u002Fapp-kit`) is Circle's all-inclusive SDK covering bridge, swap, and send in one package; standalone Bridge Kit (`@circle-fin\u002Fbridge-kit`) ships the same bridge API in a lighter package. Both orchestrate the full CCTP lifecycle -- approve, burn, attestation fetch, mint -- in a single `kit.bridge()` call across EVM and Solana. **Recommend App Kit** unless the user wants bridge-only functionality. **Bridge operations need no kit key** (only swap\u002Fsend in App Kit do).\n\n## Prerequisites \u002F Setup\n\n### Installation\n\nApp Kit with Viem adapter (recommended):\n\n```bash\nnpm install @circle-fin\u002Fapp-kit @circle-fin\u002Fadapter-viem-v2\n```\n\nBridge Kit standalone with Viem adapter:\n\n```bash\nnpm install @circle-fin\u002Fbridge-kit @circle-fin\u002Fadapter-viem-v2\n```\n\nFor Solana support, also install:\n\n```bash\nnpm install @circle-fin\u002Fadapter-solana-kit\n```\n\nFor Circle Wallets (developer-controlled) support:\n\n```bash\nnpm install @circle-fin\u002Fadapter-circle-wallets\n```\n\n### Environment Variables\n\n```\nPRIVATE_KEY=              # EVM wallet private key (hex, 0x-prefixed)\nEVM_PRIVATE_KEY=          # EVM private key (when also using Solana)\nSOLANA_PRIVATE_KEY=       # Solana wallet private key (base58)\nCIRCLE_API_KEY=           # Circle API key (for Circle Wallets adapter)\nCIRCLE_ENTITY_SECRET=     # Entity secret (for Circle Wallets adapter)\nEVM_WALLET_ADDRESS=       # Developer-controlled EVM wallet address\nSOLANA_WALLET_ADDRESS=    # Developer-controlled Solana wallet address\n```\n\nNo `KIT_KEY` is needed for bridge operations. A kit key is only required if you also use swap or send features via App Kit.\n\n### SDK Initialization\n\n**App Kit** (recommended):\n\n```ts\nimport { AppKit } from \"@circle-fin\u002Fapp-kit\";\n\nconst kit = new AppKit();\n```\n\n**Bridge Kit** (standalone):\n\n```ts\nimport { BridgeKit } from \"@circle-fin\u002Fbridge-kit\";\n\nconst kit = new BridgeKit();\n```\n\n## Decision Guide\n\nALWAYS walk through these questions with the user before writing any code. Do not skip steps or assume answers.\n\n### SDK Choice\n\n**Question 1 -- Will you need swap or send functionality in the future?**\n- Yes, or unsure -> **App Kit** (recommended) -- single SDK covers bridge + swap + send, easier to extend later\n- No, bridge-only and will never need swap or send -> **Bridge Kit** -- standalone, lighter package for bridge-only use cases\n\n### Wallet \u002F Adapter Choice\n\n**Question 2 -- How do you manage your wallet\u002Fkeys?**\n- Managing your own private key (self-custodied, stored in env var or secrets manager) -> Question 3\n- Using Circle developer-controlled wallets (Circle manages key storage and signing) -> Use Circle Wallets adapter. READ `references\u002Fadapter-circle-wallets.md`\n- Using browser wallets (wagmi, ConnectKit, RainbowKit) -> Use wagmi adapter. READ `references\u002Fadapter-wagmi.md`\n\n**Question 3 -- Which chains are you bridging between?**\n- EVM-to-EVM or EVM-to-Solana -> Use Viem and\u002For Solana Kit adapters. READ `references\u002Fadapter-private-key.md`\n\n## Core Concepts\n\n- **CCTP steps**: Every bridge transfer executes four sequential steps -- `approve` (ERC-20 allowance), `burn` (destroy USDC on source chain), `fetchAttestation` (wait for Circle to sign the burn proof), and `mint` (create USDC on destination chain).\n- **Adapters**: Both App Kit and Bridge Kit use adapter objects to abstract wallet\u002Fsigner differences. Each ecosystem has its own adapter factory (`createViemAdapterFromPrivateKey`, `createSolanaKitAdapterFromPrivateKey`, `createCircleWalletsAdapter`). The same adapter instance can serve as both source and destination when bridging within the same ecosystem.\n- **Forwarding Service**: When `useForwarder: true` is set on the destination, Circle's infrastructure handles attestation fetching and mint submission. This removes the need for a destination wallet or polling loop. There is a per-transfer fee that varies by route (see below).\n- **Transfer speed**: CCTP fast mode (default) completes in ~8-20 seconds. Standard mode takes ~15-19 minutes.\n- **Chain identifiers**: Both SDKs use string chain names (e.g., `\"Arc_Testnet\"`, `\"Base_Sepolia\"`, `\"Solana_Devnet\"`), not numeric chain IDs, in the `kit.bridge()` call.\n\n## Implementation Patterns\n\nREAD the corresponding reference based on the user's request:\n\n- `references\u002Fadapter-private-key.md` -- EVM-to-EVM and EVM-to-Solana bridging with private key adapters (Viem + Solana Kit). Includes App Kit and Bridge Kit examples.\n- `references\u002Fadapter-circle-wallets.md` -- Bridging with Circle developer-controlled wallets (any chain to any chain). Includes App Kit and Bridge Kit examples.\n- `references\u002Fadapter-wagmi.md` -- Browser wallet integration using wagmi (ConnectKit, RainbowKit, etc.). Includes App Kit and Bridge Kit examples.\n\n### Sample Response from kit.bridge()\n\n```json\n{\n  \"amount\": \"25.0\",\n  \"token\": \"USDC\",\n  \"state\": \"success\",\n  \"provider\": \"CCTPV2BridgingProvider\",\n  \"config\": {\n    \"transferSpeed\": \"FAST\"\n  },\n  \"source\": {\n    \"address\": \"0x742d35Cc6634C0532925a3b844Bc454e4438f44e\",\n    \"chain\": {\n      \"type\": \"evm\",\n      \"chain\": \"Arc_Testnet\",\n      \"chainId\": 5042002,\n      \"name\": \"Arc Testnet\"\n    }\n  },\n  \"destination\": {\n    \"address\": \"0x742d35Cc6634C0532925a3b844Bc454e4438f44e\",\n    \"chain\": {\n      \"type\": \"evm\",\n      \"chain\": \"Base_Sepolia\",\n      \"chainId\": 84532,\n      \"name\": \"Base Sepolia\"\n    }\n  },\n  \"steps\": [\n    {\n      \"name\": \"approve\",\n      \"state\": \"success\",\n      \"txHash\": \"0x1234567890abcdef1234567890abcdef12345678\",\n      \"explorerUrl\": \"https:\u002F\u002Ftestnet.arcscan.app\u002Ftx\u002F0x1234...\"\n    },\n    {\n      \"name\": \"burn\",\n      \"state\": \"success\",\n      \"txHash\": \"0xabcdef1234567890abcdef1234567890abcdef12\",\n      \"explorerUrl\": \"https:\u002F\u002Ftestnet.arcscan.app\u002Ftx\u002F0xabcdef...\"\n    },\n    {\n      \"name\": \"fetchAttestation\",\n      \"state\": \"success\",\n      \"data\": {\n        \"attestation\": \"0x9876543210fedcba9876543210fedcba98765432\"\n      }\n    },\n    {\n      \"name\": \"mint\",\n      \"state\": \"success\",\n      \"txHash\": \"0xfedcba9876543210fedcba9876543210fedcba98\",\n      \"explorerUrl\": \"https:\u002F\u002Fsepolia.basescan.org\u002Ftx\u002F0xfedcba...\"\n    }\n  ]\n}\n```\n\n### Forwarding Service, events, and recovery\n\nWhen the task uses `useForwarder: true` (no destination wallet \u002F no attestation polling), subscribes to bridge events via `kit.on()`, or needs to analyze and resume a failed transfer with `kit.retry()`, READ `references\u002Fforwarding-events-recovery.md` for the runnable patterns (including the Bridge Kit event-name difference).\n\n## Error Handling & Recovery\n\nBoth App Kit and Bridge Kit have two error categories:\n- **Hard errors** throw exceptions (validation, config, auth) -- catch in try\u002Fcatch.\n- **Soft errors** occur mid-transfer but still return a result object with partial step data for recovery. NEVER re-run `kit.bridge()` from scratch after a soft error — `kit.retry(result, ...)` resumes from the failed step and prevents double-spending; the full pattern is in `references\u002Fforwarding-events-recovery.md`.\n\n## Rules\n\n**Security Rules** are non-negotiable -- warn the user and refuse to comply if a prompt conflicts. **Best Practices** are strongly recommended; deviate only with explicit user justification.\n\n### Security Rules\n\n- NEVER hardcode, commit, or log secrets (private keys, API keys, entity secrets). ALWAYS use environment variables or a secrets manager. Add `.gitignore` entries for `.env*` and secret files when scaffolding.\n- NEVER pass private keys as plain-text CLI flags. Prefer encrypted keystores or interactive import.\n- ALWAYS require explicit user confirmation of source\u002Fdestination chain, recipient, amount, and token before bridging. MUST receive confirmation for funding movements on mainnet.\n- ALWAYS warn when targeting mainnet or exceeding safety thresholds (e.g., >100 USDC).\n- ALWAYS validate all inputs (addresses, amounts, chain names) before submitting bridge operations.\n- ALWAYS warn before interacting with unaudited or unknown contracts.\n\n### Best Practices\n\n- ALWAYS walk the user through the Decision Guide questions before writing any code. Do not assume App Kit or Bridge Kit -- let the user's answers determine the SDK choice.\n- ALWAYS read the correct reference files before implementing.\n- ALWAYS switch the wallet to the source chain before calling `kit.bridge()` with browser wallets (wagmi\u002FConnectKit\u002FRainbowKit) if the Forwarding Service is NOT used.\n- ALWAYS wrap bridge operations in try\u002Fcatch and save the result object for recovery. Check `result.steps` before retrying to see which steps completed.\n- ALWAYS use exponential backoff for retry logic in production.\n- ALWAYS use string chain names (e.g., `\"Arc_Testnet\"`, `\"Base_Sepolia\"`), not numeric chain IDs.\n- ALWAYS default to testnet. Require explicit user confirmation before targeting mainnet.\n- ALWAYS use exported SDK types when parsing SDK inputs and outputs instead of creating custom interfaces. This minimizes type errors.\n\n## Reference Links\n\n- [Circle App Kit SDK](https:\u002F\u002Fdocs.arc.network\u002Fapp-kit)\n- [Circle Bridge Kit SDK](https:\u002F\u002Fdocs.arc.network\u002Fapp-kit\u002Fbridge)\n- [CCTP Documentation](https:\u002F\u002Fdevelopers.circle.com\u002Fcctp)\n- [Circle Developer Docs](https:\u002F\u002Fdevelopers.circle.com\u002Fllms.txt) -- **Always read this first** when looking for relevant documentation from the source website.\n\n## Alternatives\n\nTrigger the `swap-tokens` skill instead when:\n- You need to swap tokens (e.g., USDT to USDC) on the same chain.\n- You need to move non-USDC tokens across chains. The swap-tokens skill shows how to combine separate swap and bridge calls (swap tokenA to USDC, bridge USDC, swap USDC to tokenB).\n\nTrigger the `use-gateway` skill instead when:\n- You want a unified crosschain balance rather than point-to-point transfers.\n- Capital efficiency matters -- consolidate USDC holdings instead of maintaining separate balances per chain.\n- You are building chain abstraction, payment routing, or treasury management where low latency and a single balance view are critical.\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,95,101,108,113,152,157,184,189,212,217,240,246,256,269,275,285,393,403,488,494,499,505,513,540,546,554,584,592,606,612,757,763,768,801,807,2208,2214,2250,2256,2261,2306,2312,2329,2334,2383,2388,2459,2465,2519,2525,2538,2551,2562,2580,2584,2606],{"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,62,64,70,72,78,80,86,88,93],{"type":47,"value":54},"Crosschain Transfer Protocol (CCTP) is Circle's native protocol for burning USDC on one chain and minting it on another. App Kit (",{"type":41,"tag":56,"props":57,"children":59},"code",{"className":58},[],[60],{"type":47,"value":61},"@circle-fin\u002Fapp-kit",{"type":47,"value":63},") is Circle's all-inclusive SDK covering bridge, swap, and send in one package; standalone Bridge Kit (",{"type":41,"tag":56,"props":65,"children":67},{"className":66},[],[68],{"type":47,"value":69},"@circle-fin\u002Fbridge-kit",{"type":47,"value":71},") ships the same bridge API in a lighter package. Both orchestrate the full CCTP lifecycle -- approve, burn, attestation fetch, mint -- in a single ",{"type":41,"tag":56,"props":73,"children":75},{"className":74},[],[76],{"type":47,"value":77},"kit.bridge()",{"type":47,"value":79}," call across EVM and Solana. ",{"type":41,"tag":81,"props":82,"children":83},"strong",{},[84],{"type":47,"value":85},"Recommend App Kit",{"type":47,"value":87}," unless the user wants bridge-only functionality. ",{"type":41,"tag":81,"props":89,"children":90},{},[91],{"type":47,"value":92},"Bridge operations need no kit key",{"type":47,"value":94}," (only swap\u002Fsend in App Kit do).",{"type":41,"tag":42,"props":96,"children":98},{"id":97},"prerequisites-setup",[99],{"type":47,"value":100},"Prerequisites \u002F Setup",{"type":41,"tag":102,"props":103,"children":105},"h3",{"id":104},"installation",[106],{"type":47,"value":107},"Installation",{"type":41,"tag":50,"props":109,"children":110},{},[111],{"type":47,"value":112},"App Kit with Viem adapter (recommended):",{"type":41,"tag":114,"props":115,"children":120},"pre",{"className":116,"code":117,"language":118,"meta":119,"style":119},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","npm install @circle-fin\u002Fapp-kit @circle-fin\u002Fadapter-viem-v2\n","bash","",[121],{"type":41,"tag":56,"props":122,"children":123},{"__ignoreMap":119},[124],{"type":41,"tag":125,"props":126,"children":129},"span",{"class":127,"line":128},"line",1,[130,136,142,147],{"type":41,"tag":125,"props":131,"children":133},{"style":132},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[134],{"type":47,"value":135},"npm",{"type":41,"tag":125,"props":137,"children":139},{"style":138},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[140],{"type":47,"value":141}," install",{"type":41,"tag":125,"props":143,"children":144},{"style":138},[145],{"type":47,"value":146}," @circle-fin\u002Fapp-kit",{"type":41,"tag":125,"props":148,"children":149},{"style":138},[150],{"type":47,"value":151}," @circle-fin\u002Fadapter-viem-v2\n",{"type":41,"tag":50,"props":153,"children":154},{},[155],{"type":47,"value":156},"Bridge Kit standalone with Viem adapter:",{"type":41,"tag":114,"props":158,"children":160},{"className":116,"code":159,"language":118,"meta":119,"style":119},"npm install @circle-fin\u002Fbridge-kit @circle-fin\u002Fadapter-viem-v2\n",[161],{"type":41,"tag":56,"props":162,"children":163},{"__ignoreMap":119},[164],{"type":41,"tag":125,"props":165,"children":166},{"class":127,"line":128},[167,171,175,180],{"type":41,"tag":125,"props":168,"children":169},{"style":132},[170],{"type":47,"value":135},{"type":41,"tag":125,"props":172,"children":173},{"style":138},[174],{"type":47,"value":141},{"type":41,"tag":125,"props":176,"children":177},{"style":138},[178],{"type":47,"value":179}," @circle-fin\u002Fbridge-kit",{"type":41,"tag":125,"props":181,"children":182},{"style":138},[183],{"type":47,"value":151},{"type":41,"tag":50,"props":185,"children":186},{},[187],{"type":47,"value":188},"For Solana support, also install:",{"type":41,"tag":114,"props":190,"children":192},{"className":116,"code":191,"language":118,"meta":119,"style":119},"npm install @circle-fin\u002Fadapter-solana-kit\n",[193],{"type":41,"tag":56,"props":194,"children":195},{"__ignoreMap":119},[196],{"type":41,"tag":125,"props":197,"children":198},{"class":127,"line":128},[199,203,207],{"type":41,"tag":125,"props":200,"children":201},{"style":132},[202],{"type":47,"value":135},{"type":41,"tag":125,"props":204,"children":205},{"style":138},[206],{"type":47,"value":141},{"type":41,"tag":125,"props":208,"children":209},{"style":138},[210],{"type":47,"value":211}," @circle-fin\u002Fadapter-solana-kit\n",{"type":41,"tag":50,"props":213,"children":214},{},[215],{"type":47,"value":216},"For Circle Wallets (developer-controlled) support:",{"type":41,"tag":114,"props":218,"children":220},{"className":116,"code":219,"language":118,"meta":119,"style":119},"npm install @circle-fin\u002Fadapter-circle-wallets\n",[221],{"type":41,"tag":56,"props":222,"children":223},{"__ignoreMap":119},[224],{"type":41,"tag":125,"props":225,"children":226},{"class":127,"line":128},[227,231,235],{"type":41,"tag":125,"props":228,"children":229},{"style":132},[230],{"type":47,"value":135},{"type":41,"tag":125,"props":232,"children":233},{"style":138},[234],{"type":47,"value":141},{"type":41,"tag":125,"props":236,"children":237},{"style":138},[238],{"type":47,"value":239}," @circle-fin\u002Fadapter-circle-wallets\n",{"type":41,"tag":102,"props":241,"children":243},{"id":242},"environment-variables",[244],{"type":47,"value":245},"Environment Variables",{"type":41,"tag":114,"props":247,"children":251},{"className":248,"code":250,"language":47},[249],"language-text","PRIVATE_KEY=              # EVM wallet private key (hex, 0x-prefixed)\nEVM_PRIVATE_KEY=          # EVM private key (when also using Solana)\nSOLANA_PRIVATE_KEY=       # Solana wallet private key (base58)\nCIRCLE_API_KEY=           # Circle API key (for Circle Wallets adapter)\nCIRCLE_ENTITY_SECRET=     # Entity secret (for Circle Wallets adapter)\nEVM_WALLET_ADDRESS=       # Developer-controlled EVM wallet address\nSOLANA_WALLET_ADDRESS=    # Developer-controlled Solana wallet address\n",[252],{"type":41,"tag":56,"props":253,"children":254},{"__ignoreMap":119},[255],{"type":47,"value":250},{"type":41,"tag":50,"props":257,"children":258},{},[259,261,267],{"type":47,"value":260},"No ",{"type":41,"tag":56,"props":262,"children":264},{"className":263},[],[265],{"type":47,"value":266},"KIT_KEY",{"type":47,"value":268}," is needed for bridge operations. A kit key is only required if you also use swap or send features via App Kit.",{"type":41,"tag":102,"props":270,"children":272},{"id":271},"sdk-initialization",[273],{"type":47,"value":274},"SDK Initialization",{"type":41,"tag":50,"props":276,"children":277},{},[278,283],{"type":41,"tag":81,"props":279,"children":280},{},[281],{"type":47,"value":282},"App Kit",{"type":47,"value":284}," (recommended):",{"type":41,"tag":114,"props":286,"children":290},{"className":287,"code":288,"language":289,"meta":119,"style":119},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { AppKit } from \"@circle-fin\u002Fapp-kit\";\n\nconst kit = new AppKit();\n","ts",[291],{"type":41,"tag":56,"props":292,"children":293},{"__ignoreMap":119},[294,344,354],{"type":41,"tag":125,"props":295,"children":296},{"class":127,"line":128},[297,303,309,315,320,325,330,334,339],{"type":41,"tag":125,"props":298,"children":300},{"style":299},"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[301],{"type":47,"value":302},"import",{"type":41,"tag":125,"props":304,"children":306},{"style":305},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[307],{"type":47,"value":308}," {",{"type":41,"tag":125,"props":310,"children":312},{"style":311},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[313],{"type":47,"value":314}," AppKit",{"type":41,"tag":125,"props":316,"children":317},{"style":305},[318],{"type":47,"value":319}," }",{"type":41,"tag":125,"props":321,"children":322},{"style":299},[323],{"type":47,"value":324}," from",{"type":41,"tag":125,"props":326,"children":327},{"style":305},[328],{"type":47,"value":329}," \"",{"type":41,"tag":125,"props":331,"children":332},{"style":138},[333],{"type":47,"value":61},{"type":41,"tag":125,"props":335,"children":336},{"style":305},[337],{"type":47,"value":338},"\"",{"type":41,"tag":125,"props":340,"children":341},{"style":305},[342],{"type":47,"value":343},";\n",{"type":41,"tag":125,"props":345,"children":347},{"class":127,"line":346},2,[348],{"type":41,"tag":125,"props":349,"children":351},{"emptyLinePlaceholder":350},true,[352],{"type":47,"value":353},"\n",{"type":41,"tag":125,"props":355,"children":357},{"class":127,"line":356},3,[358,364,369,374,379,384,389],{"type":41,"tag":125,"props":359,"children":361},{"style":360},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[362],{"type":47,"value":363},"const",{"type":41,"tag":125,"props":365,"children":366},{"style":311},[367],{"type":47,"value":368}," kit ",{"type":41,"tag":125,"props":370,"children":371},{"style":305},[372],{"type":47,"value":373},"=",{"type":41,"tag":125,"props":375,"children":376},{"style":305},[377],{"type":47,"value":378}," new",{"type":41,"tag":125,"props":380,"children":382},{"style":381},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[383],{"type":47,"value":314},{"type":41,"tag":125,"props":385,"children":386},{"style":311},[387],{"type":47,"value":388},"()",{"type":41,"tag":125,"props":390,"children":391},{"style":305},[392],{"type":47,"value":343},{"type":41,"tag":50,"props":394,"children":395},{},[396,401],{"type":41,"tag":81,"props":397,"children":398},{},[399],{"type":47,"value":400},"Bridge Kit",{"type":47,"value":402}," (standalone):",{"type":41,"tag":114,"props":404,"children":406},{"className":287,"code":405,"language":289,"meta":119,"style":119},"import { BridgeKit } from \"@circle-fin\u002Fbridge-kit\";\n\nconst kit = new BridgeKit();\n",[407],{"type":41,"tag":56,"props":408,"children":409},{"__ignoreMap":119},[410,450,457],{"type":41,"tag":125,"props":411,"children":412},{"class":127,"line":128},[413,417,421,426,430,434,438,442,446],{"type":41,"tag":125,"props":414,"children":415},{"style":299},[416],{"type":47,"value":302},{"type":41,"tag":125,"props":418,"children":419},{"style":305},[420],{"type":47,"value":308},{"type":41,"tag":125,"props":422,"children":423},{"style":311},[424],{"type":47,"value":425}," BridgeKit",{"type":41,"tag":125,"props":427,"children":428},{"style":305},[429],{"type":47,"value":319},{"type":41,"tag":125,"props":431,"children":432},{"style":299},[433],{"type":47,"value":324},{"type":41,"tag":125,"props":435,"children":436},{"style":305},[437],{"type":47,"value":329},{"type":41,"tag":125,"props":439,"children":440},{"style":138},[441],{"type":47,"value":69},{"type":41,"tag":125,"props":443,"children":444},{"style":305},[445],{"type":47,"value":338},{"type":41,"tag":125,"props":447,"children":448},{"style":305},[449],{"type":47,"value":343},{"type":41,"tag":125,"props":451,"children":452},{"class":127,"line":346},[453],{"type":41,"tag":125,"props":454,"children":455},{"emptyLinePlaceholder":350},[456],{"type":47,"value":353},{"type":41,"tag":125,"props":458,"children":459},{"class":127,"line":356},[460,464,468,472,476,480,484],{"type":41,"tag":125,"props":461,"children":462},{"style":360},[463],{"type":47,"value":363},{"type":41,"tag":125,"props":465,"children":466},{"style":311},[467],{"type":47,"value":368},{"type":41,"tag":125,"props":469,"children":470},{"style":305},[471],{"type":47,"value":373},{"type":41,"tag":125,"props":473,"children":474},{"style":305},[475],{"type":47,"value":378},{"type":41,"tag":125,"props":477,"children":478},{"style":381},[479],{"type":47,"value":425},{"type":41,"tag":125,"props":481,"children":482},{"style":311},[483],{"type":47,"value":388},{"type":41,"tag":125,"props":485,"children":486},{"style":305},[487],{"type":47,"value":343},{"type":41,"tag":42,"props":489,"children":491},{"id":490},"decision-guide",[492],{"type":47,"value":493},"Decision Guide",{"type":41,"tag":50,"props":495,"children":496},{},[497],{"type":47,"value":498},"ALWAYS walk through these questions with the user before writing any code. Do not skip steps or assume answers.",{"type":41,"tag":102,"props":500,"children":502},{"id":501},"sdk-choice",[503],{"type":47,"value":504},"SDK Choice",{"type":41,"tag":50,"props":506,"children":507},{},[508],{"type":41,"tag":81,"props":509,"children":510},{},[511],{"type":47,"value":512},"Question 1 -- Will you need swap or send functionality in the future?",{"type":41,"tag":514,"props":515,"children":516},"ul",{},[517,529],{"type":41,"tag":518,"props":519,"children":520},"li",{},[521,523,527],{"type":47,"value":522},"Yes, or unsure -> ",{"type":41,"tag":81,"props":524,"children":525},{},[526],{"type":47,"value":282},{"type":47,"value":528}," (recommended) -- single SDK covers bridge + swap + send, easier to extend later",{"type":41,"tag":518,"props":530,"children":531},{},[532,534,538],{"type":47,"value":533},"No, bridge-only and will never need swap or send -> ",{"type":41,"tag":81,"props":535,"children":536},{},[537],{"type":47,"value":400},{"type":47,"value":539}," -- standalone, lighter package for bridge-only use cases",{"type":41,"tag":102,"props":541,"children":543},{"id":542},"wallet-adapter-choice",[544],{"type":47,"value":545},"Wallet \u002F Adapter Choice",{"type":41,"tag":50,"props":547,"children":548},{},[549],{"type":41,"tag":81,"props":550,"children":551},{},[552],{"type":47,"value":553},"Question 2 -- How do you manage your wallet\u002Fkeys?",{"type":41,"tag":514,"props":555,"children":556},{},[557,562,573],{"type":41,"tag":518,"props":558,"children":559},{},[560],{"type":47,"value":561},"Managing your own private key (self-custodied, stored in env var or secrets manager) -> Question 3",{"type":41,"tag":518,"props":563,"children":564},{},[565,567],{"type":47,"value":566},"Using Circle developer-controlled wallets (Circle manages key storage and signing) -> Use Circle Wallets adapter. READ ",{"type":41,"tag":56,"props":568,"children":570},{"className":569},[],[571],{"type":47,"value":572},"references\u002Fadapter-circle-wallets.md",{"type":41,"tag":518,"props":574,"children":575},{},[576,578],{"type":47,"value":577},"Using browser wallets (wagmi, ConnectKit, RainbowKit) -> Use wagmi adapter. READ ",{"type":41,"tag":56,"props":579,"children":581},{"className":580},[],[582],{"type":47,"value":583},"references\u002Fadapter-wagmi.md",{"type":41,"tag":50,"props":585,"children":586},{},[587],{"type":41,"tag":81,"props":588,"children":589},{},[590],{"type":47,"value":591},"Question 3 -- Which chains are you bridging between?",{"type":41,"tag":514,"props":593,"children":594},{},[595],{"type":41,"tag":518,"props":596,"children":597},{},[598,600],{"type":47,"value":599},"EVM-to-EVM or EVM-to-Solana -> Use Viem and\u002For Solana Kit adapters. READ ",{"type":41,"tag":56,"props":601,"children":603},{"className":602},[],[604],{"type":47,"value":605},"references\u002Fadapter-private-key.md",{"type":41,"tag":42,"props":607,"children":609},{"id":608},"core-concepts",[610],{"type":47,"value":611},"Core Concepts",{"type":41,"tag":514,"props":613,"children":614},{},[615,657,690,708,718],{"type":41,"tag":518,"props":616,"children":617},{},[618,623,625,631,633,639,641,647,649,655],{"type":41,"tag":81,"props":619,"children":620},{},[621],{"type":47,"value":622},"CCTP steps",{"type":47,"value":624},": Every bridge transfer executes four sequential steps -- ",{"type":41,"tag":56,"props":626,"children":628},{"className":627},[],[629],{"type":47,"value":630},"approve",{"type":47,"value":632}," (ERC-20 allowance), ",{"type":41,"tag":56,"props":634,"children":636},{"className":635},[],[637],{"type":47,"value":638},"burn",{"type":47,"value":640}," (destroy USDC on source chain), ",{"type":41,"tag":56,"props":642,"children":644},{"className":643},[],[645],{"type":47,"value":646},"fetchAttestation",{"type":47,"value":648}," (wait for Circle to sign the burn proof), and ",{"type":41,"tag":56,"props":650,"children":652},{"className":651},[],[653],{"type":47,"value":654},"mint",{"type":47,"value":656}," (create USDC on destination chain).",{"type":41,"tag":518,"props":658,"children":659},{},[660,665,667,673,675,681,682,688],{"type":41,"tag":81,"props":661,"children":662},{},[663],{"type":47,"value":664},"Adapters",{"type":47,"value":666},": Both App Kit and Bridge Kit use adapter objects to abstract wallet\u002Fsigner differences. Each ecosystem has its own adapter factory (",{"type":41,"tag":56,"props":668,"children":670},{"className":669},[],[671],{"type":47,"value":672},"createViemAdapterFromPrivateKey",{"type":47,"value":674},", ",{"type":41,"tag":56,"props":676,"children":678},{"className":677},[],[679],{"type":47,"value":680},"createSolanaKitAdapterFromPrivateKey",{"type":47,"value":674},{"type":41,"tag":56,"props":683,"children":685},{"className":684},[],[686],{"type":47,"value":687},"createCircleWalletsAdapter",{"type":47,"value":689},"). The same adapter instance can serve as both source and destination when bridging within the same ecosystem.",{"type":41,"tag":518,"props":691,"children":692},{},[693,698,700,706],{"type":41,"tag":81,"props":694,"children":695},{},[696],{"type":47,"value":697},"Forwarding Service",{"type":47,"value":699},": When ",{"type":41,"tag":56,"props":701,"children":703},{"className":702},[],[704],{"type":47,"value":705},"useForwarder: true",{"type":47,"value":707}," is set on the destination, Circle's infrastructure handles attestation fetching and mint submission. This removes the need for a destination wallet or polling loop. There is a per-transfer fee that varies by route (see below).",{"type":41,"tag":518,"props":709,"children":710},{},[711,716],{"type":41,"tag":81,"props":712,"children":713},{},[714],{"type":47,"value":715},"Transfer speed",{"type":47,"value":717},": CCTP fast mode (default) completes in ~8-20 seconds. Standard mode takes ~15-19 minutes.",{"type":41,"tag":518,"props":719,"children":720},{},[721,726,728,734,735,741,742,748,750,755],{"type":41,"tag":81,"props":722,"children":723},{},[724],{"type":47,"value":725},"Chain identifiers",{"type":47,"value":727},": Both SDKs use string chain names (e.g., ",{"type":41,"tag":56,"props":729,"children":731},{"className":730},[],[732],{"type":47,"value":733},"\"Arc_Testnet\"",{"type":47,"value":674},{"type":41,"tag":56,"props":736,"children":738},{"className":737},[],[739],{"type":47,"value":740},"\"Base_Sepolia\"",{"type":47,"value":674},{"type":41,"tag":56,"props":743,"children":745},{"className":744},[],[746],{"type":47,"value":747},"\"Solana_Devnet\"",{"type":47,"value":749},"), not numeric chain IDs, in the ",{"type":41,"tag":56,"props":751,"children":753},{"className":752},[],[754],{"type":47,"value":77},{"type":47,"value":756}," call.",{"type":41,"tag":42,"props":758,"children":760},{"id":759},"implementation-patterns",[761],{"type":47,"value":762},"Implementation Patterns",{"type":41,"tag":50,"props":764,"children":765},{},[766],{"type":47,"value":767},"READ the corresponding reference based on the user's request:",{"type":41,"tag":514,"props":769,"children":770},{},[771,781,791],{"type":41,"tag":518,"props":772,"children":773},{},[774,779],{"type":41,"tag":56,"props":775,"children":777},{"className":776},[],[778],{"type":47,"value":605},{"type":47,"value":780}," -- EVM-to-EVM and EVM-to-Solana bridging with private key adapters (Viem + Solana Kit). Includes App Kit and Bridge Kit examples.",{"type":41,"tag":518,"props":782,"children":783},{},[784,789],{"type":41,"tag":56,"props":785,"children":787},{"className":786},[],[788],{"type":47,"value":572},{"type":47,"value":790}," -- Bridging with Circle developer-controlled wallets (any chain to any chain). Includes App Kit and Bridge Kit examples.",{"type":41,"tag":518,"props":792,"children":793},{},[794,799],{"type":41,"tag":56,"props":795,"children":797},{"className":796},[],[798],{"type":47,"value":583},{"type":47,"value":800}," -- Browser wallet integration using wagmi (ConnectKit, RainbowKit, etc.). Includes App Kit and Bridge Kit examples.",{"type":41,"tag":102,"props":802,"children":804},{"id":803},"sample-response-from-kitbridge",[805],{"type":47,"value":806},"Sample Response from kit.bridge()",{"type":41,"tag":114,"props":808,"children":812},{"className":809,"code":810,"language":811,"meta":119,"style":119},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"amount\": \"25.0\",\n  \"token\": \"USDC\",\n  \"state\": \"success\",\n  \"provider\": \"CCTPV2BridgingProvider\",\n  \"config\": {\n    \"transferSpeed\": \"FAST\"\n  },\n  \"source\": {\n    \"address\": \"0x742d35Cc6634C0532925a3b844Bc454e4438f44e\",\n    \"chain\": {\n      \"type\": \"evm\",\n      \"chain\": \"Arc_Testnet\",\n      \"chainId\": 5042002,\n      \"name\": \"Arc Testnet\"\n    }\n  },\n  \"destination\": {\n    \"address\": \"0x742d35Cc6634C0532925a3b844Bc454e4438f44e\",\n    \"chain\": {\n      \"type\": \"evm\",\n      \"chain\": \"Base_Sepolia\",\n      \"chainId\": 84532,\n      \"name\": \"Base Sepolia\"\n    }\n  },\n  \"steps\": [\n    {\n      \"name\": \"approve\",\n      \"state\": \"success\",\n      \"txHash\": \"0x1234567890abcdef1234567890abcdef12345678\",\n      \"explorerUrl\": \"https:\u002F\u002Ftestnet.arcscan.app\u002Ftx\u002F0x1234...\"\n    },\n    {\n      \"name\": \"burn\",\n      \"state\": \"success\",\n      \"txHash\": \"0xabcdef1234567890abcdef1234567890abcdef12\",\n      \"explorerUrl\": \"https:\u002F\u002Ftestnet.arcscan.app\u002Ftx\u002F0xabcdef...\"\n    },\n    {\n      \"name\": \"fetchAttestation\",\n      \"state\": \"success\",\n      \"data\": {\n        \"attestation\": \"0x9876543210fedcba9876543210fedcba98765432\"\n      }\n    },\n    {\n      \"name\": \"mint\",\n      \"state\": \"success\",\n      \"txHash\": \"0xfedcba9876543210fedcba9876543210fedcba98\",\n      \"explorerUrl\": \"https:\u002F\u002Fsepolia.basescan.org\u002Ftx\u002F0xfedcba...\"\n    }\n  ]\n}\n","json",[813],{"type":41,"tag":56,"props":814,"children":815},{"__ignoreMap":119},[816,824,864,901,939,977,1003,1039,1048,1073,1111,1136,1176,1213,1243,1277,1286,1294,1319,1355,1379,1415,1452,1481,1514,1522,1530,1556,1565,1601,1637,1675,1709,1718,1726,1761,1797,1834,1867,1875,1883,1919,1955,1980,2015,2024,2032,2040,2076,2112,2149,2182,2190,2199],{"type":41,"tag":125,"props":817,"children":818},{"class":127,"line":128},[819],{"type":41,"tag":125,"props":820,"children":821},{"style":305},[822],{"type":47,"value":823},"{\n",{"type":41,"tag":125,"props":825,"children":826},{"class":127,"line":346},[827,832,837,841,846,850,855,859],{"type":41,"tag":125,"props":828,"children":829},{"style":305},[830],{"type":47,"value":831},"  \"",{"type":41,"tag":125,"props":833,"children":834},{"style":360},[835],{"type":47,"value":836},"amount",{"type":41,"tag":125,"props":838,"children":839},{"style":305},[840],{"type":47,"value":338},{"type":41,"tag":125,"props":842,"children":843},{"style":305},[844],{"type":47,"value":845},":",{"type":41,"tag":125,"props":847,"children":848},{"style":305},[849],{"type":47,"value":329},{"type":41,"tag":125,"props":851,"children":852},{"style":138},[853],{"type":47,"value":854},"25.0",{"type":41,"tag":125,"props":856,"children":857},{"style":305},[858],{"type":47,"value":338},{"type":41,"tag":125,"props":860,"children":861},{"style":305},[862],{"type":47,"value":863},",\n",{"type":41,"tag":125,"props":865,"children":866},{"class":127,"line":356},[867,871,876,880,884,888,893,897],{"type":41,"tag":125,"props":868,"children":869},{"style":305},[870],{"type":47,"value":831},{"type":41,"tag":125,"props":872,"children":873},{"style":360},[874],{"type":47,"value":875},"token",{"type":41,"tag":125,"props":877,"children":878},{"style":305},[879],{"type":47,"value":338},{"type":41,"tag":125,"props":881,"children":882},{"style":305},[883],{"type":47,"value":845},{"type":41,"tag":125,"props":885,"children":886},{"style":305},[887],{"type":47,"value":329},{"type":41,"tag":125,"props":889,"children":890},{"style":138},[891],{"type":47,"value":892},"USDC",{"type":41,"tag":125,"props":894,"children":895},{"style":305},[896],{"type":47,"value":338},{"type":41,"tag":125,"props":898,"children":899},{"style":305},[900],{"type":47,"value":863},{"type":41,"tag":125,"props":902,"children":904},{"class":127,"line":903},4,[905,909,914,918,922,926,931,935],{"type":41,"tag":125,"props":906,"children":907},{"style":305},[908],{"type":47,"value":831},{"type":41,"tag":125,"props":910,"children":911},{"style":360},[912],{"type":47,"value":913},"state",{"type":41,"tag":125,"props":915,"children":916},{"style":305},[917],{"type":47,"value":338},{"type":41,"tag":125,"props":919,"children":920},{"style":305},[921],{"type":47,"value":845},{"type":41,"tag":125,"props":923,"children":924},{"style":305},[925],{"type":47,"value":329},{"type":41,"tag":125,"props":927,"children":928},{"style":138},[929],{"type":47,"value":930},"success",{"type":41,"tag":125,"props":932,"children":933},{"style":305},[934],{"type":47,"value":338},{"type":41,"tag":125,"props":936,"children":937},{"style":305},[938],{"type":47,"value":863},{"type":41,"tag":125,"props":940,"children":942},{"class":127,"line":941},5,[943,947,952,956,960,964,969,973],{"type":41,"tag":125,"props":944,"children":945},{"style":305},[946],{"type":47,"value":831},{"type":41,"tag":125,"props":948,"children":949},{"style":360},[950],{"type":47,"value":951},"provider",{"type":41,"tag":125,"props":953,"children":954},{"style":305},[955],{"type":47,"value":338},{"type":41,"tag":125,"props":957,"children":958},{"style":305},[959],{"type":47,"value":845},{"type":41,"tag":125,"props":961,"children":962},{"style":305},[963],{"type":47,"value":329},{"type":41,"tag":125,"props":965,"children":966},{"style":138},[967],{"type":47,"value":968},"CCTPV2BridgingProvider",{"type":41,"tag":125,"props":970,"children":971},{"style":305},[972],{"type":47,"value":338},{"type":41,"tag":125,"props":974,"children":975},{"style":305},[976],{"type":47,"value":863},{"type":41,"tag":125,"props":978,"children":980},{"class":127,"line":979},6,[981,985,990,994,998],{"type":41,"tag":125,"props":982,"children":983},{"style":305},[984],{"type":47,"value":831},{"type":41,"tag":125,"props":986,"children":987},{"style":360},[988],{"type":47,"value":989},"config",{"type":41,"tag":125,"props":991,"children":992},{"style":305},[993],{"type":47,"value":338},{"type":41,"tag":125,"props":995,"children":996},{"style":305},[997],{"type":47,"value":845},{"type":41,"tag":125,"props":999,"children":1000},{"style":305},[1001],{"type":47,"value":1002}," {\n",{"type":41,"tag":125,"props":1004,"children":1006},{"class":127,"line":1005},7,[1007,1012,1017,1021,1025,1029,1034],{"type":41,"tag":125,"props":1008,"children":1009},{"style":305},[1010],{"type":47,"value":1011},"    \"",{"type":41,"tag":125,"props":1013,"children":1014},{"style":132},[1015],{"type":47,"value":1016},"transferSpeed",{"type":41,"tag":125,"props":1018,"children":1019},{"style":305},[1020],{"type":47,"value":338},{"type":41,"tag":125,"props":1022,"children":1023},{"style":305},[1024],{"type":47,"value":845},{"type":41,"tag":125,"props":1026,"children":1027},{"style":305},[1028],{"type":47,"value":329},{"type":41,"tag":125,"props":1030,"children":1031},{"style":138},[1032],{"type":47,"value":1033},"FAST",{"type":41,"tag":125,"props":1035,"children":1036},{"style":305},[1037],{"type":47,"value":1038},"\"\n",{"type":41,"tag":125,"props":1040,"children":1042},{"class":127,"line":1041},8,[1043],{"type":41,"tag":125,"props":1044,"children":1045},{"style":305},[1046],{"type":47,"value":1047},"  },\n",{"type":41,"tag":125,"props":1049,"children":1051},{"class":127,"line":1050},9,[1052,1056,1061,1065,1069],{"type":41,"tag":125,"props":1053,"children":1054},{"style":305},[1055],{"type":47,"value":831},{"type":41,"tag":125,"props":1057,"children":1058},{"style":360},[1059],{"type":47,"value":1060},"source",{"type":41,"tag":125,"props":1062,"children":1063},{"style":305},[1064],{"type":47,"value":338},{"type":41,"tag":125,"props":1066,"children":1067},{"style":305},[1068],{"type":47,"value":845},{"type":41,"tag":125,"props":1070,"children":1071},{"style":305},[1072],{"type":47,"value":1002},{"type":41,"tag":125,"props":1074,"children":1076},{"class":127,"line":1075},10,[1077,1081,1086,1090,1094,1098,1103,1107],{"type":41,"tag":125,"props":1078,"children":1079},{"style":305},[1080],{"type":47,"value":1011},{"type":41,"tag":125,"props":1082,"children":1083},{"style":132},[1084],{"type":47,"value":1085},"address",{"type":41,"tag":125,"props":1087,"children":1088},{"style":305},[1089],{"type":47,"value":338},{"type":41,"tag":125,"props":1091,"children":1092},{"style":305},[1093],{"type":47,"value":845},{"type":41,"tag":125,"props":1095,"children":1096},{"style":305},[1097],{"type":47,"value":329},{"type":41,"tag":125,"props":1099,"children":1100},{"style":138},[1101],{"type":47,"value":1102},"0x742d35Cc6634C0532925a3b844Bc454e4438f44e",{"type":41,"tag":125,"props":1104,"children":1105},{"style":305},[1106],{"type":47,"value":338},{"type":41,"tag":125,"props":1108,"children":1109},{"style":305},[1110],{"type":47,"value":863},{"type":41,"tag":125,"props":1112,"children":1114},{"class":127,"line":1113},11,[1115,1119,1124,1128,1132],{"type":41,"tag":125,"props":1116,"children":1117},{"style":305},[1118],{"type":47,"value":1011},{"type":41,"tag":125,"props":1120,"children":1121},{"style":132},[1122],{"type":47,"value":1123},"chain",{"type":41,"tag":125,"props":1125,"children":1126},{"style":305},[1127],{"type":47,"value":338},{"type":41,"tag":125,"props":1129,"children":1130},{"style":305},[1131],{"type":47,"value":845},{"type":41,"tag":125,"props":1133,"children":1134},{"style":305},[1135],{"type":47,"value":1002},{"type":41,"tag":125,"props":1137,"children":1139},{"class":127,"line":1138},12,[1140,1145,1151,1155,1159,1163,1168,1172],{"type":41,"tag":125,"props":1141,"children":1142},{"style":305},[1143],{"type":47,"value":1144},"      \"",{"type":41,"tag":125,"props":1146,"children":1148},{"style":1147},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[1149],{"type":47,"value":1150},"type",{"type":41,"tag":125,"props":1152,"children":1153},{"style":305},[1154],{"type":47,"value":338},{"type":41,"tag":125,"props":1156,"children":1157},{"style":305},[1158],{"type":47,"value":845},{"type":41,"tag":125,"props":1160,"children":1161},{"style":305},[1162],{"type":47,"value":329},{"type":41,"tag":125,"props":1164,"children":1165},{"style":138},[1166],{"type":47,"value":1167},"evm",{"type":41,"tag":125,"props":1169,"children":1170},{"style":305},[1171],{"type":47,"value":338},{"type":41,"tag":125,"props":1173,"children":1174},{"style":305},[1175],{"type":47,"value":863},{"type":41,"tag":125,"props":1177,"children":1179},{"class":127,"line":1178},13,[1180,1184,1188,1192,1196,1200,1205,1209],{"type":41,"tag":125,"props":1181,"children":1182},{"style":305},[1183],{"type":47,"value":1144},{"type":41,"tag":125,"props":1185,"children":1186},{"style":1147},[1187],{"type":47,"value":1123},{"type":41,"tag":125,"props":1189,"children":1190},{"style":305},[1191],{"type":47,"value":338},{"type":41,"tag":125,"props":1193,"children":1194},{"style":305},[1195],{"type":47,"value":845},{"type":41,"tag":125,"props":1197,"children":1198},{"style":305},[1199],{"type":47,"value":329},{"type":41,"tag":125,"props":1201,"children":1202},{"style":138},[1203],{"type":47,"value":1204},"Arc_Testnet",{"type":41,"tag":125,"props":1206,"children":1207},{"style":305},[1208],{"type":47,"value":338},{"type":41,"tag":125,"props":1210,"children":1211},{"style":305},[1212],{"type":47,"value":863},{"type":41,"tag":125,"props":1214,"children":1216},{"class":127,"line":1215},14,[1217,1221,1226,1230,1234,1239],{"type":41,"tag":125,"props":1218,"children":1219},{"style":305},[1220],{"type":47,"value":1144},{"type":41,"tag":125,"props":1222,"children":1223},{"style":1147},[1224],{"type":47,"value":1225},"chainId",{"type":41,"tag":125,"props":1227,"children":1228},{"style":305},[1229],{"type":47,"value":338},{"type":41,"tag":125,"props":1231,"children":1232},{"style":305},[1233],{"type":47,"value":845},{"type":41,"tag":125,"props":1235,"children":1236},{"style":1147},[1237],{"type":47,"value":1238}," 5042002",{"type":41,"tag":125,"props":1240,"children":1241},{"style":305},[1242],{"type":47,"value":863},{"type":41,"tag":125,"props":1244,"children":1246},{"class":127,"line":1245},15,[1247,1251,1256,1260,1264,1268,1273],{"type":41,"tag":125,"props":1248,"children":1249},{"style":305},[1250],{"type":47,"value":1144},{"type":41,"tag":125,"props":1252,"children":1253},{"style":1147},[1254],{"type":47,"value":1255},"name",{"type":41,"tag":125,"props":1257,"children":1258},{"style":305},[1259],{"type":47,"value":338},{"type":41,"tag":125,"props":1261,"children":1262},{"style":305},[1263],{"type":47,"value":845},{"type":41,"tag":125,"props":1265,"children":1266},{"style":305},[1267],{"type":47,"value":329},{"type":41,"tag":125,"props":1269,"children":1270},{"style":138},[1271],{"type":47,"value":1272},"Arc Testnet",{"type":41,"tag":125,"props":1274,"children":1275},{"style":305},[1276],{"type":47,"value":1038},{"type":41,"tag":125,"props":1278,"children":1280},{"class":127,"line":1279},16,[1281],{"type":41,"tag":125,"props":1282,"children":1283},{"style":305},[1284],{"type":47,"value":1285},"    }\n",{"type":41,"tag":125,"props":1287,"children":1289},{"class":127,"line":1288},17,[1290],{"type":41,"tag":125,"props":1291,"children":1292},{"style":305},[1293],{"type":47,"value":1047},{"type":41,"tag":125,"props":1295,"children":1297},{"class":127,"line":1296},18,[1298,1302,1307,1311,1315],{"type":41,"tag":125,"props":1299,"children":1300},{"style":305},[1301],{"type":47,"value":831},{"type":41,"tag":125,"props":1303,"children":1304},{"style":360},[1305],{"type":47,"value":1306},"destination",{"type":41,"tag":125,"props":1308,"children":1309},{"style":305},[1310],{"type":47,"value":338},{"type":41,"tag":125,"props":1312,"children":1313},{"style":305},[1314],{"type":47,"value":845},{"type":41,"tag":125,"props":1316,"children":1317},{"style":305},[1318],{"type":47,"value":1002},{"type":41,"tag":125,"props":1320,"children":1322},{"class":127,"line":1321},19,[1323,1327,1331,1335,1339,1343,1347,1351],{"type":41,"tag":125,"props":1324,"children":1325},{"style":305},[1326],{"type":47,"value":1011},{"type":41,"tag":125,"props":1328,"children":1329},{"style":132},[1330],{"type":47,"value":1085},{"type":41,"tag":125,"props":1332,"children":1333},{"style":305},[1334],{"type":47,"value":338},{"type":41,"tag":125,"props":1336,"children":1337},{"style":305},[1338],{"type":47,"value":845},{"type":41,"tag":125,"props":1340,"children":1341},{"style":305},[1342],{"type":47,"value":329},{"type":41,"tag":125,"props":1344,"children":1345},{"style":138},[1346],{"type":47,"value":1102},{"type":41,"tag":125,"props":1348,"children":1349},{"style":305},[1350],{"type":47,"value":338},{"type":41,"tag":125,"props":1352,"children":1353},{"style":305},[1354],{"type":47,"value":863},{"type":41,"tag":125,"props":1356,"children":1358},{"class":127,"line":1357},20,[1359,1363,1367,1371,1375],{"type":41,"tag":125,"props":1360,"children":1361},{"style":305},[1362],{"type":47,"value":1011},{"type":41,"tag":125,"props":1364,"children":1365},{"style":132},[1366],{"type":47,"value":1123},{"type":41,"tag":125,"props":1368,"children":1369},{"style":305},[1370],{"type":47,"value":338},{"type":41,"tag":125,"props":1372,"children":1373},{"style":305},[1374],{"type":47,"value":845},{"type":41,"tag":125,"props":1376,"children":1377},{"style":305},[1378],{"type":47,"value":1002},{"type":41,"tag":125,"props":1380,"children":1382},{"class":127,"line":1381},21,[1383,1387,1391,1395,1399,1403,1407,1411],{"type":41,"tag":125,"props":1384,"children":1385},{"style":305},[1386],{"type":47,"value":1144},{"type":41,"tag":125,"props":1388,"children":1389},{"style":1147},[1390],{"type":47,"value":1150},{"type":41,"tag":125,"props":1392,"children":1393},{"style":305},[1394],{"type":47,"value":338},{"type":41,"tag":125,"props":1396,"children":1397},{"style":305},[1398],{"type":47,"value":845},{"type":41,"tag":125,"props":1400,"children":1401},{"style":305},[1402],{"type":47,"value":329},{"type":41,"tag":125,"props":1404,"children":1405},{"style":138},[1406],{"type":47,"value":1167},{"type":41,"tag":125,"props":1408,"children":1409},{"style":305},[1410],{"type":47,"value":338},{"type":41,"tag":125,"props":1412,"children":1413},{"style":305},[1414],{"type":47,"value":863},{"type":41,"tag":125,"props":1416,"children":1418},{"class":127,"line":1417},22,[1419,1423,1427,1431,1435,1439,1444,1448],{"type":41,"tag":125,"props":1420,"children":1421},{"style":305},[1422],{"type":47,"value":1144},{"type":41,"tag":125,"props":1424,"children":1425},{"style":1147},[1426],{"type":47,"value":1123},{"type":41,"tag":125,"props":1428,"children":1429},{"style":305},[1430],{"type":47,"value":338},{"type":41,"tag":125,"props":1432,"children":1433},{"style":305},[1434],{"type":47,"value":845},{"type":41,"tag":125,"props":1436,"children":1437},{"style":305},[1438],{"type":47,"value":329},{"type":41,"tag":125,"props":1440,"children":1441},{"style":138},[1442],{"type":47,"value":1443},"Base_Sepolia",{"type":41,"tag":125,"props":1445,"children":1446},{"style":305},[1447],{"type":47,"value":338},{"type":41,"tag":125,"props":1449,"children":1450},{"style":305},[1451],{"type":47,"value":863},{"type":41,"tag":125,"props":1453,"children":1455},{"class":127,"line":1454},23,[1456,1460,1464,1468,1472,1477],{"type":41,"tag":125,"props":1457,"children":1458},{"style":305},[1459],{"type":47,"value":1144},{"type":41,"tag":125,"props":1461,"children":1462},{"style":1147},[1463],{"type":47,"value":1225},{"type":41,"tag":125,"props":1465,"children":1466},{"style":305},[1467],{"type":47,"value":338},{"type":41,"tag":125,"props":1469,"children":1470},{"style":305},[1471],{"type":47,"value":845},{"type":41,"tag":125,"props":1473,"children":1474},{"style":1147},[1475],{"type":47,"value":1476}," 84532",{"type":41,"tag":125,"props":1478,"children":1479},{"style":305},[1480],{"type":47,"value":863},{"type":41,"tag":125,"props":1482,"children":1484},{"class":127,"line":1483},24,[1485,1489,1493,1497,1501,1505,1510],{"type":41,"tag":125,"props":1486,"children":1487},{"style":305},[1488],{"type":47,"value":1144},{"type":41,"tag":125,"props":1490,"children":1491},{"style":1147},[1492],{"type":47,"value":1255},{"type":41,"tag":125,"props":1494,"children":1495},{"style":305},[1496],{"type":47,"value":338},{"type":41,"tag":125,"props":1498,"children":1499},{"style":305},[1500],{"type":47,"value":845},{"type":41,"tag":125,"props":1502,"children":1503},{"style":305},[1504],{"type":47,"value":329},{"type":41,"tag":125,"props":1506,"children":1507},{"style":138},[1508],{"type":47,"value":1509},"Base Sepolia",{"type":41,"tag":125,"props":1511,"children":1512},{"style":305},[1513],{"type":47,"value":1038},{"type":41,"tag":125,"props":1515,"children":1517},{"class":127,"line":1516},25,[1518],{"type":41,"tag":125,"props":1519,"children":1520},{"style":305},[1521],{"type":47,"value":1285},{"type":41,"tag":125,"props":1523,"children":1525},{"class":127,"line":1524},26,[1526],{"type":41,"tag":125,"props":1527,"children":1528},{"style":305},[1529],{"type":47,"value":1047},{"type":41,"tag":125,"props":1531,"children":1533},{"class":127,"line":1532},27,[1534,1538,1543,1547,1551],{"type":41,"tag":125,"props":1535,"children":1536},{"style":305},[1537],{"type":47,"value":831},{"type":41,"tag":125,"props":1539,"children":1540},{"style":360},[1541],{"type":47,"value":1542},"steps",{"type":41,"tag":125,"props":1544,"children":1545},{"style":305},[1546],{"type":47,"value":338},{"type":41,"tag":125,"props":1548,"children":1549},{"style":305},[1550],{"type":47,"value":845},{"type":41,"tag":125,"props":1552,"children":1553},{"style":305},[1554],{"type":47,"value":1555}," [\n",{"type":41,"tag":125,"props":1557,"children":1559},{"class":127,"line":1558},28,[1560],{"type":41,"tag":125,"props":1561,"children":1562},{"style":305},[1563],{"type":47,"value":1564},"    {\n",{"type":41,"tag":125,"props":1566,"children":1568},{"class":127,"line":1567},29,[1569,1573,1577,1581,1585,1589,1593,1597],{"type":41,"tag":125,"props":1570,"children":1571},{"style":305},[1572],{"type":47,"value":1144},{"type":41,"tag":125,"props":1574,"children":1575},{"style":132},[1576],{"type":47,"value":1255},{"type":41,"tag":125,"props":1578,"children":1579},{"style":305},[1580],{"type":47,"value":338},{"type":41,"tag":125,"props":1582,"children":1583},{"style":305},[1584],{"type":47,"value":845},{"type":41,"tag":125,"props":1586,"children":1587},{"style":305},[1588],{"type":47,"value":329},{"type":41,"tag":125,"props":1590,"children":1591},{"style":138},[1592],{"type":47,"value":630},{"type":41,"tag":125,"props":1594,"children":1595},{"style":305},[1596],{"type":47,"value":338},{"type":41,"tag":125,"props":1598,"children":1599},{"style":305},[1600],{"type":47,"value":863},{"type":41,"tag":125,"props":1602,"children":1604},{"class":127,"line":1603},30,[1605,1609,1613,1617,1621,1625,1629,1633],{"type":41,"tag":125,"props":1606,"children":1607},{"style":305},[1608],{"type":47,"value":1144},{"type":41,"tag":125,"props":1610,"children":1611},{"style":132},[1612],{"type":47,"value":913},{"type":41,"tag":125,"props":1614,"children":1615},{"style":305},[1616],{"type":47,"value":338},{"type":41,"tag":125,"props":1618,"children":1619},{"style":305},[1620],{"type":47,"value":845},{"type":41,"tag":125,"props":1622,"children":1623},{"style":305},[1624],{"type":47,"value":329},{"type":41,"tag":125,"props":1626,"children":1627},{"style":138},[1628],{"type":47,"value":930},{"type":41,"tag":125,"props":1630,"children":1631},{"style":305},[1632],{"type":47,"value":338},{"type":41,"tag":125,"props":1634,"children":1635},{"style":305},[1636],{"type":47,"value":863},{"type":41,"tag":125,"props":1638,"children":1640},{"class":127,"line":1639},31,[1641,1645,1650,1654,1658,1662,1667,1671],{"type":41,"tag":125,"props":1642,"children":1643},{"style":305},[1644],{"type":47,"value":1144},{"type":41,"tag":125,"props":1646,"children":1647},{"style":132},[1648],{"type":47,"value":1649},"txHash",{"type":41,"tag":125,"props":1651,"children":1652},{"style":305},[1653],{"type":47,"value":338},{"type":41,"tag":125,"props":1655,"children":1656},{"style":305},[1657],{"type":47,"value":845},{"type":41,"tag":125,"props":1659,"children":1660},{"style":305},[1661],{"type":47,"value":329},{"type":41,"tag":125,"props":1663,"children":1664},{"style":138},[1665],{"type":47,"value":1666},"0x1234567890abcdef1234567890abcdef12345678",{"type":41,"tag":125,"props":1668,"children":1669},{"style":305},[1670],{"type":47,"value":338},{"type":41,"tag":125,"props":1672,"children":1673},{"style":305},[1674],{"type":47,"value":863},{"type":41,"tag":125,"props":1676,"children":1678},{"class":127,"line":1677},32,[1679,1683,1688,1692,1696,1700,1705],{"type":41,"tag":125,"props":1680,"children":1681},{"style":305},[1682],{"type":47,"value":1144},{"type":41,"tag":125,"props":1684,"children":1685},{"style":132},[1686],{"type":47,"value":1687},"explorerUrl",{"type":41,"tag":125,"props":1689,"children":1690},{"style":305},[1691],{"type":47,"value":338},{"type":41,"tag":125,"props":1693,"children":1694},{"style":305},[1695],{"type":47,"value":845},{"type":41,"tag":125,"props":1697,"children":1698},{"style":305},[1699],{"type":47,"value":329},{"type":41,"tag":125,"props":1701,"children":1702},{"style":138},[1703],{"type":47,"value":1704},"https:\u002F\u002Ftestnet.arcscan.app\u002Ftx\u002F0x1234...",{"type":41,"tag":125,"props":1706,"children":1707},{"style":305},[1708],{"type":47,"value":1038},{"type":41,"tag":125,"props":1710,"children":1712},{"class":127,"line":1711},33,[1713],{"type":41,"tag":125,"props":1714,"children":1715},{"style":305},[1716],{"type":47,"value":1717},"    },\n",{"type":41,"tag":125,"props":1719,"children":1721},{"class":127,"line":1720},34,[1722],{"type":41,"tag":125,"props":1723,"children":1724},{"style":305},[1725],{"type":47,"value":1564},{"type":41,"tag":125,"props":1727,"children":1728},{"class":127,"line":28},[1729,1733,1737,1741,1745,1749,1753,1757],{"type":41,"tag":125,"props":1730,"children":1731},{"style":305},[1732],{"type":47,"value":1144},{"type":41,"tag":125,"props":1734,"children":1735},{"style":132},[1736],{"type":47,"value":1255},{"type":41,"tag":125,"props":1738,"children":1739},{"style":305},[1740],{"type":47,"value":338},{"type":41,"tag":125,"props":1742,"children":1743},{"style":305},[1744],{"type":47,"value":845},{"type":41,"tag":125,"props":1746,"children":1747},{"style":305},[1748],{"type":47,"value":329},{"type":41,"tag":125,"props":1750,"children":1751},{"style":138},[1752],{"type":47,"value":638},{"type":41,"tag":125,"props":1754,"children":1755},{"style":305},[1756],{"type":47,"value":338},{"type":41,"tag":125,"props":1758,"children":1759},{"style":305},[1760],{"type":47,"value":863},{"type":41,"tag":125,"props":1762,"children":1764},{"class":127,"line":1763},36,[1765,1769,1773,1777,1781,1785,1789,1793],{"type":41,"tag":125,"props":1766,"children":1767},{"style":305},[1768],{"type":47,"value":1144},{"type":41,"tag":125,"props":1770,"children":1771},{"style":132},[1772],{"type":47,"value":913},{"type":41,"tag":125,"props":1774,"children":1775},{"style":305},[1776],{"type":47,"value":338},{"type":41,"tag":125,"props":1778,"children":1779},{"style":305},[1780],{"type":47,"value":845},{"type":41,"tag":125,"props":1782,"children":1783},{"style":305},[1784],{"type":47,"value":329},{"type":41,"tag":125,"props":1786,"children":1787},{"style":138},[1788],{"type":47,"value":930},{"type":41,"tag":125,"props":1790,"children":1791},{"style":305},[1792],{"type":47,"value":338},{"type":41,"tag":125,"props":1794,"children":1795},{"style":305},[1796],{"type":47,"value":863},{"type":41,"tag":125,"props":1798,"children":1800},{"class":127,"line":1799},37,[1801,1805,1809,1813,1817,1821,1826,1830],{"type":41,"tag":125,"props":1802,"children":1803},{"style":305},[1804],{"type":47,"value":1144},{"type":41,"tag":125,"props":1806,"children":1807},{"style":132},[1808],{"type":47,"value":1649},{"type":41,"tag":125,"props":1810,"children":1811},{"style":305},[1812],{"type":47,"value":338},{"type":41,"tag":125,"props":1814,"children":1815},{"style":305},[1816],{"type":47,"value":845},{"type":41,"tag":125,"props":1818,"children":1819},{"style":305},[1820],{"type":47,"value":329},{"type":41,"tag":125,"props":1822,"children":1823},{"style":138},[1824],{"type":47,"value":1825},"0xabcdef1234567890abcdef1234567890abcdef12",{"type":41,"tag":125,"props":1827,"children":1828},{"style":305},[1829],{"type":47,"value":338},{"type":41,"tag":125,"props":1831,"children":1832},{"style":305},[1833],{"type":47,"value":863},{"type":41,"tag":125,"props":1835,"children":1837},{"class":127,"line":1836},38,[1838,1842,1846,1850,1854,1858,1863],{"type":41,"tag":125,"props":1839,"children":1840},{"style":305},[1841],{"type":47,"value":1144},{"type":41,"tag":125,"props":1843,"children":1844},{"style":132},[1845],{"type":47,"value":1687},{"type":41,"tag":125,"props":1847,"children":1848},{"style":305},[1849],{"type":47,"value":338},{"type":41,"tag":125,"props":1851,"children":1852},{"style":305},[1853],{"type":47,"value":845},{"type":41,"tag":125,"props":1855,"children":1856},{"style":305},[1857],{"type":47,"value":329},{"type":41,"tag":125,"props":1859,"children":1860},{"style":138},[1861],{"type":47,"value":1862},"https:\u002F\u002Ftestnet.arcscan.app\u002Ftx\u002F0xabcdef...",{"type":41,"tag":125,"props":1864,"children":1865},{"style":305},[1866],{"type":47,"value":1038},{"type":41,"tag":125,"props":1868,"children":1870},{"class":127,"line":1869},39,[1871],{"type":41,"tag":125,"props":1872,"children":1873},{"style":305},[1874],{"type":47,"value":1717},{"type":41,"tag":125,"props":1876,"children":1878},{"class":127,"line":1877},40,[1879],{"type":41,"tag":125,"props":1880,"children":1881},{"style":305},[1882],{"type":47,"value":1564},{"type":41,"tag":125,"props":1884,"children":1886},{"class":127,"line":1885},41,[1887,1891,1895,1899,1903,1907,1911,1915],{"type":41,"tag":125,"props":1888,"children":1889},{"style":305},[1890],{"type":47,"value":1144},{"type":41,"tag":125,"props":1892,"children":1893},{"style":132},[1894],{"type":47,"value":1255},{"type":41,"tag":125,"props":1896,"children":1897},{"style":305},[1898],{"type":47,"value":338},{"type":41,"tag":125,"props":1900,"children":1901},{"style":305},[1902],{"type":47,"value":845},{"type":41,"tag":125,"props":1904,"children":1905},{"style":305},[1906],{"type":47,"value":329},{"type":41,"tag":125,"props":1908,"children":1909},{"style":138},[1910],{"type":47,"value":646},{"type":41,"tag":125,"props":1912,"children":1913},{"style":305},[1914],{"type":47,"value":338},{"type":41,"tag":125,"props":1916,"children":1917},{"style":305},[1918],{"type":47,"value":863},{"type":41,"tag":125,"props":1920,"children":1922},{"class":127,"line":1921},42,[1923,1927,1931,1935,1939,1943,1947,1951],{"type":41,"tag":125,"props":1924,"children":1925},{"style":305},[1926],{"type":47,"value":1144},{"type":41,"tag":125,"props":1928,"children":1929},{"style":132},[1930],{"type":47,"value":913},{"type":41,"tag":125,"props":1932,"children":1933},{"style":305},[1934],{"type":47,"value":338},{"type":41,"tag":125,"props":1936,"children":1937},{"style":305},[1938],{"type":47,"value":845},{"type":41,"tag":125,"props":1940,"children":1941},{"style":305},[1942],{"type":47,"value":329},{"type":41,"tag":125,"props":1944,"children":1945},{"style":138},[1946],{"type":47,"value":930},{"type":41,"tag":125,"props":1948,"children":1949},{"style":305},[1950],{"type":47,"value":338},{"type":41,"tag":125,"props":1952,"children":1953},{"style":305},[1954],{"type":47,"value":863},{"type":41,"tag":125,"props":1956,"children":1958},{"class":127,"line":1957},43,[1959,1963,1968,1972,1976],{"type":41,"tag":125,"props":1960,"children":1961},{"style":305},[1962],{"type":47,"value":1144},{"type":41,"tag":125,"props":1964,"children":1965},{"style":132},[1966],{"type":47,"value":1967},"data",{"type":41,"tag":125,"props":1969,"children":1970},{"style":305},[1971],{"type":47,"value":338},{"type":41,"tag":125,"props":1973,"children":1974},{"style":305},[1975],{"type":47,"value":845},{"type":41,"tag":125,"props":1977,"children":1978},{"style":305},[1979],{"type":47,"value":1002},{"type":41,"tag":125,"props":1981,"children":1983},{"class":127,"line":1982},44,[1984,1989,1994,1998,2002,2006,2011],{"type":41,"tag":125,"props":1985,"children":1986},{"style":305},[1987],{"type":47,"value":1988},"        \"",{"type":41,"tag":125,"props":1990,"children":1991},{"style":1147},[1992],{"type":47,"value":1993},"attestation",{"type":41,"tag":125,"props":1995,"children":1996},{"style":305},[1997],{"type":47,"value":338},{"type":41,"tag":125,"props":1999,"children":2000},{"style":305},[2001],{"type":47,"value":845},{"type":41,"tag":125,"props":2003,"children":2004},{"style":305},[2005],{"type":47,"value":329},{"type":41,"tag":125,"props":2007,"children":2008},{"style":138},[2009],{"type":47,"value":2010},"0x9876543210fedcba9876543210fedcba98765432",{"type":41,"tag":125,"props":2012,"children":2013},{"style":305},[2014],{"type":47,"value":1038},{"type":41,"tag":125,"props":2016,"children":2018},{"class":127,"line":2017},45,[2019],{"type":41,"tag":125,"props":2020,"children":2021},{"style":305},[2022],{"type":47,"value":2023},"      }\n",{"type":41,"tag":125,"props":2025,"children":2027},{"class":127,"line":2026},46,[2028],{"type":41,"tag":125,"props":2029,"children":2030},{"style":305},[2031],{"type":47,"value":1717},{"type":41,"tag":125,"props":2033,"children":2035},{"class":127,"line":2034},47,[2036],{"type":41,"tag":125,"props":2037,"children":2038},{"style":305},[2039],{"type":47,"value":1564},{"type":41,"tag":125,"props":2041,"children":2043},{"class":127,"line":2042},48,[2044,2048,2052,2056,2060,2064,2068,2072],{"type":41,"tag":125,"props":2045,"children":2046},{"style":305},[2047],{"type":47,"value":1144},{"type":41,"tag":125,"props":2049,"children":2050},{"style":132},[2051],{"type":47,"value":1255},{"type":41,"tag":125,"props":2053,"children":2054},{"style":305},[2055],{"type":47,"value":338},{"type":41,"tag":125,"props":2057,"children":2058},{"style":305},[2059],{"type":47,"value":845},{"type":41,"tag":125,"props":2061,"children":2062},{"style":305},[2063],{"type":47,"value":329},{"type":41,"tag":125,"props":2065,"children":2066},{"style":138},[2067],{"type":47,"value":654},{"type":41,"tag":125,"props":2069,"children":2070},{"style":305},[2071],{"type":47,"value":338},{"type":41,"tag":125,"props":2073,"children":2074},{"style":305},[2075],{"type":47,"value":863},{"type":41,"tag":125,"props":2077,"children":2079},{"class":127,"line":2078},49,[2080,2084,2088,2092,2096,2100,2104,2108],{"type":41,"tag":125,"props":2081,"children":2082},{"style":305},[2083],{"type":47,"value":1144},{"type":41,"tag":125,"props":2085,"children":2086},{"style":132},[2087],{"type":47,"value":913},{"type":41,"tag":125,"props":2089,"children":2090},{"style":305},[2091],{"type":47,"value":338},{"type":41,"tag":125,"props":2093,"children":2094},{"style":305},[2095],{"type":47,"value":845},{"type":41,"tag":125,"props":2097,"children":2098},{"style":305},[2099],{"type":47,"value":329},{"type":41,"tag":125,"props":2101,"children":2102},{"style":138},[2103],{"type":47,"value":930},{"type":41,"tag":125,"props":2105,"children":2106},{"style":305},[2107],{"type":47,"value":338},{"type":41,"tag":125,"props":2109,"children":2110},{"style":305},[2111],{"type":47,"value":863},{"type":41,"tag":125,"props":2113,"children":2115},{"class":127,"line":2114},50,[2116,2120,2124,2128,2132,2136,2141,2145],{"type":41,"tag":125,"props":2117,"children":2118},{"style":305},[2119],{"type":47,"value":1144},{"type":41,"tag":125,"props":2121,"children":2122},{"style":132},[2123],{"type":47,"value":1649},{"type":41,"tag":125,"props":2125,"children":2126},{"style":305},[2127],{"type":47,"value":338},{"type":41,"tag":125,"props":2129,"children":2130},{"style":305},[2131],{"type":47,"value":845},{"type":41,"tag":125,"props":2133,"children":2134},{"style":305},[2135],{"type":47,"value":329},{"type":41,"tag":125,"props":2137,"children":2138},{"style":138},[2139],{"type":47,"value":2140},"0xfedcba9876543210fedcba9876543210fedcba98",{"type":41,"tag":125,"props":2142,"children":2143},{"style":305},[2144],{"type":47,"value":338},{"type":41,"tag":125,"props":2146,"children":2147},{"style":305},[2148],{"type":47,"value":863},{"type":41,"tag":125,"props":2150,"children":2152},{"class":127,"line":2151},51,[2153,2157,2161,2165,2169,2173,2178],{"type":41,"tag":125,"props":2154,"children":2155},{"style":305},[2156],{"type":47,"value":1144},{"type":41,"tag":125,"props":2158,"children":2159},{"style":132},[2160],{"type":47,"value":1687},{"type":41,"tag":125,"props":2162,"children":2163},{"style":305},[2164],{"type":47,"value":338},{"type":41,"tag":125,"props":2166,"children":2167},{"style":305},[2168],{"type":47,"value":845},{"type":41,"tag":125,"props":2170,"children":2171},{"style":305},[2172],{"type":47,"value":329},{"type":41,"tag":125,"props":2174,"children":2175},{"style":138},[2176],{"type":47,"value":2177},"https:\u002F\u002Fsepolia.basescan.org\u002Ftx\u002F0xfedcba...",{"type":41,"tag":125,"props":2179,"children":2180},{"style":305},[2181],{"type":47,"value":1038},{"type":41,"tag":125,"props":2183,"children":2185},{"class":127,"line":2184},52,[2186],{"type":41,"tag":125,"props":2187,"children":2188},{"style":305},[2189],{"type":47,"value":1285},{"type":41,"tag":125,"props":2191,"children":2193},{"class":127,"line":2192},53,[2194],{"type":41,"tag":125,"props":2195,"children":2196},{"style":305},[2197],{"type":47,"value":2198},"  ]\n",{"type":41,"tag":125,"props":2200,"children":2202},{"class":127,"line":2201},54,[2203],{"type":41,"tag":125,"props":2204,"children":2205},{"style":305},[2206],{"type":47,"value":2207},"}\n",{"type":41,"tag":102,"props":2209,"children":2211},{"id":2210},"forwarding-service-events-and-recovery",[2212],{"type":47,"value":2213},"Forwarding Service, events, and recovery",{"type":41,"tag":50,"props":2215,"children":2216},{},[2217,2219,2224,2226,2232,2234,2240,2242,2248],{"type":47,"value":2218},"When the task uses ",{"type":41,"tag":56,"props":2220,"children":2222},{"className":2221},[],[2223],{"type":47,"value":705},{"type":47,"value":2225}," (no destination wallet \u002F no attestation polling), subscribes to bridge events via ",{"type":41,"tag":56,"props":2227,"children":2229},{"className":2228},[],[2230],{"type":47,"value":2231},"kit.on()",{"type":47,"value":2233},", or needs to analyze and resume a failed transfer with ",{"type":41,"tag":56,"props":2235,"children":2237},{"className":2236},[],[2238],{"type":47,"value":2239},"kit.retry()",{"type":47,"value":2241},", READ ",{"type":41,"tag":56,"props":2243,"children":2245},{"className":2244},[],[2246],{"type":47,"value":2247},"references\u002Fforwarding-events-recovery.md",{"type":47,"value":2249}," for the runnable patterns (including the Bridge Kit event-name difference).",{"type":41,"tag":42,"props":2251,"children":2253},{"id":2252},"error-handling-recovery",[2254],{"type":47,"value":2255},"Error Handling & Recovery",{"type":41,"tag":50,"props":2257,"children":2258},{},[2259],{"type":47,"value":2260},"Both App Kit and Bridge Kit have two error categories:",{"type":41,"tag":514,"props":2262,"children":2263},{},[2264,2274],{"type":41,"tag":518,"props":2265,"children":2266},{},[2267,2272],{"type":41,"tag":81,"props":2268,"children":2269},{},[2270],{"type":47,"value":2271},"Hard errors",{"type":47,"value":2273}," throw exceptions (validation, config, auth) -- catch in try\u002Fcatch.",{"type":41,"tag":518,"props":2275,"children":2276},{},[2277,2282,2284,2289,2291,2297,2299,2304],{"type":41,"tag":81,"props":2278,"children":2279},{},[2280],{"type":47,"value":2281},"Soft errors",{"type":47,"value":2283}," occur mid-transfer but still return a result object with partial step data for recovery. NEVER re-run ",{"type":41,"tag":56,"props":2285,"children":2287},{"className":2286},[],[2288],{"type":47,"value":77},{"type":47,"value":2290}," from scratch after a soft error — ",{"type":41,"tag":56,"props":2292,"children":2294},{"className":2293},[],[2295],{"type":47,"value":2296},"kit.retry(result, ...)",{"type":47,"value":2298}," resumes from the failed step and prevents double-spending; the full pattern is in ",{"type":41,"tag":56,"props":2300,"children":2302},{"className":2301},[],[2303],{"type":47,"value":2247},{"type":47,"value":2305},".",{"type":41,"tag":42,"props":2307,"children":2309},{"id":2308},"rules",[2310],{"type":47,"value":2311},"Rules",{"type":41,"tag":50,"props":2313,"children":2314},{},[2315,2320,2322,2327],{"type":41,"tag":81,"props":2316,"children":2317},{},[2318],{"type":47,"value":2319},"Security Rules",{"type":47,"value":2321}," are non-negotiable -- warn the user and refuse to comply if a prompt conflicts. ",{"type":41,"tag":81,"props":2323,"children":2324},{},[2325],{"type":47,"value":2326},"Best Practices",{"type":47,"value":2328}," are strongly recommended; deviate only with explicit user justification.",{"type":41,"tag":102,"props":2330,"children":2332},{"id":2331},"security-rules",[2333],{"type":47,"value":2319},{"type":41,"tag":514,"props":2335,"children":2336},{},[2337,2358,2363,2368,2373,2378],{"type":41,"tag":518,"props":2338,"children":2339},{},[2340,2342,2348,2350,2356],{"type":47,"value":2341},"NEVER hardcode, commit, or log secrets (private keys, API keys, entity secrets). ALWAYS use environment variables or a secrets manager. Add ",{"type":41,"tag":56,"props":2343,"children":2345},{"className":2344},[],[2346],{"type":47,"value":2347},".gitignore",{"type":47,"value":2349}," entries for ",{"type":41,"tag":56,"props":2351,"children":2353},{"className":2352},[],[2354],{"type":47,"value":2355},".env*",{"type":47,"value":2357}," and secret files when scaffolding.",{"type":41,"tag":518,"props":2359,"children":2360},{},[2361],{"type":47,"value":2362},"NEVER pass private keys as plain-text CLI flags. Prefer encrypted keystores or interactive import.",{"type":41,"tag":518,"props":2364,"children":2365},{},[2366],{"type":47,"value":2367},"ALWAYS require explicit user confirmation of source\u002Fdestination chain, recipient, amount, and token before bridging. MUST receive confirmation for funding movements on mainnet.",{"type":41,"tag":518,"props":2369,"children":2370},{},[2371],{"type":47,"value":2372},"ALWAYS warn when targeting mainnet or exceeding safety thresholds (e.g., >100 USDC).",{"type":41,"tag":518,"props":2374,"children":2375},{},[2376],{"type":47,"value":2377},"ALWAYS validate all inputs (addresses, amounts, chain names) before submitting bridge operations.",{"type":41,"tag":518,"props":2379,"children":2380},{},[2381],{"type":47,"value":2382},"ALWAYS warn before interacting with unaudited or unknown contracts.",{"type":41,"tag":102,"props":2384,"children":2386},{"id":2385},"best-practices",[2387],{"type":47,"value":2326},{"type":41,"tag":514,"props":2389,"children":2390},{},[2391,2396,2401,2413,2426,2431,2449,2454],{"type":41,"tag":518,"props":2392,"children":2393},{},[2394],{"type":47,"value":2395},"ALWAYS walk the user through the Decision Guide questions before writing any code. Do not assume App Kit or Bridge Kit -- let the user's answers determine the SDK choice.",{"type":41,"tag":518,"props":2397,"children":2398},{},[2399],{"type":47,"value":2400},"ALWAYS read the correct reference files before implementing.",{"type":41,"tag":518,"props":2402,"children":2403},{},[2404,2406,2411],{"type":47,"value":2405},"ALWAYS switch the wallet to the source chain before calling ",{"type":41,"tag":56,"props":2407,"children":2409},{"className":2408},[],[2410],{"type":47,"value":77},{"type":47,"value":2412}," with browser wallets (wagmi\u002FConnectKit\u002FRainbowKit) if the Forwarding Service is NOT used.",{"type":41,"tag":518,"props":2414,"children":2415},{},[2416,2418,2424],{"type":47,"value":2417},"ALWAYS wrap bridge operations in try\u002Fcatch and save the result object for recovery. Check ",{"type":41,"tag":56,"props":2419,"children":2421},{"className":2420},[],[2422],{"type":47,"value":2423},"result.steps",{"type":47,"value":2425}," before retrying to see which steps completed.",{"type":41,"tag":518,"props":2427,"children":2428},{},[2429],{"type":47,"value":2430},"ALWAYS use exponential backoff for retry logic in production.",{"type":41,"tag":518,"props":2432,"children":2433},{},[2434,2436,2441,2442,2447],{"type":47,"value":2435},"ALWAYS use string chain names (e.g., ",{"type":41,"tag":56,"props":2437,"children":2439},{"className":2438},[],[2440],{"type":47,"value":733},{"type":47,"value":674},{"type":41,"tag":56,"props":2443,"children":2445},{"className":2444},[],[2446],{"type":47,"value":740},{"type":47,"value":2448},"), not numeric chain IDs.",{"type":41,"tag":518,"props":2450,"children":2451},{},[2452],{"type":47,"value":2453},"ALWAYS default to testnet. Require explicit user confirmation before targeting mainnet.",{"type":41,"tag":518,"props":2455,"children":2456},{},[2457],{"type":47,"value":2458},"ALWAYS use exported SDK types when parsing SDK inputs and outputs instead of creating custom interfaces. This minimizes type errors.",{"type":41,"tag":42,"props":2460,"children":2462},{"id":2461},"reference-links",[2463],{"type":47,"value":2464},"Reference Links",{"type":41,"tag":514,"props":2466,"children":2467},{},[2468,2480,2490,2500],{"type":41,"tag":518,"props":2469,"children":2470},{},[2471],{"type":41,"tag":2472,"props":2473,"children":2477},"a",{"href":2474,"rel":2475},"https:\u002F\u002Fdocs.arc.network\u002Fapp-kit",[2476],"nofollow",[2478],{"type":47,"value":2479},"Circle App Kit SDK",{"type":41,"tag":518,"props":2481,"children":2482},{},[2483],{"type":41,"tag":2472,"props":2484,"children":2487},{"href":2485,"rel":2486},"https:\u002F\u002Fdocs.arc.network\u002Fapp-kit\u002Fbridge",[2476],[2488],{"type":47,"value":2489},"Circle Bridge Kit SDK",{"type":41,"tag":518,"props":2491,"children":2492},{},[2493],{"type":41,"tag":2472,"props":2494,"children":2497},{"href":2495,"rel":2496},"https:\u002F\u002Fdevelopers.circle.com\u002Fcctp",[2476],[2498],{"type":47,"value":2499},"CCTP Documentation",{"type":41,"tag":518,"props":2501,"children":2502},{},[2503,2510,2512,2517],{"type":41,"tag":2472,"props":2504,"children":2507},{"href":2505,"rel":2506},"https:\u002F\u002Fdevelopers.circle.com\u002Fllms.txt",[2476],[2508],{"type":47,"value":2509},"Circle Developer Docs",{"type":47,"value":2511}," -- ",{"type":41,"tag":81,"props":2513,"children":2514},{},[2515],{"type":47,"value":2516},"Always read this first",{"type":47,"value":2518}," when looking for relevant documentation from the source website.",{"type":41,"tag":42,"props":2520,"children":2522},{"id":2521},"alternatives",[2523],{"type":47,"value":2524},"Alternatives",{"type":41,"tag":50,"props":2526,"children":2527},{},[2528,2530,2536],{"type":47,"value":2529},"Trigger the ",{"type":41,"tag":56,"props":2531,"children":2533},{"className":2532},[],[2534],{"type":47,"value":2535},"swap-tokens",{"type":47,"value":2537}," skill instead when:",{"type":41,"tag":514,"props":2539,"children":2540},{},[2541,2546],{"type":41,"tag":518,"props":2542,"children":2543},{},[2544],{"type":47,"value":2545},"You need to swap tokens (e.g., USDT to USDC) on the same chain.",{"type":41,"tag":518,"props":2547,"children":2548},{},[2549],{"type":47,"value":2550},"You need to move non-USDC tokens across chains. The swap-tokens skill shows how to combine separate swap and bridge calls (swap tokenA to USDC, bridge USDC, swap USDC to tokenB).",{"type":41,"tag":50,"props":2552,"children":2553},{},[2554,2555,2561],{"type":47,"value":2529},{"type":41,"tag":56,"props":2556,"children":2558},{"className":2557},[],[2559],{"type":47,"value":2560},"use-gateway",{"type":47,"value":2537},{"type":41,"tag":514,"props":2563,"children":2564},{},[2565,2570,2575],{"type":41,"tag":518,"props":2566,"children":2567},{},[2568],{"type":47,"value":2569},"You want a unified crosschain balance rather than point-to-point transfers.",{"type":41,"tag":518,"props":2571,"children":2572},{},[2573],{"type":47,"value":2574},"Capital efficiency matters -- consolidate USDC holdings instead of maintaining separate balances per chain.",{"type":41,"tag":518,"props":2576,"children":2577},{},[2578],{"type":47,"value":2579},"You are building chain abstraction, payment routing, or treasury management where low latency and a single balance view are critical.",{"type":41,"tag":2581,"props":2582,"children":2583},"hr",{},[],{"type":41,"tag":50,"props":2585,"children":2586},{},[2587,2589,2596,2598,2605],{"type":47,"value":2588},"DISCLAIMER: This skill is provided \"as is\" without warranties, is subject to the ",{"type":41,"tag":2472,"props":2590,"children":2593},{"href":2591,"rel":2592},"https:\u002F\u002Fconsole.circle.com\u002Flegal\u002Fdeveloper-terms",[2476],[2594],{"type":47,"value":2595},"Circle Developer Terms",{"type":47,"value":2597},", 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":2472,"props":2599,"children":2602},{"href":2600,"rel":2601},"https:\u002F\u002Fgithub.com\u002Fcirclefin\u002Fskills\u002Fblob\u002Fmaster\u002FREADME.md",[2476],[2603],{"type":47,"value":2604},"README",{"type":47,"value":2305},{"type":41,"tag":2607,"props":2608,"children":2609},"style",{},[2610],{"type":47,"value":2611},"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":2613,"total":1288},[2614,2628,2643,2650,2661,2674,2684,2695,2709,2722,2733,2744],{"slug":2615,"name":2615,"fn":2616,"description":2617,"org":2618,"tags":2619,"stars":24,"repoUrl":25,"updatedAt":2627},"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},[2620,2623,2624,2625],{"name":2621,"slug":2622,"type":14},"API Development","api-development",{"name":9,"slug":8,"type":14},{"name":19,"slug":20,"type":14},{"name":2626,"slug":2626,"type":14},"x402","2026-07-12T08:15:01.981685",{"slug":2629,"name":2629,"fn":2630,"description":2631,"org":2632,"tags":2633,"stars":24,"repoUrl":25,"updatedAt":2642},"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},[2634,2635,2638,2639],{"name":9,"slug":8,"type":14},{"name":2636,"slug":2637,"type":14},"CLI","cli",{"name":19,"slug":20,"type":14},{"name":2640,"slug":2641,"type":14},"Security","security","2026-07-12T08:14:58.279437",{"slug":4,"name":4,"fn":5,"description":6,"org":2644,"tags":2645,"stars":24,"repoUrl":25,"updatedAt":26},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2646,2647,2648,2649],{"name":9,"slug":8,"type":14},{"name":19,"slug":20,"type":14},{"name":22,"slug":23,"type":14},{"name":16,"slug":17,"type":14},{"slug":2651,"name":2651,"fn":2652,"description":2653,"org":2654,"tags":2655,"stars":24,"repoUrl":25,"updatedAt":2660},"fund-agent-wallet","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},[2656,2657,2658,2659],{"name":9,"slug":8,"type":14},{"name":2636,"slug":2637,"type":14},{"name":19,"slug":20,"type":14},{"name":16,"slug":17,"type":14},"2026-07-12T08:14:54.496643",{"slug":2662,"name":2662,"fn":2663,"description":2664,"org":2665,"tags":2666,"stars":24,"repoUrl":25,"updatedAt":2673},"pay-via-agent-wallet","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},[2667,2668,2671,2672],{"name":2621,"slug":2622,"type":14},{"name":2669,"slug":2670,"type":14},"Automation","automation",{"name":9,"slug":8,"type":14},{"name":19,"slug":20,"type":14},"2026-07-12T08:15:00.744635",{"slug":2535,"name":2535,"fn":2675,"description":2676,"org":2677,"tags":2678,"stars":24,"repoUrl":25,"updatedAt":2683},"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},[2679,2680,2681,2682],{"name":2621,"slug":2622,"type":14},{"name":9,"slug":8,"type":14},{"name":19,"slug":20,"type":14},{"name":16,"slug":17,"type":14},"2026-07-12T08:14:48.147148",{"slug":2685,"name":2685,"fn":2686,"description":2687,"org":2688,"tags":2689,"stars":24,"repoUrl":25,"updatedAt":2694},"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},[2690,2691,2692,2693],{"name":9,"slug":8,"type":14},{"name":19,"slug":20,"type":14},{"name":22,"slug":23,"type":14},{"name":16,"slug":17,"type":14},"2026-07-12T08:14:50.682387",{"slug":2696,"name":2696,"fn":2697,"description":2698,"org":2699,"tags":2700,"stars":24,"repoUrl":25,"updatedAt":2708},"use-agent-wallet","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},[2701,2704,2705,2706,2707],{"name":2702,"slug":2703,"type":14},"Agents","agents",{"name":9,"slug":8,"type":14},{"name":19,"slug":20,"type":14},{"name":16,"slug":17,"type":14},{"name":2626,"slug":2626,"type":14},"2026-07-12T08:14:53.237765",{"slug":2710,"name":2710,"fn":2711,"description":2712,"org":2713,"tags":2714,"stars":24,"repoUrl":25,"updatedAt":2721},"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},[2715,2718,2719,2720],{"name":2716,"slug":2717,"type":14},"Blockchain","blockchain",{"name":9,"slug":8,"type":14},{"name":19,"slug":20,"type":14},{"name":16,"slug":17,"type":14},"2026-07-12T08:14:45.491427",{"slug":2723,"name":2723,"fn":2724,"description":2725,"org":2726,"tags":2727,"stars":24,"repoUrl":25,"updatedAt":2732},"use-circle-cli","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},[2728,2729,2730,2731],{"name":9,"slug":8,"type":14},{"name":2636,"slug":2637,"type":14},{"name":19,"slug":20,"type":14},{"name":16,"slug":17,"type":14},"2026-07-12T08:14:51.977061",{"slug":2734,"name":2734,"fn":2735,"description":2736,"org":2737,"tags":2738,"stars":24,"repoUrl":25,"updatedAt":2743},"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},[2739,2740,2741,2742],{"name":9,"slug":8,"type":14},{"name":19,"slug":20,"type":14},{"name":2640,"slug":2641,"type":14},{"name":16,"slug":17,"type":14},"2026-07-12T08:14:57.048087",{"slug":2745,"name":2745,"fn":2746,"description":2747,"org":2748,"tags":2749,"stars":24,"repoUrl":25,"updatedAt":2753},"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},[2750,2751,2752],{"name":19,"slug":20,"type":14},{"name":2640,"slug":2641,"type":14},{"name":16,"slug":17,"type":14},"2026-07-12T08:15:05.994959",{"items":2755,"total":1288},[2756,2763,2770,2777,2784,2791,2798],{"slug":2615,"name":2615,"fn":2616,"description":2617,"org":2757,"tags":2758,"stars":24,"repoUrl":25,"updatedAt":2627},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2759,2760,2761,2762],{"name":2621,"slug":2622,"type":14},{"name":9,"slug":8,"type":14},{"name":19,"slug":20,"type":14},{"name":2626,"slug":2626,"type":14},{"slug":2629,"name":2629,"fn":2630,"description":2631,"org":2764,"tags":2765,"stars":24,"repoUrl":25,"updatedAt":2642},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2766,2767,2768,2769],{"name":9,"slug":8,"type":14},{"name":2636,"slug":2637,"type":14},{"name":19,"slug":20,"type":14},{"name":2640,"slug":2641,"type":14},{"slug":4,"name":4,"fn":5,"description":6,"org":2771,"tags":2772,"stars":24,"repoUrl":25,"updatedAt":26},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2773,2774,2775,2776],{"name":9,"slug":8,"type":14},{"name":19,"slug":20,"type":14},{"name":22,"slug":23,"type":14},{"name":16,"slug":17,"type":14},{"slug":2651,"name":2651,"fn":2652,"description":2653,"org":2778,"tags":2779,"stars":24,"repoUrl":25,"updatedAt":2660},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2780,2781,2782,2783],{"name":9,"slug":8,"type":14},{"name":2636,"slug":2637,"type":14},{"name":19,"slug":20,"type":14},{"name":16,"slug":17,"type":14},{"slug":2662,"name":2662,"fn":2663,"description":2664,"org":2785,"tags":2786,"stars":24,"repoUrl":25,"updatedAt":2673},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2787,2788,2789,2790],{"name":2621,"slug":2622,"type":14},{"name":2669,"slug":2670,"type":14},{"name":9,"slug":8,"type":14},{"name":19,"slug":20,"type":14},{"slug":2535,"name":2535,"fn":2675,"description":2676,"org":2792,"tags":2793,"stars":24,"repoUrl":25,"updatedAt":2683},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2794,2795,2796,2797],{"name":2621,"slug":2622,"type":14},{"name":9,"slug":8,"type":14},{"name":19,"slug":20,"type":14},{"name":16,"slug":17,"type":14},{"slug":2685,"name":2685,"fn":2686,"description":2687,"org":2799,"tags":2800,"stars":24,"repoUrl":25,"updatedAt":2694},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2801,2802,2803,2804],{"name":9,"slug":8,"type":14},{"name":19,"slug":20,"type":14},{"name":22,"slug":23,"type":14},{"name":16,"slug":17,"type":14}]