关于 cross-chain
面向涉及 Stellar 的跨链开发技能,帮助开发者为不同任务选择转账通道,并说明代币转移、合约消息及集成注意事项。
主要功能
- 01通过 CCTP V2 路由 USDC 转账
- 02通过 USDT0 路由 USDT 转账
- 03介绍跨链合约消息传递
- 04说明多链代币方案
- 05记录地址、小数位和时序注意事项
适用场景
- 01在 Stellar 与支持的链之间转移 USDC
- 02在 Stellar 与 EVM 链之间转移 USDT
- 03跨链发送合约消息
- 04为钱包或 dapp 添加跨链兑换
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ stellar/ stellar-dev-skill --skill cross-chain安装后在 Claude Code 中输入/cross-chain确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
axelar.mdcctp.mdlayerzero.md详细介绍
Stellar 上的跨链
Stellar 通过多种生产级通道连接到其他区块链,每种通道都针对不同用途构建。选错通道会浪费工程资源;选对通道是路由决策,而不是研究项目。本文负责路由;深入介绍见相应文档——根据任务阅读对应文件:
| 你想要 | 使用 | 位置 |
|---|---|---|
| 在 Stellar 与 EVM 链或 Solana 之间转移原生 USDC(没有封装资产,也没有流动性池) | Circle CCTP V2 | cctp.md |
| 在 Stellar 与 EVM 链之间转移原生 USDT | USDT0,一种 LayerZero OFT | layerzero.md |
| 让 Stellar 合约调用另一条链上的合约,或接收来自另一条链的调用(任意载荷) | Axelar GMP 或 LayerZero OApp | axelar.md、layerzero.md |
| 让一个代币(新代币或现有 Stellar 资产)存在于多条链上 | Axelar ITS 或 LayerZero OFT | axelar.md、layerzero.md |
| 跨链兑换任意资产(BTC、ETH、SOL、… → XLM 或 Stellar USDC),无需自行集成桥 | NEAR Intents | 下文 |
经验法则:如果资产是 USDC,且两端都是 CCTP 链,那么 CCTP 成本最低、路径最直接(它销毁并铸造 Circle 原生 USDC——没有封装,也没有资金池)。如果资产是 USDT,答案是通过 LayerZero OFT 使用 USDT0——这是另一条通道,且其机制因链路而异:Stellar 端销毁并铸造,而 Ethereum 端通过 OFT Adapter 锁定和解锁规范 USDT,因此在描述流程前,请检查该路由的 OFT 模式。如果你需要的是在目标链上执行逻辑,而不只是转移价值,这就是消息传递——有两条通道可以实现,layerzero.md 末尾的比较能帮助你在 Axelar 的共享验证器安全机制和 LayerZero 的应用配置 DVN 集合之间做出选择。如果你控制某个代币并希望它支持多链,那就是同一分类下的 ITS 或 OFT。如果用户只想“把链 A 上的 X 换成 Stellar 上的 Y”,而你完全不想处理桥接,就通过 NEAR Intents 获取报价。
何时使用此技能
- 在 Stellar 与 Ethereum、Base、Arbitrum、Solana 或其他支持 CCTP 的链之间桥接 USDC
- 在 Stellar 与 EVM 链之间桥接 USDT(通过 LayerZero OFT 使用 USDT0)
- 将桥接来的 USDC 接收到 Stellar 账户或合约中(并避免资金无法使用——参见下方的 forwarder 警告)
- 编写 Stellar 智能合约,以便向其他链上的合约发送消息或接收其消息
- 部署跨链代币,或将现有 Stellar 资产连接到其他生态系统
- 为钱包或 dapp 添加“从任意链存入”或跨链兑换流程
相关技能
- 信任线、SAC 部署、资产构成 →
../assets/SKILL.md - 编写用于发送/接收消息的 Stellar 智能合约 →
../smart-contracts/SKILL.md - 前端交易构建、Freighter 签名、RPC 提交 →
../dapp/SKILL.md - 监控目标链上的铸造或合约事件 →
../data/SKILL.md - 向 AI Agent 付款(x402/MPP),而不是进行桥接 →
../agentic-payments/SKILL.md
所有轨道共有的注意事项
无论选择哪条轨道,这些问题都可能带来麻烦。每个配套文件还会补充该轨道特有的注意事项。
- 地址格式不可互换。 Stellar 地址是
strkey字符串(G…账户、C…合约、M…多路复用地址);EVM 使用 20 字节十六进制格式;Solana 使用 base58。每条轨道都为外部地址定义了自己的编码方式(CCTP:原始 32 字节负载;Axelar:字符串 + 字节负载)。切勿把一条链上的地址粘贴到另一条链对应的字段中——请按轨道规定的方式编码,并在编码前使用 SDK 验证(StrKey.isValidEd25519PublicKey/isValidContract)。 - 小数位数各不相同。 经典 Stellar 资产及其 SAC 使用 7 位小数,但其他 Stellar 代币合约(包括通过 ITS 部署的代币)会自行声明小数位数——请调用
decimals(),不要想当然。除 Stellar(使用 7 位)外,所有受支持链上的 USDC 都是 6 位小数;EVM 代币通常是 18 位;CCTP 消息始终使用 6 位小数。每次跨越边界时都要进行转换,并使用能覆盖最后一位的金额进行测试(参见 cctp.md 中的详细小数示例)。LayerZero OFT 还增加了第二层:OFT 除代币本地小数位数外,还会声明shared_decimals(USDT0 为 6);发送时,低于该精度的余数会被静默丢弃——请使用quote_oft获取报价,并以其OFTReceipt为准,不要依赖输入金额(参见 layerzero.md)。 - 经典 Stellar 收款方必须先建立信任线。
G…账户若未针对某项资产(包括 USDC)建立信任线,就无法接收该资产。若目标账户没有信任线,跨链转入的资金将无法到账。请在开始转账前检查并建立信任线——参见../assets/SKILL.md。 - 跨链操作是异步的。 每条轨道都需要等待:CCTP 等待最终性以及 Circle 的证明(根据链和最终性阈值,耗时数秒到约 15 分钟);Axelar 等待验证者确认;意图交易等待做市商。请围绕状态轮询来构建 UI 和 Agent,切勿采用“提交后就默认成功”的方式。
- 始终先在测试网上操作。 在接触主网前,先在测试网上完成完整的往返流程——跨链操作中的错误往往无法挽回,因为销毁不可逆,某些编码错误会导致资金永久滞留。但有两条轨道无法通过这种方式演练:NEAR Intents 由真实做市商完成交易,而 USDT0 没有发布测试网部署,尽管 LayerZero 存在测试网端点。对于这两者,演练方式是只读报价(USDT0 使用
quote_oft和quote_send;意图交易使用模拟报价),然后进行小额真实转账。LayerZero 也有测试网端点(EID40600),可供你自己的 OApp 或 OFT 使用;但在依赖它之前,请先确认一次测试网发送确实能够到账——参见状态说明。
NEAR Intents(基于意图的兑换)
状态敏感。 链和资产支持情况经常变化——开始开发前,请在 NEAR Intents 文档中确认 Stellar 的当前状态。
NEAR Intents 是一种意图协议:用户声明预期结果(“将 0.1 BTC 兑换为 Stellar 上的 USDC”),做市商则竞相执行。Stellar(XLM 和 USDC)是支持的目标链和来源链,因此这是实现“从任意链充值”体验的最短路径——完全无需在 Stellar 端集成桥接合约。
集成方式是使用 1Click API:通过 POST /v0/quote 传入资产对,即可获取价格和存款地址;向该地址发送资金,做市商便会完成兑换。GET /v0/tokens 会列出支持的资产(Stellar 资产:XLM 和 USDC,精度为 7 位小数);使用 "dry": true 发起报价,则可获取价格和预计时间,而不会创建存款承诺——可随意探测资产对,之后再提交。提供 TypeScript、Go 和 Rust 的官方 SDK。
与 Stellar 相关的三点信息(已通过实时 API 验证):
- Stellar 存款仅支持 MEMO 模式,且 API 会强制执行。 对于来源资产为 Stellar 的报价,必须设置
"depositMode": "MEMO"——否则/v0/quote会返回错误Incorrect depositMode for originAsset from stellar chain。随后,报价会返回存款地址和备注(depositAddress+depositMemo);备注用于将资金路由到你的兑换。没有备注的存款不会入账——请将备注视为地址的一部分,并且不要只显示其中一项。 - 没有测试网。 意图由拥有真实流动性的真实做市商完成,因此演练方式是先获取干运行报价,再进行小额真实兑换——而不是在测试网上来回操作。
- 通过合作伙伴门户注册并获取 API 密钥,即可免除默认集成商费用;匿名使用也可以,但会收取附加费(会体现在报价价差中)。
对于更深入的内容(报价参数、滑点、退款处理),请参考实时 1Click API 文档,而非本文档——该协议更新很快。