← ClaudeAtlas

ekx-circle-usdclisted

Working with USDC and Circle infrastructure across Ekinoxis products — canonical token addresses per chain, the 6-decimal rule, testnet funding via faucet.circle.com, approve/transferFrom payment flows, CCTP cross-chain transfers, and accepting USDC in a contract. Use when building any payment, settlement, escrow, auction or payout that moves USDC, when picking a token address for a network, or when a transfer reverts or arrives with the wrong magnitude.
Ekinoxis-evm/claude-skills · ★ 0 · DevOps & Infrastructure · score 60
Install: claude install-skill Ekinoxis-evm/claude-skills
# Circle / USDC **USDC is the Ekinoxis unit of account onchain.** Auctions settle in it, staking pools hold it, rentals are paid in it, lending pools lend it. Note: there is **no Circle npm package anywhere in the portfolio**. We integrate USDC as a plain ERC-20 at known addresses, and use Circle only for the testnet faucet and (where relevant) CCTP. That is the right default — the Circle Web3 Services SDK is for custodial wallets, which is Privy/CDP's job here. Docs: https://developers.circle.com/stablecoins --- ## Rule one: 6 decimals ``` 1 USDC = 1_000_000 units (1e6) ``` Not 1e18. This is the most expensive mistake available in our codebase, because `parseEther("100")` on USDC does not error — it produces a number 12 orders of magnitude too large, which either reverts on balance (best case) or, in a contract that trusts its input, moves the wrong amount. ```ts parseUnits("100", 6) // ✅ 100000000n parseEther("100") // ❌ 100000000000000000000n formatUnits(bal, 6) // ✅ display ``` In Solidity: `uint256 constant ONE_USDC = 1e6;` — and never assume `1 ether`. In tests: `deal(USDC, alice, 1_000e6)`. --- ## Addresses | Network | USDC address | |---|---| | Base mainnet | `0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913` | | Base Sepolia | `0x036CbD53842c5426634e7929541eC2318f3dcF7e` | | Ethereum Sepolia | `0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238` | | Tempo — pathUSDC | `0x20c0000000000000000000000000000000000000` | Canonical list: https://developer