Skip to content
MCP Servers
Skill

/use-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,

BOOST
From plugin
circlefin-skills
15719 skills1 MCP
Install
$ npx -y skills add circlefin/skills --skill use-usdc --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/use-usdc

Context 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,

SKILL.md

use-usdc.SKILL.md
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: []

Overview

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.

Prerequisites / Setup

Determine Ecosystem

First, identify which ecosystem the user is working with:

  • **EVM**: User has an Ethereum-style address (`0x...`) or mentions Ethereum, Base, Arbitrum, Polygon, etc.
  • **Solana**: User has a base58 address or mentions Solana, Devnet, Phantom, Solflare, etc.
  • **Unclear**: Ask which ecosystem before proceeding.

Dependencies

**EVM:**

npm install viem

**Solana:**

npm install @solana/kit @solana-program/token ws dotenv bs58

Environment Variables

See ecosystem-specific guides:

  • **EVM**: Private key handling covered in `references/evm.md`
  • **Solana**: Private key handling covered in `references/solana.md`

**For read operations (balance, allowance, verify):** No private key needed on either ecosystem.

Quick Reference

USDC Contract Addresses

Canonical source: https://developers.circle.com/stablecoins/usdc-contract-addresses

EVM Testnet

| 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

EVM Mainnet

| Chain | USDC Address | | --- | --- | | Arc | `0x3600000000000000000000000000000000000000` | | Ethereum | `0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48` | | Base | `0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913` | | Arbitrum | `0xaf88d065e77c8cC2239327C5EDb3A432268e5831` | | Polygon PoS | `0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359` | | Avalanche | `0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E` | | OP Mainnet | `0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85` |

Solana

| Network | USDC Mint | | --- | --- | | Devnet | `4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU` | | Mainnet | `EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v` |

The 6-Decimal Rule

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)

Arc USDC Duality

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.

Core Concepts

Operation Types

**Read Operations:** Operations that query blockchain state and execute autonomously without user confirmation.

  • Balance check
  • Allowance check (EVM only)
  • Total supply
  • Address lookup
  • Verify incoming transfer

**Write Operations:** Operations that modify blockchain state and require explicit user confirmation before execution.

  • Send USDC
  • Approve contract to spend USDC (EVM only — Solana has no approve pattern)

Troubleshooting

Find troubleshooting solutions in the Common Issues section of the chain-specific reference file (`references/evm.md` or `references/solana.md`).

EVM vs Solana at a Glance

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

Workflow

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.

Implementatio

Read more
Ships withcirclefin-skills

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.

Get the whole plugin

Other skills on circlefin-skills.