Skip to main content
Ace Data Cloud X402 当前围绕 USDC 结算,支持 EVM 和 Solana 两类链。不同网络的签名方式、资产地址、gas 行为和适用场景不同,接入前需要先选好网络。

网络标识使用 CAIP-2

x402 v2 的 accepts[].network 是 CAIP-2 标识,不是 base、skale 这类简称。客户端匹配网络时必须按 CAIP-2 字符串比较:

支持矩阵

upto 目前只在 Base 上提供。实际可用项以 API 返回的 accepts 为准。你也可以查看 Facilitator:
Facilitator /supported 的返回:
结果说明:
  • Base、SKALE 和 Solana 的 exact 是固定金额支付路径。
  • 只有 Base 提供 upto 后置计量路径,依赖 Permit2 approve。
  • upto 条目里的 extra.facilitatorAddress 是客户端签名时要写入 witness 的地址,必须和服务端返回值一致。

Base

Base 使用官方 USDC 合约:
exact 方案中,客户端签署 EIP-712 TransferWithAuthorization。签名内容包括:
  • from:付款钱包地址
  • to:Ace Data Cloud 收款地址
  • value:本次支付金额
  • validAfter / validBefore:签名有效时间窗口
  • nonce:32 字节随机 nonce
Facilitator 验证签名后,会在链上调用 USDC 的 transferWithAuthorization 完成转账。 Base 是最推荐的正式接入网络,尤其适合 upto 后置计量,因为 Permit2、USDC 和钱包生态都更成熟。 Base exact 验证结果示例:
结果说明:
  • API paid retry 返回模型内容 ADC_BASE_E2E_OK。
  • 链上交易已在 BaseScan 可查,区块号是 46726299。
  • 95215 atomic USDC 对应 0.095215 USDC,是这次 API 调用的实际结算金额。
订单支付 Base exact 的程序运行结果:
结果说明:
  • 平台订单最终状态是 Finished。
  • 订单 pay_id 写入同一个 Base 交易哈希。
  • 1200000 atomic USDC 对应 1.2 USDC,是旧政策下该笔 10 Credits 订单的历史实付金额;新订单不再额外享受 X402 支付方式折扣,具体签名金额以本次 402 响应为准。

SKALE

SKALE 使用 bridged USDC,签名方式与 Base 类似,也是 EIP-3009。它适合低 gas 成本的 EVM 支付场景;实际调用仍以 API 返回的 accepts 为准。 SKALE 的典型 402 accepts 中会包含:
SKALE 当前只提供 exact。如果你需要后置计量,请使用 Base upto。 SKALE exact 验证结果示例:
结果说明:
  • API paid retry 返回模型内容 ADC_SKALE_E2E_OK。
  • 交易已在 SKALE explorer 可查,区块号是 1969317。
  • 这次 exact 支付的结算金额是 0.095215 USDC。

Solana

Solana 使用 SPL USDC TransferChecked。客户端会构造一笔转账交易,签名并提交,之后把交易签名或序列化交易放入 PAYMENT-SIGNATURE envelope。 Solana 的特点:
  • 使用 Solana wallet adapter 或 base58 secret key;
  • 资产是 Solana USDC mint;
  • 当前只支持 exact;
  • Facilitator 会校验 transfer instruction 的 mint、destination、authority 和 amount。
如果使用钱包 fee payer 模式,钱包会直接提交交易,Facilitator 负责确认交易并返回 settlement 结果。 Solana exact 验证结果示例:
结果说明:
  • paid retry 已经返回 HTTP 200,并且模型输出 ADC_SOLANA_E2E_OK。
  • 公开 RPC 查询链上 signature 时可能遇到限流。
  • 因为公开 RPC 查询可能限流,这里不写 Solana explorer。需要严格对账时,请使用自有 Solana RPC 或平台侧结算记录确认交易签名。

如何选择

无论选择哪条链,都不要在客户端硬编码价格。价格由服务器返回的 accepts[].maxAmountRequired 决定。