简单理解 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
相关推荐
ALex_zry2 小时前
Go核心特性与并发编程
开发语言·后端·golang
是麟渊3 小时前
【大模型面试每日一题】Day 27:自注意力机制中Q/K/V矩阵的作用与缩放因子原理
人工智能·线性代数·自然语言处理·面试·职场和发展·架构
三枪一个麻辣烫3 小时前
github公开项目爬取
github
Kookoos3 小时前
ABP VNext + Orleans:Actor 模型下的分布式状态管理最佳实践
分布式·后端·c#·.net·.netcore·abp vnext
PWRJOY3 小时前
Flask 会话管理:从原理到实战,深度解析 session 机制
后端·python·flask
文火冰糖的硅基工坊4 小时前
[创业之路-374]:企业战略管理案例分析-战略制定/设计-市场洞察“五看”:看宏观之当前的国际环境、国家产业政策中的机会与风险
人工智能·华为·架构·系统架构·跨学科
述雾学java4 小时前
Spring Boot是什么?MybatisPlus常用注解,LambdaQueryWrapper常用方法
java·spring boot·后端
程序员buddha6 小时前
SpringBoot多环境配置文件切换
java·spring boot·后端
twj_one7 小时前
SpringBoot+ELK 搭建日志监控平台
spring boot·后端·elk
咖啡啡不加糖7 小时前
Sentinel原理与SpringBoot整合实战
spring boot·后端·sentinel