mcpField
X
x402 Ethereum RPC

x402 Ethereum RPC

本地服务
402rpc.com金融数据19 周前更新

关于 x402 Ethereum RPC

x402 Ethereum RPC 是用于向 Ethereum 节点出售 JSON-RPC 访问权的 Cloudflare Worker 模板,按次以 Base 上的 USDC 收费。它按请求工作量定价,并检查请求和节点错误,避免无法提供答案时收费。

主要功能

  1. 01按方法和请求收费
  2. 02根据请求工作量调整价格
  3. 03付款前拒绝无效请求
  4. 04将节点拒绝转换为不收费错误
  5. 05通过公共 RPC 转发原始交易

适用场景

  1. 01提供 Ethereum 节点的付费访问
  2. 02按工作量为高成本 RPC 方法定价
  3. 03在主节点后设置付费备用 RPC
  4. 04节点无法响应时避免收费

MCP 相关

网关包含 MCP 服务,供 Agent 将 RPC 服务作为工具使用。README 未说明 MCP 端点或配置方式。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

x402-rpc-gateway

一个 Cloudflare Worker,可通过 x402 按次出售对自有 Ethereum 节点的 JSON-RPC 访问权限。无需账户、API 密钥或账单:调用方在 Base 上签署 USDC 授权,即可在同一次交互中获得响应。

正在 402rpc.com 上运行。

为什么要做这个项目

出售 RPC 访问权限通常意味着还没处理第一个请求,就得先搭建注册、计费、密钥轮换和速率套餐。x402 免去了这些工作——但只按次收费的简单网关会带来两个新问题,本模板解决了这两个问题。

调用方绝不能为无法提供的响应付费。 每个请求都会在付费墙之前进行检查。被屏蔽的命名空间、低于历史区块下限的区块、范围过宽的日志请求——这些都会返回 HTTP 400;对于 400 或更高的响应,x402 不会结算。节点故障也会出于同样的原因返回 502。

统一定价会造成亏损。 eth_getLogs 跨越一万个区块的成本,是 eth_blockNumber 的数百倍。这里的价格会根据方法的实际开销调整。

节点自身的拒绝会以 HTTP 200 返回。 节点表示“该区块没有可用状态”或“单次响应中的日志过多”时,会返回状态码为 200 的 JSON-RPC 错误;而 x402 会对 200 响应进行结算。如果不加处理,客户就会为你无法提供的结果付费。本模板会将这类错误转换为 4xx,避免结算。真正的答案类错误,例如 execution reverted,仍然会收费。

你将获得

  • 可配置的按方法定价,并设有上限,避免批量请求造成意外费用
  • 在收费前拒绝请求的策略层,并提供调用方可据此采取行动的原因
  • 通过公共 RPC 中继原始交易,而非使用你自己的节点——请参阅“隐私”
  • 发现元数据,方便 Agent 无需人工介入即可找到并使用服务
  • 通过 Accept 标头为人类提供落地页,为机器提供 JSON
  • MCP 服务,任何 Agent 都能将其用作工具
  • 一个回退示例:只需一行,即可将网关添加为主服务之后的付费备用服务

设置

npm install
cp wrangler.jsonc.example wrangler.jsonc   # edit the vars
npx wrangler deploy

至少需要设置 PAY_TO_ADDRESS、ORIGIN_URL 和 PUBLIC_URL。其他所有配置都有可用的默认值。

对于主网,你需要 Coinbase CDP 凭据——公共 x402.org facilitator 仅服务于测试网:

npx wrangler secret put CDP_API_KEY_ID
npx wrangler secret put CDP_API_KEY_SECRET

没有这些凭据时,Worker 会有意返回 503,而不会发出无法结算的付款挑战。

文档不会告诉你的三件事

facilitator 设有未公开的最低金额。 约 $0.0002 的金额会被拒绝,并返回 amount_too_low;$0.001 则可以通过。因此,差异化定价只能从约十分之一美分起向上设置。

Bazaar 只索引 x402 version 2。 我检查的 20 个资源全部运行 v2,没有一个运行 v1。如果你基于 v1 包(x402-hono、x402-fetch——最后发布于 2026 年 4 月)构建,服务虽然可以运行,但在 Agent 实际查询的发现层中不可见。本模板全程使用 v2。

将 resource 固定为你的公共 URL。 如果让中间件从请求中推导该值,它会把 Worker 的内部主机名——其中包含你的 Cloudflare 账户名称——放入每个付款挑战中,就在收款地址旁边。

验证你自己的承诺

本模板写入付款条款和落地页的所有内容,都是对付费用户作出的承诺。请根据节点的实际行为进行测试,而不是根据你认为它会如何工作来判断。以下三点曾让我们吃过亏:

  • “从区块 N 开始提供历史数据”——检查区块 N 和 N-1。
  • “历史状态调用会被拒绝,而不会收费”——节点自身的拒绝会以 HTTP 200 返回,因此未经转换就会结算。请参阅 policy.ts 中的 nodeRefusal。
  • “eth_getLogs 最多支持 N 个区块”——你的客户端对单次响应中的日志数量也有上限(Nethermind 默认值为 20,000),远在区块数限制生效之前就会触发。

提高曝光度

在 Bazaar 中,排名由实际使用情况决定——l30DaysTotalCalls 和 l30DaysUniquePayers——而不是由描述写得有多好决定。在花一下午斟酌文案之前,值得了解这一点。

还有一点也值得了解:截至 2026 年 8 月,整个可见的 Bazaar 在三十天内共处理了大约 1,200 次付费调用,分布于八十个服务中。其中最繁忙的 Ethereum RPC 处理了十四次。请为市场将来的样子构建,而不是为它现在的样子构建。

无论如何,这个模板会为你提供:一个 bazaar 发现扩展,让你能被索引;一个 iconUrl;以及在 Base、Polygon 和 Arbitrum 上接受付款的能力,让更多钱包可以访问你。它刻意不做的一件事,是虚增你自己的调用次数——那只会让你用自己的钱挤进一个目前还没人看的榜单。

保护你的源站

将 ORIGIN_TOKEN 设为密钥,并让你的源站要求提供匹配的 X-Origin-Token 请求头。没有它,任何知道你源站主机名的人都能免费使用你的节点,付费墙也就形同虚设。最简参考代理位于 examples/origin-proxy.py。

隐私

收款地址必然是公开的:它出现在每个付款挑战中。你的节点 IP 也是公开的,因为它参与了点对点网络。你需要保护的是两者之间的关联。

有人通过你的网关提交交易并观察哪个 IP 最先广播交易,就能知道你的服务实际运行在哪里。设置 RELAY_URLS,通过公共端点发送原始交易,这条踪迹就会消失。其他所有方法都只返回答案,不会泄露任何信息。

客户端用法

任何 x402 客户端都会自动付款并重试:

import { wrapFetchWithPayment, x402Client } from "@x402/fetch";
import { ExactEvmScheme } from "@x402/evm";

const x402 = new x402Client().register("eip155:8453", new ExactEvmScheme(account));
const fetchWithPay = wrapFetchWithPayment(fetch, x402);
await fetchWithPay("https://your-gateway/rpc", { method: "POST", body });

将其作为你自己的节点之后的付费备用方案——参见 examples/fallback.mjs:

transport: fallback([
  http(YOUR_OWN_RPC),
  http("https://your-gateway/rpc", { fetchFn: fetchWithPay }),
], { retryCount: 0 })

从不使用的备用方案不花一分钱。这是订阅服务无法提供的特性,也是运行这类服务最有力的理由。

许可证

MIT。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。