跳转到主要内容
本快速开始将带你使用 标准托管流程 完成一次完整的跨链 USDC 转账(Base → Arbitrum),这是大多数集成的推荐路径。完成后,你将已经请求了报价、授权了代币、在链上开启了订单,并将其追踪至结算。 报价端点会返回一笔可直接签名、用于开启订单的交易——你无需自己构造任何内容。 由于托管流程需要链上交易,整个流程使用 TypeScript 配合 viem。你需要一个连接到 Base 的 public client,以及一个持有 USDC 的账户(钱包)。同样的流程也适用于源链为 Tron 和 Solana 的情况——只是签名所用的库不同;参见创建并提交订单。
无需 API 密钥。所有集成方端点均开放,并提供宽松的速率限制。详见身份验证。

前置条件

托管流程涉及链上交易(授权代币和发送开启交易)。我们使用 viem 与 Base 网络交互,但任何与 EVM 兼容的库的用法都相同。
TypeScript

托管流程

标准托管集成是一个 4 步过程:请求报价、授权代币、发送报价返回的开启交易,并将订单追踪至结算。
1

请求报价

以 CAIP-2 链 + 原生地址对的形式,携带用户的输入和目标输出,调用 POST /api/v1/integrator/quote/request。此示例从 Base 向 Arbitrum 发送 10 USDC。
TypeScript
响应包含一个按最优价格排序的报价数组;最优报价位于索引 0。每条报价都携带 order.openIntentTx——用于开启订单的交易——以及 order.checks.allowances,即它所需的授权。完整的请求和响应参考请参阅请求报价。
2

授权代币

覆盖 order.checks.allowances 中的每一项:订单开启时,输入结算器需要获得转移你代币的许可。
TypeScript
你也可以使用 Permit2 进行无 gas 授权。托管支持通过 Permit2 签名进行存款。详见 Escrow 存款方式。
3

发送开启交易

发送来自报价的交易。它会在输入结算器上调用 open(),将你的代币锁定进托管,并将意图广播给求解器。
TypeScript
open() 调用会将你的代币转入托管,并发出一个 Open 事件。求解器和订单服务器会自动检测该事件。无需单独的提交步骤。
想自己构造 StandardOrder——自定义截止时间、多个输出、交付时调用?请参阅创建并提交订单以了解订单结构和验证规则。
4

追踪订单

轮询 GET /orders/status 直到订单达到终态。使用来自 Open 事件的 onChainOrderId。
TypeScript
一旦为 Settled,用户就已在 Arbitrum 上收到 USDC,求解器也已从托管中获得报酬。Refunded 是另一种终态:没有求解器填充该订单,输入资金已退还给用户。从订单服务器看到该订单的那一刻起,你的订单就会报告为 Signed,包括 Open 交易刚刚确认之后——开启本身不会产生一个独立的状态。完整生命周期请参阅跟踪订单状态。

刚刚发生了什么

  1. 请求了报价。 订单服务器从其求解器网络返回了定价,外加一笔可直接签名、用于开启订单的交易。
  2. 授权了代币。 按照报价的授权检查,你为托管合约授权了转移你 USDC 的权限。
  3. 开启了订单。 发送报价中的交易,把代币锁定进了托管,并通过 Open 事件将意图广播给求解器。
  4. 求解器完成交付。 一个求解器通过在 Arbitrum 上交付 USDC 履行了订单。
  5. 结算完成。 预言机验证了交付,托管将锁定资金释放给求解器。

后续步骤

API 概览

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

请求报价

exact-input、exact-output,以及 Solana 和 Tron 的报价方式

Compact 订单

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

追踪订单状态

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