mcpField
U
use-usdc

use-usdc

github.com/circlefin其他1601.0k 次安装2 周前更新
代码仓库

关于 use-usdc

use-usdc 是一项指导 USDC 操作的技能,面向在 EVM 链或 Solana 上查询余额、转账和验证交易的开发者。它强调使用原生 USDC、六位小数及写入交易前的明确确认。

主要功能

  1. 01识别 EVM 或 Solana 生态
  2. 02查询余额、授权和供应量
  3. 03转账及 EVM 授权
  4. 04验证入账并等待交易确认
  5. 05提供链特定代码参考
  6. 06写入操作要求明确确认

适用场景

  1. 01检查不同链上的 USDC 余额
  2. 02向指定地址发送 USDC
  3. 03核实授权或收到的转账
  4. 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 测试网
链链 IDUSDC 地址
Arc 测试网50420020x3600000000000000000000000000000000000000
Ethereum Sepolia111551110x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238
Base Sepolia845320x036CbD53842c5426634e7929541eC2318f3dCF7e
Arbitrum Sepolia4216140x75faf114eafb1BDbe2F0316DF893fd58CE46AA4d
Avalanche Fuji431130x5425890298aed601595a70AB815c96711a31Bc65
Polygon Amoy800020x41E94Eb019C0762f9Bfcf9Fb1E58725BfB0e7582
OP Sepolia111554200x5fd84259d66Cd46123540766Be93DFE6D43130D7

获取测试网 USDC:https://faucet.circle.com

EVM 主网
链USDC 地址
Arc0x3600000000000000000000000000000000000000
Ethereum0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48
Base0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
Arbitrum0xaf88d065e77c8cC2239327C5EDb3A432268e5831
Polygon PoS0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359
Avalanche0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E
OP Mainnet0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85
Solana
网络USDC Mint
Devnet4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU
MainnetEPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
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 一览
方面EVMSolana
代币标准ERC-20SPL Token
余额存储直接存储在钱包地址中关联代币账户(ATA)
发送transfer(to, amount)getTransferInstruction({ source, destination, authority, amount })
授权approve(spender, amount)不支持授权 — 使用 PDA
接收方设置无需设置必须先创建 ATA(否则转账会失败)
交易费用链的原生代币SOL
确认waitForTransactionReceiptsendAndConfirmTransactionFactory
库viem@solana/kit + @solana-program/token
小数位数66

工作流

  1. 确定生态系统 -- EVM(0x...)或 Solana(base58);如不明确,请询问(参见 Prerequisites / Setup)。
  2. 分类操作 -- 读取操作(余额、授权额度、供应量、验证)可自主执行;写入操作(发送、授权)需要用户明确确认。
  3. 确认详情 -- 对于写入操作,验证接收方地址、金额(6 位小数)和链 ID(测试网还是主网)。默认使用测试网;若为主网或金额超过安全阈值,则发出警告。
  4. 转到参考指南 -- 阅读 references/evm.md 或 references/solana.md 获取准确代码(在 Solana 上,先创建接收方 ATA)。
  5. 执行 -- 执行读取操作,或仅在获得确认后提交写入操作,并使用该链对应的原生 USDC 地址。
  6. 验证 -- 等待交易收据/确认后再报告成功,并提供交易哈希。

实现模式

确定生态系统后(参见 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。

参考链接 / 文件


免责声明:此技能按“原样”提供,不附带任何保证,受 Circle 开发者条款约束,且生成的输出可能包含错误和/或包含费用配置选项(包括支付给 Circle 的费用);更多详情请参阅仓库中的 README。

评论

支持 Markdown