Web3 新手系列:探索鏈上支付新協議 —— x402
Coinbase 前幾日公佈咗新嘅支付協議:x402。由於 x402 由 Coinbase 發起,所以理所當然支援 Base Sepolia,並且預設可用。同時亦已支援 Solana 鏈,證明咗 x402 並唔綁定某條鏈。

https://github.com/coinbase/x402
為咗搞清楚流程,我開咗一個新倉庫(https://github.com/gin-lsl/x402-solana-demo),裏面包含全部嘅 Server、Client 同 Facilitator。我揀咗 Koa 做基礎框架,實現 client 透過支付 Devnet 嘅 USDC(自訂 Token)嚟獲取伺服器提供嘅某個接口嘅訪問權限。
一些說明
我用 spl-token 工具創建咗相應嘅 token,可以喺呢度睇到:
https://solscan.io/token/9gKBTRXgVTszU31A12oJKKSy6aje8LyoVvNfSimembHo?cluster=devnet
揀 Solana 係因為呢條鏈對開發者好友好,提供幾乎無限量嘅測試代幣畀所有人開發同測試,冇任何門檻:唔需要登入、唔需要綁定社交帳號、唔需要錢包喺主網有餘額。
運行項目:
- 創建一個
.env檔案並填寫所需環境變數。 - 執行以下指令:
# 運行 Server ( 以及 Facilitator)
pnpm dev
# 運行 Client
pnpm pay:fetch代碼解釋
呢個示範為求簡單,將所有組件放埋一齊。主要檔案:
solana.ts
- 提供
/solana/get-balance接口(假設係需要支付一小筆錢嘅「有價值」接口)。 - 扮演 Server 角色,處理業務邏輯(對應流程圖步驟 5–8,尤其係步驟 7)。
- 即使開發者唔熟 Web3,亦可以唔改業務代碼下接入 Web3 支付。
facilitator.ts
- 實現 Facilitator 功能,提供
/supported、/verify、/settle接口,用嚟查詢支援嘅鏈、驗證交易數據同鏈上結算。 - 需要私鑰支付鏈上交易費用(對應步驟 9–10)。
- 代碼標準化,可直接用官方模板。非 Base 鏈需調整:
- 未支援鏈(如 Solana)要模擬交易做驗證。
- 用
@solana/kit透過 RPC 發送交易(sendTransaction)同確認結果(waitForRecentTransactionConfirmation)。
x402-middleware.ts
- 連結 Server 同 Facilitator 嘅 Koa 中介軟體。
- 守衛需付款接口,自動回傳 402 狀態,並轉發
/verify//settle請求。 - 示範簡化設定:
maxAmountRequired設到極大,避免客戶端驗證錯誤。asset用自訂 Devnet token(非 x402 內建)。主網上應改用官方 USDC 地址。
- 同 Express(覆寫
Response實現洋蔥模型)唔同,Koa 原生支援verify → 業務邏輯 → settle流程。
payment-client-fetch.ts
- Client 角色(步驟 1–4)。用
x402-fetch工具:
- 自動處理 402 狀態。
- 用錢包私鑰生成簽名並重新發送請求。
- 流程:直接請求接口 → 402 錯誤 → 讀取參數 → 簽署交易 → 用
X-PAYMENTHeader 重新發送。
運行指令:
# 運行服務
pnpm dev
# 運行客戶端
pnpm client客戶端執行結果及日誌:
> pnpm run --parallel client
server client$ tsx src/payment-client-fetch.ts
server client: [dotenv@17.2.3] injecting env (4) from .env -- tip: 🔄 add secrets lifecycle management: https://dotenvx.com/ops
server client: headers: Headers {
server client: vary: 'Origin',
server client: 'access-control-allow-origin': '*',
server client: 'content-type': 'application/json; charset=utf-8',
server client: 'content-length': '399',
server client: date: 'Fri, 31 Oct 2025 16:16:10 GMT',
server client: connection: 'keep-alive',
server client: 'keep-alive': 'timeout=5'
server client: }
server client: body: {
server client: "success": true,
server client: "data": {
server client: "address": "8dQE449ozUAS2XPyvao6hEpkAtGALo1A1q4TApayFfCo",
server client: "balance": {
server client: "lamports": "14095638085",
server client: "sol": "14.095638085"
server client: }
server client: },
server client: "paymentInfo": {
server client: "amount": 0.1,
server client: "currency": "SOL",
server client: "settled": {
server client: "success": true,
server client: "payer": "8jDsKhqYn15fhpMXMFcZJMZVkzDMAVvUgh29y2ws9iJi",
server client: "transaction": "5GJDV8AugQFJqWJYmgkmUebyYvhcZZNEq3XQ1MunXKamtgFwo7HvdjZFq55FJ77AF1gDXnJ6ogSDx27VWmPeSo5r",
server client: "network": "solana-devnet"
server client: }
server client: }
server client: }
server client: no x-payment-response header, status: 200
server client: Done思考
如果話 Web3 開發者之前嘅努力係為咗降低普通用戶使用門檻(支付、投資等),咁 x402 就係為咗降低 Web2 開發者接入 Web3 支付渠道嘅門檻。
雖然 x402/client 嘅工具好用,但 x402 對開發者同服務提供方嘅意義可能更大。
大規模應用挑戰:
- 大公司內部結算系統整合新標準需時,且要考慮監管風險,可能繼續用複雜傳統方案。
- Node RPC 提供方或更青睞 x402,用嚟提供進階 API(如交易加速服務)。
最後注意:
x402 係基礎協議標準,價值在於推動生態圍繞統一規範發展。應理性看待新標準,避免陷入炒作陷阱。
關於 ZAN
ZAN 是螞蟻數科旗下 Web3 科技品牌,致力於 Web3 應用優化--降低成本、增強安全和提升效能,圍繞 Web3 應用全生命週期,提供可靠、穩定安全、客製化的產品和服務。依托 AntChain OpenLabs 的 TrustBase 開源開放技術體系,ZAN 擁有 Web3 領域獨特的優勢和創新能力,為 Web3 社群的區塊鏈應用開發、企業和開發者的 Web3 應用提供了全面的技術產品和服務,其中包括節點服務(ZAN Node Service)、zk 加速(ZAN PowerZebra)、身分驗證eKYC(ZAN Identity)以及智慧合約稽核(ZAN Smart Contract Review)等。