accept-agent-payments
Use when a developer wants to monetize an API, endpoint, service, model, dataset, tool, or agent-facing resource with Circle USDC…
USDC is Circle's stablecoin deployed across multiple blockchain ecosystems including EVM chains (Ethereum, Base, Arbitrum, Polygon, Arc) and Solana. Use this skill to check balances, send transfers, approve spending, and verify transactions. Triggers on: send USDC, approve USDC,
$ npx -y skills add circlefin/skills --skill use-usdc --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/use-usdcContext preview
The summary Claude sees to decide when to auto-load this skill.
USDC is Circle's stablecoin deployed across multiple blockchain ecosystems including EVM chains (Ethereum, Base, Arbitrum, Polygon, Arc) and Solana. Use this skill to check balances, send transfers, approve spending, and verify transactions. Triggers on: send USDC, approve USDC,
name: use-usdc description: "USDC is Circle's stablecoin deployed across multiple blockchain ecosystems including EVM chains (Ethereum, Base, Arbitrum, Polygon, Arc) and Solana. Use this skill to check balances, send transfers, approve spending, and verify transactions. Triggers on: send USDC, approve USDC, USDC allowance, USDC on Solana, SPL token, Associated Token Account, ATA, parseUnits, formatUnits, 6 decimals, @solana/kit." requirements: runtimes: [] connectors: []
USDC is Circle's stablecoin deployed across multiple blockchain ecosystems. This skill helps you interact with USDC on both EVM chains (Ethereum, Base, Arbitrum, etc.) and Solana. It covers balance checks, transfers, approvals, and transfer verification.
First, identify which ecosystem the user is working with:
**EVM:**
npm install viem
**Solana:**
npm install @solana/kit @solana-program/token ws dotenv bs58
See ecosystem-specific guides:
**For read operations (balance, allowance, verify):** No private key needed on either ecosystem.
Canonical source: https://developers.circle.com/stablecoins/usdc-contract-addresses
| Chain | Chain ID | USDC Address | | --- | --- | --- | | Arc Testnet | 5042002 | `0x3600000000000000000000000000000000000000` | | Ethereum Sepolia | 11155111 | `0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238` | | Base Sepolia | 84532 | `0x036CbD53842c5426634e7929541eC2318f3dCF7e` | | Arbitrum Sepolia | 421614 | `0x75faf114eafb1BDbe2F0316DF893fd58CE46AA4d` | | Avalanche Fuji | 43113 | `0x5425890298aed601595a70AB815c96711a31Bc65` | | Polygon Amoy | 80002 | `0x41E94Eb019C0762f9Bfcf9Fb1E58725BfB0e7582` | | OP Sepolia | 11155420 | `0x5fd84259d66Cd46123540766Be93DFE6D43130D7` |
Get testnet USDC: https://faucet.circle.com
| Chain | USDC Address | | --- | --- | | Arc | `0x3600000000000000000000000000000000000000` | | Ethereum | `0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48` | | Base | `0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913` | | Arbitrum | `0xaf88d065e77c8cC2239327C5EDb3A432268e5831` | | Polygon PoS | `0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359` | | Avalanche | `0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E` | | OP Mainnet | `0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85` |
| Network | USDC Mint | | --- | --- | | Devnet | `4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU` | | Mainnet | `EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v` |
USDC uses **6 decimals on all ecosystems**.
// EVM (viem)
parseUnits("1.00", 6); // 1_000_000n (CORRECT - $1 USDC)
parseUnits("1.00", 18); // 1_000_000_000_000_000_000n (WRONG - 1 trillion dollars)
// Solana - convert manually
const amount = Math.floor(1.00 * 1_000_000); // 1_000_000 (CORRECT - $1 USDC)
const human = rawAmount / 1_000_000; // 1.0 (CORRECT - converts back to dollars)On Arc, USDC is both the **native gas token** and an **ERC-20** at `0x3600...`. Same underlying balance, different decimal exposure.
| Context | Decimals | Use | | --- | --- | --- | | Native (gas, `msg.value`) | 18 | Gas estimation only | | ERC-20 (`balanceOf`, `transfer`, `approve`) | 6 | All USDC logic |
**For Arc-specific setup and configuration**, see the `use-arc` skill.
**Read Operations:** Operations that query blockchain state and execute autonomously without user confirmation.
**Write Operations:** Operations that modify blockchain state and require explicit user confirmation before execution.
Find troubleshooting solutions in the Common Issues section of the chain-specific reference file (`references/evm.md` or `references/solana.md`).
| Aspect | EVM | Solana | | --- | --- | --- | | Token standard | ERC-20 | SPL Token | | Balance storage | Wallet address directly | Associated Token Account (ATA) | | Send | `transfer(to, amount)` | `getTransferInstruction({ source, destination, authority, amount })` | | Approve | `approve(spender, amount)` | No approve — use PDAs | | Recipient setup | Nothing needed | Must create ATA first (transfer fails otherwise) | | Tx fees | Chain native token | SOL | | Confirmation | `waitForTransactionReceipt` | `sendAndConfirmTransactionFactory` | | Libraries | viem | @solana/kit + @solana-program/token | | Decimals | 6 | 6 |
1. **Determine the ecosystem** -- EVM (`0x...`) or Solana (base58); ask if unclear (see Prerequisites / Setup). 2. **Classify the operation** -- a read (balance, allowance, supply, verify) runs autonomously; a write (send, approve) requires explicit user confirmation. 3. **Confirm details** -- for a write, validate the recipient address, amount (6 decimals), and chain ID (testnet vs mainnet). Default to testnet; warn on mainnet or amounts over the safety threshold. 4. **Route to the reference** -- READ `references/evm.md` or `references/solana.md` for the exact code (on Solana, create the recipient ATA first). 5. **Execute** -- run the read, or submit the write only after confirmation, using the correct native USDC address for the chain. 6. **Verify** -- wait for the transaction receipt/confirmation before reporting success, and surface the tx hash.
Ship stablecoin apps faster with Circle Skills: best-practice guidance for USDC payments, crosschain transfers, wallets, and smart contracts, plus Circle's MCP server for real-time SDK and documentation context.
Use when a developer wants to monetize an API, endpoint, service, model, dataset, tool, or agent-facing resource with Circle USDC…
View spending policy on a Circle agent wallet — per-transaction, daily, weekly, and monthly USDC caps via the `circle` CLI. Use…
Build browser or server token bridging across chains with Circle App Kit or standalone Bridge Kit. Bridges USDC across CCTP…
Set up and integrate Circle Onramp, the hosted widget that lets end users buy crypto with fiat (bank transfer, debit card, Apple…
Fund a Circle agent wallet with USDC via the `circle` CLI. payments are gas-abstracted. users can pay with USDC only, no ETH…
Use this skill when the user wants to call a paid API, look something up online, search for data, get prices, odds, or stats, or…