/verify 和 /settle。
Ace Data Cloud 的生產 Facilitator 地址為:
v2 wire 約定
Ace Data Cloud 的 X402 鏈路已全量使用官方 x402 v2,不再接受 v1 的X-Payment 請求頭。接入時需要注意三點:
- 請求頭是
PAYMENT-SIGNATURE,值是 base64 編碼的 JSON envelope。 - envelope 頂層必須是
x402Version: 2,並用accepted對象聲明本次選擇的scheme和network。 network使用 CAIP-2 標識(如eip155:8453),不能寫base這類簡稱。
PAYMENT-REQUIRED 響應頭,值是同一份挑戰內容的 base64 編碼,便於客戶端在不解析 body 的情況下讀取支付要求。
核心接口
GET /supported
查看支持的網絡和 scheme:
network使用 CAIP-2 標識,不是base、skale這類簡稱。/supported表示 Facilitator 具備對應驗證與結算能力。- Base、SKALE 和 Solana 都支持
exact;upto目前只在 Base 上提供。 signers是 Facilitator 用於提交結算交易的地址。- 某個具體 API 是否允許這些選項,仍以該 API 的 402
accepts為準。
POST /verify
驗證客戶端傳來的 PAYMENT-SIGNATURE 是否滿足某個 payment requirement。
請求體:
paymentRequirements 字段是 scheme、network、asset、amount、payTo、maxTimeoutSeconds 和 extra,金額字段是 amount。API 402 響應的 accepts[] 裡還會額外返回 maxAmountRequired 供客戶端讀取上限,但它不屬於 Facilitator 請求體的字段。
成功響應:
PAYMENT-RESPONSE 響應頭解碼後包含 settlement 結果。Base 訂單支付的程序運行結果:
success=True表示 Facilitator settlement 成功。transaction是鏈上交易哈希,訂單的pay_id也寫入同一個值。- explorer 上可以看到
1200000atomic USDC 的 Base USDC 轉帳。 errorReason=None表示這次 settlement 沒有返回業務錯誤。
isValid 為 false。業務側應該讀取 invalidReason,而不是只看 HTTP 狀態碼。
POST /settle
把已經驗證過的授權結算到鏈上。
請求體和 /verify 基本一致。upto 的區別是:paymentRequirements.amount 在 settle 時改寫為實際結算金額;簽名上限由 Facilitator 在 verify 階段記錄,settle 時校驗實際金額不得超過該上限。
成功響應:
upto 實際金額為 0,transaction 可能為空字符串,表示無需發鏈上交易。
Ace Data Cloud Gateway 如何使用 Facilitator
Ace Data Cloud API Gateway 的鏈路如下:- 客戶端第一次請求 API,不帶
Authorization和PAYMENT-SIGNATURE。 - Gateway 計算請求的預估價格,返回 402 和
accepts。 - 客戶端簽名後帶
PAYMENT-SIGNATURE重試。 - Gateway 解碼
PAYMENT-SIGNATURE,選擇匹配的 payment requirement。 - Gateway 調用 Facilitator
/verify。 /verify成功後,Gateway 放行請求到目標 API。- 目標 API 返回後,Gateway 在
/record階段調用 Facilitator/settle。 - Gateway 把鏈上交易哈希寫入使用記錄 metadata。
exact在步驟 7 結算簽名金額;upto在步驟 7 根據真實用量寫入amount,再結算實際金額。
自己的 API 如何接入
如果你要讓自己的 API 支持 X402,可以按這個結構實現:- 為每個付費接口準備
paymentRequirements,包含網路、金額、收款地址、資產地址和簽名 domain。 - 如果請求沒有
PAYMENT-SIGNATURE,返回 HTTP 402 和accepts。 - 如果請求有
PAYMENT-SIGNATURE,Base64 解碼得到paymentPayload。 - 呼叫 Facilitator
/verify。 - 驗證成功後執行業務邏輯。
- 業務成功後呼叫 Facilitator
/settle。 - 保存
payer、transaction、amount、network以便對帳。
paymentRequirements 調 /verify 和 /settle,不要信任客戶端回傳的金額、收款地址或資產地址。
重放保護
Facilitator 會記錄 nonce。相同 nonce 的授權不能重複驗證和結算。 這意味著:- 客戶端每次請求都應該簽一個新的 envelope;
- 如果
/settle已提交交易但暫時沒有確認,可以用相同 nonce 重試/settle做幂等對帳; - 不要把同一個
PAYMENT-SIGNATURE快取後用於多次 API 呼叫。

