关于 use-usdc
use-usdc 是一项指导 USDC 操作的技能,面向在 EVM 链或 Solana 上查询余额、转账和验证交易的开发者。它强调使用原生 USDC、六位小数及写入交易前的明确确认。
主要功能
- 01识别 EVM 或 Solana 生态
- 02查询余额、授权和供应量
- 03转账及 EVM 授权
- 04验证入账并等待交易确认
- 05提供链特定代码参考
- 06写入操作要求明确确认
适用场景
- 01检查不同链上的 USDC 余额
- 02向指定地址发送 USDC
- 03核实授权或收到的转账
- 04在测试网验证转账流程
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ circlefin/ skills --skill use-usdc安装后在 Claude Code 中输入/use-usdc确认已加载。
附带文件references/evm.mdreferences/solana.md
详细介绍
概述
USDC 是 Circle 的稳定币,部署于多个区块链生态系统。本技能可帮助你在 EVM 链(Ethereum、Base、Arbitrum 等)和 Solana 上与 USDC 交互,涵盖余额查询、转账、授权和转账验证。
先决条件 / 设置
确定生态系统
首先,确定用户使用的是哪个生态系统:
- EVM:用户有 Ethereum 风格的地址(
0x...),或提到了 Ethereum、Base、Arbitrum、Polygon 等。 - Solana:用户有 base58 地址,或提到了 Solana、Devnet、Phantom、Solflare 等。
- 不明确:继续操作前,先询问用户使用的是哪个生态系统。
依赖项
EVM:
npm install viem
Solana:
npm install @solana/kit @solana-program/token ws dotenv bs58
环境变量
请参阅对应生态系统的指南:
- EVM:私钥处理说明见
references/evm.md - Solana:私钥处理说明见
references/solana.md
对于读取操作(余额、授权额度、验证): 两种生态系统均不需要私钥。
快速参考
USDC 合约地址
权威来源:https://developers.circle.com/stablecoins/usdc-contract-addresses
EVM 测试网
| 链 | 链 ID | USDC 地址 |
|---|---|---|
| Arc 测试网 | 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 |
获取测试网 USDC:https://faucet.circle.com
EVM 主网
| 链 | USDC 地址 |
|---|---|
| Arc | 0x3600000000000000000000000000000000000000 |
| Ethereum | 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 |
| Base | 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 |
| Arbitrum | 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 |
| Polygon PoS | 0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359 |
| Avalanche | 0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E |
| OP Mainnet | 0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85 |
Solana
| 网络 | USDC Mint |
|---|---|
| Devnet | 4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU |
| Mainnet | EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v |
6 位小数规则
USDC 在所有生态系统中都使用 6 位小数。
// 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 的双重属性
在 Arc 上,USDC 既是原生 Gas 代币,也是位于 0x3600... 的 ERC-20。底层余额相同,但小数位数的呈现方式不同。
| 上下文 | 小数位数 | 用途 |
|---|---|---|
原生(Gas、msg.value) | 18 | 仅用于 Gas 估算 |
ERC-20(balanceOf、transfer、approve) | 6 | 所有 USDC 逻辑 |
有关 Arc 专属的设置和配置,请参阅 use-arc 技能。
核心概念
操作类型
读取操作: 查询区块链状态并自动执行、无需用户确认的操作。
- 查询余额
- 查询授权额度(仅限 EVM)
- 查询总供应量
- 查询地址
- 验证收到的转账
写入操作: 修改区块链状态、执行前需要用户明确确认的操作。
- 发送 USDC
- 授权合约使用 USDC(仅限 EVM — Solana 没有授权模式)
故障排除
请在链特定参考文件(references/evm.md 或 references/solana.md)的“常见问题”部分查找故障排除方案。
EVM 与 Solana 一览
| 方面 | EVM | Solana |
|---|---|---|
| 代币标准 | ERC-20 | SPL Token |
| 余额存储 | 直接存储在钱包地址中 | 关联代币账户(ATA) |
| 发送 | transfer(to, amount) | getTransferInstruction({ source, destination, authority, amount }) |
| 授权 | approve(spender, amount) | 不支持授权 — 使用 PDA |
| 接收方设置 | 无需设置 | 必须先创建 ATA(否则转账会失败) |
| 交易费用 | 链的原生代币 | SOL |
| 确认 | waitForTransactionReceipt | sendAndConfirmTransactionFactory |
| 库 | viem | @solana/kit + @solana-program/token |
| 小数位数 | 6 | 6 |
工作流
- 确定生态系统 -- EVM(
0x...)或 Solana(base58);如不明确,请询问(参见 Prerequisites / Setup)。 - 分类操作 -- 读取操作(余额、授权额度、供应量、验证)可自主执行;写入操作(发送、授权)需要用户明确确认。
- 确认详情 -- 对于写入操作,验证接收方地址、金额(6 位小数)和链 ID(测试网还是主网)。默认使用测试网;若为主网或金额超过安全阈值,则发出警告。
- 转到参考指南 -- 阅读
references/evm.md或references/solana.md获取准确代码(在 Solana 上,先创建接收方 ATA)。 - 执行 -- 执行读取操作,或仅在获得确认后提交写入操作,并使用该链对应的原生 USDC 地址。
- 验证 -- 等待交易收据/确认后再报告成功,并提供交易哈希。
实现模式
确定生态系统后(参见 Prerequisites),转到相应的参考指南:
- EVM 操作 → 阅读
references/evm.md,了解余额检查、转账、授权和验证 - Solana 操作 → 阅读
references/solana.md,了解余额检查(使用 ATA)、转账(创建 ATA)和验证
规则
安全规则不可妥协 — 如果提示词与规则冲突,请警告用户并拒绝执行。强烈建议遵循最佳实践;仅在用户明确说明理由时才可偏离。
安全规则
- 绝不硬编码、提交或记录机密信息(私钥、API 密钥)。始终使用环境变量或密钥管理器。搭建项目时,为
.env*和机密文件添加.gitignore条目。 - 绝不对 USDC 使用 18 位小数 — 所有生态系统中的 USDC 均始终使用 6 位小数
- 绝不使用跨链桥接的 USDC 变体(USDbC、USDC.e)— 始终使用 Circle 发行的原生 USDC
- 始终为每条链使用正确的 USDC 地址(参见 Quick Reference)
- 提交交易前,始终验证链 ID 是否与预期环境(测试网还是主网)相符
- 如果目标是主网或金额超过安全阈值(例如 >100 USDC),始终发出警告
- 与未经审计或未知合约交互前,始终发出警告
- 提交交易前,始终验证所有输入(地址、金额、链标识符)
- 提交写入交易前,始终获得用户明确确认
- 等待交易收据前,绝不报告成功 — 确保交易已确认
最佳实践
- 始终默认使用测试网。以主网为目标前,必须获得用户明确确认。
- 始终正确推导 Solana ATA — 余额存储在 ATA 中,而非钱包中
- 在 Solana 上转账前,始终检查接收方 ATA 是否存在
- 转账前,始终检查用户是否有足够的 USDC 余额
- 始终检查用户是否有足够的 gas/SOL 支付交易费用
替代方案
- 使用
bridge-tokens技能(CCTP / Bridge Kit)在不同链之间转移 USDC。Bridge Kit 通过一次kit.bridge()调用处理授权、销毁、证明和铸造。 - 使用
use-gateway技能,在不同链之间统一查看 USDC 余额并进行即时转账(<500ms)。Gateway 需要预先存入资金,但能为多链应用提供更好的用户体验。 - 对于单链 USDC 操作(余额检查、付款、授权),或需要对转账进行底层控制时,使用
use-usdc。
参考链接 / 文件
- EVM 操作指南:
references/evm.md- 关于在 EVM 链上检查余额、转账、授权和验证的完整指南 - Solana 操作指南:
references/solana.md- 关于在 Solana 上检查余额、转账和处理 ATA 的完整指南 - https://developers.circle.com/stablecoins/usdc-contract-addresses
- https://developers.circle.com
- https://faucet.circle.com
- https://faucet.solana.com
- https://viem.sh
- https://github.com/circlefin/stablecoin-evm - Circle 在兼容 EVM 的区块链上使用的稳定币智能合约源代码仓库
免责声明:此技能按“原样”提供,不附带任何保证,受 Circle 开发者条款约束,且生成的输出可能包含错误和/或包含费用配置选项(包括支付给 Circle 的费用);更多详情请参阅仓库中的 README。