Skip to main content
本快速开始将带你使用 标准托管流程 完成一次完整的跨链 USDC 转账(Base → Arbitrum),这是大多数集成的推荐路径。完成后,你将已经请求了报价、授权了代币、在链上开启了订单,并将其追踪至结算。 如果你需要 无 gas 的链下订单提交 或正在基于资源锁进行构建,请改为参见 Compact 订单指南。 由于托管流程需要链上交易,整个流程使用 TypeScript 配合 viem。你需要一个连接到 Base 的 public client,以及一个持有 USDC 的账户(钱包)。
无需 API 密钥。所有集成方端点均开放且无速率限制。详见身份验证

前置条件

托管流程涉及链上交易(授权代币和调用托管合约以锁定资金)。我们使用 viem 与 Base 网络交互,但任何与 EVM 兼容的库(ethers.js、web3.js 等)的用法都相同。
TypeScript
下面的代码使用了来自系统架构参考的合约地址。这些地址在所有受支持的 EVM 链上都相同。

托管流程

标准托管集成是一个 4 步过程:请求报价、授权代币、在链上开启订单,并将其追踪至结算。
Intents API 使用可互操作地址(EIP-7930)。有关编码细节,请参见请求报价
1

请求报价

使用用户的输入和目标输出调用 POST /quote/request。此示例从 Base 向 Arbitrum 发送 10 USDC。
TypeScript
可互操作地址前缀编码了链。0x00010000022105 是 Base(8453),0x0001000002A4B1 是 Arbitrum(42161)。详见可互操作地址编码响应包含一个按最优价格排序的报价数组。最优报价位于索引 0。在后续步骤中构造订单时,请使用最优报价中的 preview.outputs[0].amount
2

授权代币

在开启托管之前,InputSettlerEscrow 合约需要获得转移你代币的许可。请在 Base 上授权 USDC。
TypeScript
你也可以使用 Permit2 进行无 gas 授权。托管支持通过 Permit2 签名进行注册。详见输入结算
3

构造并在链上开启订单

从报价响应构建一个 StandardOrder,并在 InputSettlerEscrow 合约上调用 open()。这会锁定你的代币,并将意图广播给解算器。
TypeScript
open() 调用会将你的代币转入托管,并发出一个 Open 事件。解算器和订单服务器会自动检测该事件。无需单独的提交步骤。
fillDeadline 设置得远早于 expires。解算器必须在 fillDeadline 之前交付;expires 是最终截止时间,超过该时间后,如果订单未被履行,你可以申请退款。
4

追踪订单

轮询 GET /orders/status 直到订单达到终态。使用来自 Open 事件的 onChainOrderId
TypeScript
一旦为 Settled,用户就已在 Arbitrum 上收到 USDC,解算器也已从托管中获得报酬。

刚刚发生了什么

  1. 请求了报价。 订单服务器根据你的输入/输出对,从其解算器网络返回了定价。
  2. 授权了代币。 托管合约获得了转移你 USDC 的授权。
  3. 开启了订单。 代币被锁定于托管中,意图通过 Open 事件广播给解算器。
  4. 解算器完成交付。 一个解算器通过在 Arbitrum 上交付 USDC 履行了订单。
  5. 结算完成。 预言机验证了交付,托管将锁定资金释放给解算器。

后续步骤

API 概览

完整的端点参考、基础 URL 和身份验证

请求报价

exact-input、exact-output 和独占报价细节

Compact 订单

通过 The Compact 进行链下无 gas 订单提交

追踪订单状态

链上事件和订单服务器状态轮询