简单理解 x402 支付协议

x402 支付协议是一种基于 HTTP 的链无关支付标准,利用现有的 402 Payment Required HTTP 状态码来指示资源访问需要付款。它旨在为客户端和服务器提供无需许可、安全、无 gas 费用的支付体验,并且集成简单。

基础概念

  • 资源:任何接受 HTTP/HTTPS 请求的网络资源,如网页、文件服务器、API 等。
  • 客户端:想要为资源付款的实体。
  • 资源服务器:提供 API 或其他资源的 HTTP 服务器。
  • 促进服务器:帮助验证和执行链上支付的服务器。

x402 协议的主要特点

  • 无需许可:客户端和服务器无需许可即可使用。
  • 无 gas 费用:客户端和资源服务器无需支付 gas 费用。
  • 简单集成:资源服务器只需一行代码,客户端只需一个函数。
  • 可扩展:支持不同支付流程和区块链。

x402 协议流程

  1. 客户端请求资源:客户端向资源服务器发送 HTTP 请求。
  2. 资源服务器响应:资源服务器返回 402 Payment Required 状态码和 Payment Required Response JSON 对象。
  3. 客户端选择支付方式:客户端从响应中选择一个支付方式,创建 Payment Payload。
  4. 客户端发送支付请求:客户端在 X-PAYMENT 头中包含 Payment Payload 发送请求。
  5. 资源服务器验证支付:资源服务器验证支付有效性,可能通过促进服务器。
  6. 促进服务器处理支付:促进服务器验证并在区块链上结算支付。
  7. 资源服务器返回资源:如果支付成功,资源服务器返回资源和 X-PAYMENT-RESPONSE 头。

示例代码

javascript 复制代码
// 使用 paymentMiddleware 接受数字美元
app.use(
  "/your-endpoint",
  paymentMiddleware("$0.10", "0x209693Bc6afc0C5328bA36FaF03C514EF312287C")
);

支付方案(Schemes)

  • exact 方案:转移固定金额,例如支付 1 美元阅读文章。
  • upto 方案:根据资源使用情况转移最多固定金额,例如生成 LLM 令牌。

运行示例

  1. 克隆示例仓库。
  2. 安装依赖。
  3. 分别运行促进服务器、资源服务器和客户端。
bash 复制代码
cd example
npm install
npm run facilitator
npm run resource
npm run client

测试

  1. 安装依赖。
  2. 创建 .env 文件并配置。
  3. 运行测试。
bash 复制代码
cd packages/typescript
npm install
npm run test
相关推荐
xu_wenming5 小时前
嵌入式软件架构中的6种解耦艺术
c语言·驱动开发·嵌入式硬件·架构
ZGIAI5 小时前
ZGI Workflow 变量池:接住节点输出
人工智能·架构
ZGIAI6 小时前
ZGI 记忆隔离:多人共用不串号
人工智能·架构
东风破_6 小时前
从输入 juejin.cn 到看到页面:DNS、Nginx、服务器集群与 CDN 到底在做什么?
后端·mysql
东风破_6 小时前
从 0 设计一个博客数据库:用户、头像与文章表应该怎么建?
后端·mysql
星栈独行6 小时前
决定 Agent 交付下限的「操作系统」:Harness 六层架构拆解
人工智能·架构
大鸡腿同学7 小时前
黄仁勋点透的 AI 真相:能实现你知道但做不到的,却实现不了你不知道的
后端
Cicada1287 小时前
配置文件格式选择指南:JSON、YAML、TOML、INI、ENV、XML
架构
FfHUCisI7 小时前
Go 编译过程全景
开发语言·后端·golang
FfHUCisI7 小时前
Golang 语法分析与 AST:Parser 与 go/ast
开发语言·后端·golang