Coinbase 的 x402 协议 其实是一次极具前瞻性的尝试——它把“互联网原生加密支付”直接融入了 HTTP 协议本身,让任何网站、API 或 AI 服务都可以“即调即付”,不再需要用户注册、信用卡或第三方支付 SDK。
下面我会分成四部分详细讲解:

一、x402 协议原理详解

  1. 背景与核心思想

HTTP 协议在设计时预留了一个从未被正式使用的状态码:

402 Payment Required

x402 的核心创新,就是让这个状态码真正“活”起来,并定义了一套标准字段、加密签名和结算流程,用于实现链上支付。
👉 也就是说,当客户端请求一个资源(网页、API、内容)时,服务器可以说:“要先付点钱我才给你看。”

  1. 工作流程(协议级别)

(1) 客户请求资源

GET /premium-article/42 HTTP/1.1
Host: example.com
Accept: application/json

(2) 服务器要求付款

服务器发现这是收费内容,就返回:

HTTP/1.1 402 Payment Required
Content-Type: application/x402+json

{
  "version": "1.0",
  "price": {
    "amount": "1.00",
    "currency": "USDC",
    "chain": "base"
  },
  "receiver": "0xabc123...def",
  "nonce": "e03a9d",
  "description": "Access to premium article #42",
  "callback_url": "https://example.com/x402/verify"
}

这告诉客户端:
• 需要支付 1 USDC
• 支付到 Base 链上指定的接收地址
• 支付完成后调用 callback_url 通知验证

(3) 客户端执行支付

客户端钱包或 SDK 在链上发送交易,然后生成一个 x402 支付凭证(包含 tx hash、签名等):

{
  "tx_hash": "0x0ae1...",
  "payer": "0x9876...",
  "signature": "0xabcd...",
  "amount": "1.00",
  "currency": "USDC"
}

客户端随后重新发起请求:

GET /premium-article/42 HTTP/1.1
Host: example.com
X-Payment: <base64-encoded-payment-payload>

(4) 服务器验证支付

服务器收到 X-Payment 头后:
• 验证签名
• 检查链上交易是否成功
• 核对金额、接收地址
验证通过后返回:

HTTP/1.1 200 OK
X-Payment-Response: {"status":"confirmed","tx_hash":"0x0ae1..."}
Content-Type: text/html

<h1>Here is your premium content!</h1>

至此,整个支付链闭环完成。
整个流程中:
• 没有跳转到第三方网页;
• 没有输入信用卡;
• 一切都是标准 HTTP 交互。

二、x402 协议的结构定义

请添加图片描述

三、在网站中实现订阅支付

假设你要做一个类似 “Medium 会员内容” 或 “AI 服务订阅” 的网站,用 x402 实现如下:

  1. 你的系统架构
[用户浏览器](HTTP请求)
[前端网站 + 钱包集成JS SDK](支付请求)
[后端API服务器 with x402中间件][Coinbase facilitator / Base链节点]

  1. 订阅支付逻辑设计

方案 A:一次性访问付费(按次购买)
1. 用户点击“阅读全文”;
2. 浏览器发请求;
3. 服务器返回 402;
4. 钱包 SDK 自动弹窗、完成链上支付;
5. 钱包在成功后携 X-Payment 重新请求资源;
6. 服务端验证支付成功,返回完整内容。

✅ 优点:无登录、无账号体系、真正的 Web3 原生体验。
⚠️ 缺点:链上确认时间稍长(取决于链),每次都需支付 gas。

方案 B:周期订阅(会员制)
1. 用户购买会员时触发 x402 支付请求;
2. 成功后服务器将 wallet address 与订阅状态存入数据库;
3. 后续访问会员内容时,后端查询状态无需再发 402。

实现逻辑:

# Flask / FastAPI示意
@app.route("/premium/<article_id>")
def premium(article_id):
    wallet = get_wallet_from_header()
    if not is_subscribed(wallet):
        return make_x402_response(price="10.00", period="30d")
    return render_article(article_id)

定期检查 subscription 是否过期,也可以要求用户再走一次 x402 支付流程续费。

方案 C:AI 接口/微支付

适用于 API 调用或 AI 服务:
• 每 1 次 API 调用 = 0.01 USDC
• 调用者的钱包通过 x402 自动付费
• 实现“每次调用即付费”

四、技术落地与工具

  1. 官方 SDK 与中间件
Coinbase 已提供开源 SDK:
	•	Node.js / TypeScript

npm install @coinbase/x402


	•	Python
(即将推出,可自行封装验证逻辑)

SDK 示例(Node):

import { x402Middleware } from "@coinbase/x402";

app.use(
  "/premium",
  x402Middleware({
    price: { amount: "1.00", currency: "USDC", chain: "base" },
    receiver: "0xabc123...",
  })
);

  1. 钱包支持
    • Coinbase Wallet(原生支持)
    • 任何 EVM 兼容钱包都可用
    • 支付方式通常为 USDC 稳定币

  1. 验证节点(facilitator)

开发者不需要直接跑区块链节点,可以使用:
• Coinbase CDP Facilitator API
负责代查交易状态、签名验证。
• 或者自建验证逻辑:
• 用 Ethers.js / Web3.py 查 tx receipt;
• 校验金额与收款方。

五、总结
请添加图片描述

✳️ 示例应用灵感

请添加图片描述

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐