From circle
Guides building on Arc, Circle's EVM-compatible blockchain where USDC is the native gas token. Covers network setup, CCTP bridging, and dual native/ERC-20 USDC views.
How this skill is triggered — by the user, by Claude, or both
Slash command
/circle:use-arcThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Arc is Circle's blockchain where USDC is the native gas token. Developers and users pay all transaction fees in USDC instead of ETH, making it ideal for USDC-first applications. Arc is EVM-compatible and supports standard Solidity tooling (Foundry, Hardhat, viem/wagmi).
Arc is Circle's blockchain where USDC is the native gas token. Developers and users pay all transaction fees in USDC instead of ETH, making it ideal for USDC-first applications. Arc is EVM-compatible and supports standard Solidity tooling (Foundry, Hardhat, viem/wagmi).
Get testnet USDC from https://faucet.circle.com before sending any transactions.
ARC_TESTNET_RPC_URL=https://rpc.testnet.arc.network
PRIVATE_KEY= # Deployer wallet private key
| Field | Value |
|---|---|
| Network | Arc Testnet |
| Chain ID | 5042002 (hex: 0x4CEF52) |
| RPC | https://rpc.testnet.arc.network |
| WebSocket | wss://rpc.testnet.arc.network |
| Explorer | https://testnet.arcscan.app |
| Faucet | https://faucet.circle.com |
| CCTP Domain | 26 |
| Token | Address | Decimals |
|---|---|---|
| USDC | 0x3600000000000000000000000000000000000000 | 6 (ERC-20) |
| EURC | 0x89B50855Aa3bE2F677cD6303Cec089B5F319D72a | 6 |
msg.value. wagmi useBalance returns this (its symbol is USDC).0x3600000000000000000000000000000000000000. Use this for all balances, transfers, approvals, and display.USDC → native (or reverse) operation before fee/routing logic.decimals() on a native sentinel address (NATIVE, 0xEeee…eEEeE, 0x0000…0000) — those are not ERC-20 contracts and the call reverts. The ERC-20 is 6 decimals; native is 18.1e18 native = 1e6 ERC-20). Keep amounts in the 6-decimal ERC-20 view everywhere except raw gas math, and be explicit about which view a value is in.Use the arcTestnet chain definition from Prerequisites / Setup. Pass it to your wagmi config:
import { createConfig, http } from 'wagmi'
import { arcTestnet } from 'viem/chains'
const config = createConfig({
chains: [arcTestnet],
transports: { [arcTestnet.id]: http() },
})
# Install Foundry
curl -L https://foundry.paradigm.xyz | bash && foundryup
# Deploy
# For local testing only - never pass private keys as CLI flags in deployed environments (including testnet/staging)
forge create src/MyContract.sol:MyContract \
--rpc-url $ARC_TESTNET_RPC_URL \
--private-key $PRIVATE_KEY \
--broadcast
Deploy via Circle's Smart Contract Platform API:
| Template | Use Case |
|---|---|
| ERC-20 | Fungible tokens |
| ERC-721 | NFTs, unique assets |
| ERC-1155 | Multi-token collections |
| Airdrop | Token distribution |
See: https://developers.circle.com/contracts
Use CCTP to bridge USDC from other chains. Arc's CCTP domain is 26. See the bridge-stablecoin skill for the complete bridging workflow.
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.
.gitignore entries for .env* and secret files when scaffolding.--private-key $KEY). This pattern is acceptable only for local testing. Prefer encrypted keystores or interactive import (e.g., Foundry's cast wallet import) for any non-local deployment.5042002) before submitting transactions.msg.value math. Never sum the two views or treat native and USDC as separate assets.Arc is natively supported across Circle's product suite. Once your app is running on Arc, you can extend it with any of the following:
| Product | Skill | What It Does |
|---|---|---|
| Wallets (overview) | use-circle-wallets | Compare wallet types and choose the right one for your app |
| Modular Wallets | use-modular-wallets | Passkey-authenticated smart accounts with gasless transactions and batch operations |
| User-Controlled Wallets | use-user-controlled-wallets | Non-custodial wallets with social login, email OTP, and PIN authentication |
| Developer-Controlled Wallets | use-developer-controlled-wallets | Custodial wallets your app manages on behalf of users |
| Smart Contract Platform | use-smart-contract-platform | Deploy, interact with, and monitor smart contracts using audited templates or custom bytecode |
| CCTP Bridge | bridge-stablecoin | Bridge USDC to and from Arc using Crosschain Transfer Protocol |
| Gateway | use-gateway | Unified USDC balance across chains with instant crosschain transfers |
DISCLAIMER: This skill is provided "as is" without warranties, is subject to the Circle Developer Terms, and output generated may contain errors and/or include fee configuration options (including fees directed to Circle); additional details are in the repository README.
npx claudepluginhub circlefin/skills --plugin circle-skillsBuild USDC bridging across EVM and Solana using Circle's App Kit or Bridge Kit. Handles CCTP lifecycle for cross-chain transfers.
Wires Alchemy into application code without an API key, using x402/MPP gateway with wallet-based auth (SIWE/SIWS) and per-request payments (USDC or credit card).