Skip to main content
本教程用一個最小的 API 請求說明 Ace Data Cloud X402 的完整流程。目標不是先寫複雜代碼,而是先看懂:為什麼第一次請求會返回 402、accepts 裡有什麼、PAYMENT-SIGNATURE 又是怎樣讓同一個 API 請求變成已支付請求的。

準備工作

你需要準備: X402 調用 Ace Data Cloud API 時不需要 API Token。SDK 第一次請求不帶 Authorization,Gateway 會返回 402 Payment Required 和支付要求;SDK 簽名後自動重試。

安裝 SDK

源碼和包地址: TypeScript:
Python:
如果要使用 Solana,還需要安裝對應依賴:
Python 版本的 Solana signer 依賴已經包含在 acedatacloud-x402 中。 乾淨臨時環境的安裝和導入檢查輸出:
結果說明:
  • npm 包和 PyPI 包都是真實發布包,不是文檔裡的佔位名稱。
  • acedatacloud-x402[cli] 會安裝 CLI,approve-permit2 子命令可用於 upto 場景的 Permit2 授權。

第一次請求會返回 402

你可以先用 curl 看看未支付請求返回什麼。下面示例不會產生扣費,因為它沒有攜帶 PAYMENT-SIGNATURE:
返回體會包含 accepts 陣列,常見結構如下:
同一份挑戰內容也會以 base64 形式放在 PAYMENT-REQUIRED 響應頭中,便於客戶端不解析 body 就讀取支付要求。 生產 API 未支付請求的程序輸出摘要如下:
結果說明:
  • 第一次請求沒有攜帶 Authorization 或 PAYMENT-SIGNATURE,所以返回 HTTP 402,不會產生扣費。
  • accepts 是本次請求唯一可信的簽名依據,包含可選網路、scheme、金額上限、收款地址和資產地址。
  • network 是 CAIP-2 標識,客戶端選網時必須按 CAIP-2 字符串匹配。
  • 這次 gpt-4o-mini 最小聊天請求的上限金額是 95215 atomic USDC,也就是 0.095215 USDC。
  • 每次請求都應該讀取當次 402 響應,不要把示例金額硬編碼進業務代碼。
字段含義:

用 SDK 完成支付重試

下面是最小 TypeScript 示例。它指定 network: 'skale',handler 會從本次 402 響應中選擇 SKALE 的 payment requirement;實際金額和收款地址仍以 accepts 為準:
同一鏈路用 TypeScript SDK 的程序運行結果:
結果說明:
  • content ADC_TS_SDK_X402_OK 是模型按提示詞返回的固定字符串,說明付費重試後請求真實進入了模型 API。
  • payer 是本地簽名錢包地址,私鑰沒有發送給 Ace Data Cloud。
  • SDK 完成了 402 解析、PAYMENT-SIGNATURE 簽名和原請求重試;業務代碼仍按普通 SDK 調用方式寫。
這段代碼背後發生了四步:
  1. SDK 發送一次普通 API 請求,不帶 Authorization。
  2. Gateway 返回 402 Payment Required 和 accepts。
  3. createX402PaymentHandler 選擇 network = 'skale' 的 payment requirement 並簽出 PAYMENT-SIGNATURE。
  4. SDK 用同一個請求體重試,Gateway 調用 Facilitator 驗證並結算後放行到目標 API。

查看 Facilitator 支持能力

X402 API 不依賴資源目錄。客戶端直接調用已知 API,並以該請求實時返回的 402 Payment Required 和 accepts 作為唯一價格與簽名依據。 Facilitator 的能力聲明位於:
它只描述 /supported、/verify、/settle 和當前啟用的支付網絡,不列出 API 資源。 Ace Data Cloud 的生產 Facilitator 地址為:
可以查看它支持哪些網絡和 scheme:
返回的 kinds 會列出 Facilitator 支持的網絡和 scheme。實際調用時仍以 API 返回的 accepts 為準。 Facilitator /supported 輸出:
結果說明:
  • /supported 說明 Facilitator 具備這些網絡和 scheme 的驗證、結算能力。
  • Base、SKALE 和 Solana 都支持 exact;upto 目前只在 Base 上提供。
  • 具體 API 是否允許某個網絡,仍以該 API 的 402 accepts 為準。