用 x402 把任意第三方 API 包装成可付费端点:项目创意与实践指南
2026/9/17 6:17:43 网站建设 项目流程

用 x402 把任意第三方 API 包装成可付费端点:项目创意与实践指南

【免费下载链接】x402A payments protocol for the internet. Built on HTTP.项目地址: https://gitcode.com/GitHub_Trending/x4/x402

PROJECT-IDEAS.md 导读:本文基于仓库根目录的 PROJECT-IDEAS.md 展开,核心观点是——第三方 API 不需要原生支持 x402,你只需用十几行代码把任何 API 或爬虫包装在一个薄薄的 x402 服务后面,AI Agent 就能通过 HTTP 402 协议原生付费调用。读完本文,你将掌握:x402 的"包装即付费"核心模式、如何按三步流程贡献并申请最高 $3k 的微资助、仓库内可直接复用的服务器与 MCP 集成构建路径,以及从金融 Agent 到购物 Agent 的十余个落地创意。


一、核心思想:一切 API 都可以被 x402 包装

x402 是一个构建在 HTTP 之上的互联网原生支付协议(见 README.md)。它解锁了长期被保留的HTTP 402 Payment Required状态码,让"付费才能访问资源"这件事可以完全在 HTTP 层表达,而无需账号、订阅或传统支付通道。

PROJECT-IDEAS.md 开篇就点明了整个项目创意库的前提:

并非下面列出的所有第三方 API 今天都原生支持 x402——这完全没关系。把你需要的任何 API 或爬虫包装在一个薄薄的 x402 服务器后面(大约十几行代码),然后让 Agent 通过协议付费。

这句话的工程含义是:x402 的接入成本由"资源服务器"(卖家)承担,而对客户端的约束几乎为零——任何 HTTP 客户端只要会读PAYMENT-REQUIRED头、会签名一个PaymentPayload就能付款。仓库文档 docs/core-concepts/client-server.md 对两者的职责做了明确划分:

  • Client:发起请求 → 读取 402 响应中的支付要求 → 构造签名支付负载 → 带上PAYMENT-SIGNATURE头重试;
  • Resource Server(资源服务器):声明支付要求 → 验证支付负载 → 结算交易 → 返回资源。全程无状态、无会话。

因此,把一个现成 API(天气、搜索、KYC、LLM 推理、商品数据……)包装成 x402 端点,本质上就是"套一层支付中间件"。x402 协议中的典型交互流程如下(该流程图出自 README.md 的 Typical x402 flow 章节):

一次完整的"付费访问"大致经历:客户端发起请求 → 资源服务器以402 Payment Required回应并附带PAYMENT-REQUIRED头(Base64 编码的PaymentRequired对象,包含金额、币种、网络、收款地址)→ 客户端选择一种(scheme, network)组合构造并签名PaymentPayload→ 重试请求并携带PAYMENT-SIGNATURE头 → 资源服务器本地验证或委托 facilitator 的/verify端点验证 → 通过后履行请求,并通过 facilitator 的/settle端点上链结算 → 最终以200 OK返回资源,同时通过PAYMENT-RESPONSE头返回结算结果。三个核心头的语义可参见 docs/core-concepts/http-402.md:

Header方向含义
PAYMENT-REQUIRED服务器 → 客户端Base64 编码的PaymentRequired,声明可接受的 scheme、价格、网络与收款地址
PAYMENT-SIGNATURE客户端 → 服务器Base64 编码的PaymentPayload,客户端已授权支付的凭证
PAYMENT-RESPONSE服务器 → 客户端Base64 编码的SettlementResponse,结算成败的结构化反馈

这正是所有项目创意的共同底座:你包装的是"收取能力",不是"支付能力"。下面的每一个想法,本质都是"找一种值得付费的 API 调用 + 用十几行代码套上支付中间件"。


二、如何参与贡献:三步流程与微资助

PROJECT-IDEAS.md 给出了非常明确的贡献方式,任何人都可以按以下三步参与:

  1. 选择或自建项目。可以从下文的创意列表中挑一个,也可以完全自创。
  2. 搭建包装层(Stand up a wrapper)。构建一个调用目标 API 并暴露付费端点的小型 HTTP 服务(或 MCP Server)。
  3. 用视频证明(Show, don't tell)。录制一段不超过 2 分钟的视频,展示 Agent 或真人正在使用你的服务,并在 X 上 @coinbaseDev。

资助机制:项目方为能解锁新需求或新供给、且已在主网真实上线的项目提供最高 $3k 的影响型微资助(impact-based micro-grants)。这意味着一篇文章式的构想并不够——资助评审看重的是"真正跑起来"的包装服务。

如果你有想法但不确定是否符合资助范围,可以在仓库提 issue 说明你要包装的 API,项目方会协助界定范围。


三、从零搭建第一个 x402 包装服务(卖家路径)

"用十几行代码包装一个 API"并非修辞——仓库文档 docs/getting-started/quickstart-for-sellers.mdx 展示了最小集成确实是"安装依赖 → 挂一个支付中间件 → 声明受保护路由"三步。下面以 Node.js + Express 为例(完整示例在 examples/typescript/servers/express)。

3.1 安装依赖

npm install @x402/express @x402/core @x402/evm @x402/svm

对应其他技术栈:Go 使用go get github.com/x402-foundation/x402/go,Python 使用pip install "x402[fastapi]"(Solana 支持追加x402[svm])。

3.2 挂载支付中间件并声明路由

import express from "express"; import { paymentMiddleware, x402ResourceServer } from "@x402/express"; import { ExactEvmScheme } from "@x402/evm/exact/server"; import { ExactSvmScheme } from "@x402/svm/exact/server"; import { HTTPFacilitatorClient } from "@x402/core/server"; const app = express(); // 你的收款钱包地址 const evmAddress = "0xYourEvmAddress"; const svmAddress = "YourSolanaAddress"; // 测试网 facilitator(Base Sepolia + Solana Devnet) const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }); app.use( paymentMiddleware( { "GET /weather": { accepts: [ { scheme: "exact", price: "$0.001", network: "eip155:84532", // Base Sepolia payTo: evmAddress, }, { scheme: "exact", price: "$0.001", network: "solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1", // Solana Devnet payTo: svmAddress, }, ], description: "Weather data", mimeType: "application/json", }, }, new x402ResourceServer(facilitatorClient) .register("eip155:84532", new ExactEvmScheme()) .register("solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1", new ExactSvmScheme()), ), ); app.get("/weather", (req, res) => { // 这里调用你包装的第三方 API,例如天气数据服务 res.send({ report: { weather: "sunny", temperature: 70 }, }); }); app.listen(4021, () => { console.log(`Server listening at http://localhost:4021`); });

这里的关键结构是RouteConfig——它就是"包装声明"的完整接口(定义见 docs/getting-started/quickstart-for-sellers.mdx):

interface RouteConfig { accepts: Array<{ scheme: string; // 支付方案:"exact" 或 "upto" price: string; // exact 为固定价;upto 为客户端授权的最大金额 network: string; // CAIP-2 格式网络标识,如 "eip155:84532" 或 "solana:EtWTRAB..." payTo: string; // 你的钱包地址 }>; description?: string; // 资源描述(对 Agent 可读) mimeType?: string; // 响应 MIME 类型 extensions?: object; // 可选扩展(如 Bazaar 发现层) }

3.3 两种支付方案:exact 与 upto

包装不同的 API 对应不同的计费方式:

  • exact(默认):客户端支付固定价格,适用于成本事先已知的端点(一次数据查询、一份报告、一次 KYC 检查)。支持 EVM、SVM、Stellar、Aptos 及全部官方 SDK。
  • upto:客户端授权一个最大金额,但服务器只按实际用量结算。适用于按 token 计费的 LLM 生成、按耗时计费的计算任务、按字节计费的数据传输。当前仅在 EVM 网络(Permit2)可用。

使用upto只需两处改动:路由配置中scheme: "upto"(此时price表示授权上限),并在处理器中调用setSettlementOverrides指定实际结算金额(完整示例见 examples/typescript/servers/upto):

app.get("/api/generate", (req, res) => { const maxAmountAtomic = 100000; // 10 cents,6 位小数 USDC 的原子单位 const actualUsage = /* 按实际 LLM token / 计算量计算 */; setSettlementOverrides(res, { amount: String(actualUsage) }); res.json({ result: "生成内容...", usage: { actualChargedAtomic: String(actualUsage) } }); });

setSettlementOverridesamount支持三种格式:原始原子单位(如"1000"即结算 1000 个原子单位)、授权最大值的百分比(如"50%",最多两位小数,向下取整)、美元价格(如"$0.05",按注册 scheme 的代币精度换算取整)。解析后的金额必须小于等于授权上限;若为"0"则不上链、不扣费。

3.4 验证你的包装端点

包装完成后,用一条 curl 即可验证支付门禁是否生效:

  1. curl http://localhost:4021/weather—— 服务器返回402 Payment Required,并在PAYMENT-REQUIRED头中携带 Base64 编码的支付要求;
  2. 使用兼容客户端(如 docs/getting-started/quickstart-for-buyers.mdx 中描述的买家 SDK)完成签名;
  3. 携带PAYMENT-SIGNATURE头重试请求;
  4. 服务器经 facilitator 验证通过后,返回真实的 API 响应。

从源码结构看,仓库在 go/http、python/x402/http 与 typescript/packages/http 下为 Express、Fastify、Hono、FastAPI、Flask、Gin、Echo、net/http 等主流框架都提供了等价中间件,包装逻辑与上述 Express 示例完全同构,你完全可以选择自己熟悉的技术栈。


四、项目创意详解:从"支付时刻"到"建议 API"

PROJECT-IDEAS.md 的核心篇幅是一个分类清晰的创意库。每一个创意都按统一的三元组描述:做什么(What it does)、支付时刻(Payment moment)、建议包装的 API(Suggested APIs)。下面完整继承并逐项展开,帮助你评估哪些创意最容易落地。

4.1 Unstoppable Agent(不停止的 Agent)

  • 做什么:一个通过 x402 按需购买推理能力或工具调用的"打不死"的 Agent——只要有钱包,它就能持续获取算力。
  • 支付时刻:每次 API 调用。
  • 建议包装的 API:任意你喜欢的模型、去中心化托管提供商。
  • 扩展玩法:把它和其他 Agent 放进同一个沙箱,让它们共同组成一个 x402 化的"社会",可以运行各种有趣的实验。

这是最能体现 x402 "机器对机器微支付"优势的场景:Agent 的每次工具调用都是一次独立、自动、无账号的微支付,天然契合exact方案。

4.2 Financial Agents(金融类 Agent)

Wealth-Manager Trading Bot(财富管理交易机器人)

  • 做什么:执行算法交易,并汇报业绩("昨天我赚了 x%")。
  • 支付时刻:每次数据抓取、每笔交易手续费(可流式结算)。
  • 建议包装的 API:Messari、代币价格数据、网络搜索、Firecrawl 等网页抓取服务。

这里"每笔交易手续费"提示了upto方案的用武之地:交易机器人消耗的 API 数据量难以预先固定,按实际用量结算更为合理。

Prediction-Market Oracle(预测市场预言机)

  • 做什么:Agent 通过抓取线上共识事实,为任意预测市场裁定结果。
  • 支付时刻:结算时的裁定费。
  • 建议包装的 API:网络搜索与网页抓取。

Rapid KYC/AML Checker(快速 KYC/AML 检查器)

  • 做什么:花 $0.25 筛查一个钱包地址是否命中制裁名单或风险启发式规则。
  • 支付时刻:每次检查的固定费用。
  • 建议包装的 API:Chainalysis、TRM,或你自己的启发式规则。

这是最典型的 "flat per-check fee"(固定单价)场景——一次调用、一个价格、一个结算,用exact方案几行代码即可包装。

4.3 Commerce Agents(电商购物类 Agent)

Purchase-With-Crypto Shopper(加密购物者)

  • 做什么:Agent 装满购物车,通过 Coinbase Commerce 或 Crossmint 结账。
  • 支付时刻:单次结账;可选按次收取比价/抓取费。
  • 建议包装的 API:Firecrawl 抓取、Crossmint / Flxpoint 电商 API、面向长尾站点的浏览器自动化。

Agentic Commerce Proof-of-Concept(Agent 电商概念验证)

  • 做什么:端到端的商户结账流程,由 Agent 通过 x402 完成支付。

购物场景特别适合把"抓取比价"与"最终支付"拆成两个收费端点,前一个按次收取微小的抓取费,后一个在结账时一次性结算。

4.4 Knowledge & Services(知识与服务类)

Bounty-Hunter Agent(赏金猎人 Agent)

  • 做什么:扫描开放赏金任务、完成任务、领取奖励。
  • 支付时刻:入场费;按工作量的流式计算付费。
  • 建议包装的 API:Bountycaster、基础网页抓取、图像生成、代码沙箱。

One-Off Code Review Marketplace(一次性代码评审市场)

  • 做什么:任何开发者高亮代码段,支付 $5 获取专家评审。
  • 支付时刻:评审包交付时的固定费用。

Consultant Agent(顾问 Agent)

  • 做什么:找到专家、预约通话、自动付费。
  • 支付时刻:预付预约费。
  • 建议包装的 API:Cal.com、Twilio、XTMP 消息、LinkedIn 搜索。

Dynamic Endpoint Shopper(动态端点购物者)

  • 做什么:Agent 发现一个 MCP 注册表,为其中的服务付费,并串联多次调用结果。
  • 支付时刻:对每个被发现的端点按调用付费。
  • 建议包装的 API:Toolbox MCP registry + 目标 MCP。

这个创意与下文第五节高度契合:MCP Server 本身就是 x402 包装的极佳载体,Agent 可以"发现即付费即使用"。

Real-Time Fact Checker(实时事实核查器)

  • 做什么:记者高亮一条声明,Agent 查找佐证来源并按页付费。
  • 支付时刻:按页检索付费。
  • 建议包装的 API:Exa Search、Browserbase 快照。

Pay-As-You-Learn Tutor(按需付费的辅导老师)

  • 做什么:每解释一条命令收费 1 美分,会话结束时出具明细账单。
  • 支付时刻:会话结束的逐项计费——这是upto方案按实际用量结算的教科书级场景。

Weather-Triggered Donations(天气触发捐赠)

  • 做什么:当气温跌破阈值或发布龙卷风警报时,Agent 自动向本地组织捐款。
  • 支付时刻:条件触发即支付。

Facebook-Marketplace Buyer(二手市场买家)

  • 做什么:Agent 协商并购买本地二手商品。
  • 支付时刻:达成协议时的定金;取货时的尾款。
  • 建议包装的 API:网页抓取、Browserbase / Stagehand 对话、以图搜图。

Bounty Poster(赏金发布者)

  • 做什么:Agent 把自己无法完成的任务外包出去,自动发布赏金。
  • 支付时刻:每条赏金的挂单费。
  • 建议包装的 API:Craigslist API 或 Bountycaster。

五、把包装层做成 MCP Server:让 Claude 直接调用付费工具

PROJECT-IDEAS.md 在贡献流程中明确允许"HTTP 服务(或 MCP Server)"作为包装形式。仓库文档 docs/guides/mcp-server-with-x402.md 提供了完整的 MCP 集成指南,官方示例位于 examples/typescript/clients/mcp。

5.1 架构

Claude Desktop ──▶ MCP Server (x402 client) ──▶ x402 付费 API │ │ │ │ 1. 调用工具 │ 2. GET /weather │ │ │ 3. 402 + 支付要求 ◀─────│ │ │ 4. 签名支付 │ │ │ 5. 带支付重试 ─────────▶│ │ │ 6. 200 + 数据 ◀────────│ │ 7. 返回结果 ◀────────│ │

MCP Server 作为桥梁:Claude 调用工具时,MCP Server 通过@x402/axios的支付包装层自动完成"检测 402 → 解析PAYMENT-REQUIRED要求 → 用已注册 scheme 签名 → 带PAYMENT-SIGNATURE重试 → 返回付费数据"的完整握手,全程无需人工干预。

5.2 环境变量与 Claude Desktop 配置

MCP 包装服务通过环境变量注入钱包与目标端点(来源:docs/guides/mcp-server-with-x402.md):

变量说明必填
EVM_PRIVATE_KEYEVM 钱包私钥(0x 前缀)EVM 与 SVM 至少其一
SVM_PRIVATE_KEYSolana 钱包私钥(base58 编码)EVM 与 SVM 至少其一
RESOURCE_SERVER_URL付费 API 的 Base URL
ENDPOINT_PATH具体端点路径(如/weather

在 Claude Desktop 配置中注册该 MCP Server(仓库内的参考配置见 examples/typescript/clients/mcp 的 README):

{ "mcpServers": { "demo": { "command": "pnpm", "args": ["--silent", "-C", "<绝对路径>/examples/typescript/clients/mcp", "dev"], "env": { "EVM_PRIVATE_KEY": "<持有 Base Sepolia USDC 的钱包私钥>", "RESOURCE_SERVER_URL": "http://localhost:4021", "ENDPOINT_PATH": "/weather" } } } }

5.3 两种 MCP 客户端接入方式

官方示例 examples/typescript/clients/mcp/index.ts 同时提供了两条路径:

  • simple 模式(推荐):使用createx402MCPClient工厂函数一行完成配置,见 examples/typescript/clients/mcp/simple.ts:
const x402Mcp = createx402MCPClient({ name: "x402-mcp-client-demo", version: "1.0.0", schemes: [ { network: "eip155:84532", client: new ExactEvmScheme(evmSigner) }, { network: "eip155:84532", client: new UptoEvmScheme(evmSigner) }, ], autoPayment: true, onPaymentRequested: async context => { const price = context.paymentRequired.accepts[0]; console.log(`Payment required: ${price.amount} (${price.asset}) on ${price.network}`); return true; // 授权支付 }, });

调用付费工具时,callTool返回结果会附带paymentMade标记与paymentResponse(含交易哈希),让 Agent 和上层应用都能拿到可审计的支付凭证。

  • advanced 模式:手动组装@x402/axiosx402ClientwrapAxiosWithPayment,按eip155:*/solana:*分别注册 EVM、SVM scheme,适合需要精细控制签名与请求逻辑的场景(见 examples/typescript/clients/mcp/advanced.ts)。

六、上线主网前的最后几步

创意要想拿到"已上线主网"的资助资格,需要在 docs/getting-started/quickstart-for-sellers.mdx 描述的测试网基础上做四处切换:

  1. 更换 facilitator URL:从测试网https://x402.org/facilitator切换到生产 facilitator(仓库文档给出的示例为https://api.cdp.coinbase.com/platform/v2/x402或 PayAI Facilitator)。
  2. 更换网络标识符(CAIP-2):x402 v2 使用 CAIP-2 格式标识网络:
网络CAIP-2 标识符
Base Mainneteip155:8453
Base Sepolia(测试网)eip155:84532
Solana Mainnetsolana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp
Solana Devnet(测试网)solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1
  1. 注册主网 scheme:将server.register的网络参数切换为主网标识(多网络则同时注册 EVM 与 SVM scheme)。
  2. 更新收款钱包并小金额试跑:先小额测试、确认款项到账、再逐步放量。

另外,若想让你的包装端点被买家与 Agent 发现,可以在路由配置中加入 Bazaar 扩展(extensions.bazaar.discoverable: true及输入/输出 Schema),支持 Bazaar 的 facilitator 会通过/discovery/resources端点向全生态目录化你的服务——详见 docs/extensions/bazaar.mdx,这会让"动态端点购物者"这类创意真正跑通"发现 → 付费 → 使用"的闭环。


七、超出清单之外的想法

PROJECT-IDEAS.md 最后特别说明:如果想法不在清单里,项目方是灵活的——直接在 issue 里提出你的想法,说明你计划包装的 API,项目方会协助你界定范围。结合本文第三节的"包装四步"与第五节的 MCP 路径,任何"一次值得付费的 API 调用"都可以快速原型化:选好目标 API → 用十几行中间件代码包装 → 挂一个测试网 facilitator → 录制 2 分钟演示视频。这正是 x402 生态最鼓励的贡献方式:先用最小成本让一个付费端点跑起来,再谈资助与规模化

【免费下载链接】x402A payments protocol for the internet. Built on HTTP.项目地址: https://gitcode.com/GitHub_Trending/x4/x402

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询