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 付費重試返回模型內容 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 驗證結果範例:
結果說明:
  • 付費重試已經返回 HTTP 200,並且模型輸出 ADC_SOLANA_E2E_OK。
  • 公開 RPC 查詢鏈上 signature 時可能遇到限流。
  • 因為公開 RPC 查詢可能限流,這裡不寫 Solana explorer。需要嚴格對帳時,請使用自有 Solana RPC 或平台側結算記錄確認交易簽名。

如何選擇

無論選擇哪條鏈,都不要在用戶端硬編碼價格。價格由伺服器返回的 accepts[].maxAmountRequired 決定。