← 返回信息流
AI 资讯Hacker News·3 小时前

X402:静态博客货币化新尝试

原标题:X402, a static blog monetization excercise

速览

X402是一个针对静态博客的货币化练习项目。它旨在帮助博主在不依赖传统广告的情况下实现收益。该项目可能提供技术方案或思路。

AI 深度解读

背景

Cloudflare 近日宣布推出 Monetization Gateway(变现网关)服务。该服务旨在降低内容变现的准入门槛,允许创作者对单次访问、单个 API 调用等细粒度资源设置极低的价格(如 1 美分)。这一机制有可能改变互联网当前的广告经济模式,让用户直接为内容付费,而非依赖第三方广告商。

在 Monetization Gateway 尚处于封闭测试阶段(需加入 Waitlist)的情况下,本文作者决定自行实现一套兼容该协议的开源方案 x402,并将其部署在自己的静态博客上,作为一次技术探索和变现实验。

核心内容

计划与架构

作者的目标是实现一个静态博客的按次付费访问功能。整个系统需要三个组成部分:

  1. 钱包:用于接收用户支付的加密货币(测试网 USDC)。
  2. Worker:执行支付处理逻辑的云函数(作者选择 Cloudflare Workers,语言为 TypeScript)。
  3. 付费墙资源:作者博客中的一个笑话 API 端点 /api/joke

由于无法直接使用 Cloudflare 的托管服务,作者基于开源库 @x402/hono@x402/evm@x402/svm 等自行搭建支付中间件。

实现步骤

1. 创建 Hono 应用并配置支付中间件

使用 Hono 框架编写 Worker,引入 paymentMiddlewarex402ResourceServer。配置接受两种支付网络:EVM(Base Sepolia 测试网)和 Solana(测试网),价格统一为 0.01 美元(即 10000 最小单位)。

import { Hono } from "hono";
import type { MiddlewareHandler } from "hono";
import { paymentMiddleware, x402ResourceServer } from "@x402/hono";
import { ExactEvmScheme } from "@x402/evm/exact/server";
import { ExactSvmScheme } from "@x402/svm/exact/server";
import { HTTPFacilitatorClient } from "@x402/core/server";

const app = new Hono();
const evmAddress = "0xD040AEACCdFf083C5D4cB221F1533e8719a84F0e";
const svmAddress = "HjexCvNzgxJT3Ni7rb98WF4pQGEX2fN7G6Zh26B19mBc";
const facilitatorClient = new HTTPFacilitatorClient({
  url: "https://x402.org/facilitator",
});

let payment: MiddlewareHandler | undefined;
app.use(async (c, next) => {
  payment ??= paymentMiddleware(
    {
      "GET /api/joke": {
        accepts: [
          { scheme: "exact", price: "$0.01", network: "eip155:84532", payTo: evmAddress },
          { scheme: "exact", price: "$0.01", network: "solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1", payTo: svmAddress },
        ],
        description: "A premium, hand-picked joke",
        mimeType: "application/json",
      },
    },
    new x402ResourceServer(facilitatorClient)
      .register("eip155:84532", new ExactEvmScheme())
      .register("solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1", new ExactSvmScheme()),
  );
  return payment(c, next);
});

const jokes = [/*一些预设笑话*/];
app.get("/api/joke", (c) => {
  return c.json({ joke: jokes[Math.floor(Math.random() * jokes.length)] });
});

export default app;

2. 配置 Worker 路由

wrangler.jsonc 中指定路由 shtein.me/api/*,并启用 nodejs_compat 标志以支持 Node.js 内置模块。

{
  "name": "x402-poc",
  "main": "src/index.ts",
  "compatibility_date": "2026-07-01",
  "compatibility_flags": ["nodejs_compat"],
  "env": {
    "production": {
      "name": "x402-poc",
      "routes": [{ "pattern": "shtein.me/api/*", "zone_name": "shtein.me" }]
    }
  }
}

3. 本地测试支付墙

使用 wrangler dev 运行本地服务,发送 curl -i http://localhost:8787/api/joke,收到 HTTP 402 Payment Required 响应,包含 PAYMENT-REQUIRED 头(Base64 编码的 JSON 支付选项)。

解码后的内容显示两种接受方案:EVM 网络(Base Sepolia,资产为 USDC)和 Solana 网络(资产为 USDC 测试代币),金额均为 10000 单位(0.01 美元)。

4. 集成 Paywall UI

为了让浏览器用户能直接支付,安装 @x402/paywall 并创建 Paywall 实例,同时启用测试网模式。更新 Worker 代码:

import { createPaywall, evmPaywall, svmPaywall } from "@x402/paywall";
// ... 在 paymentMiddleware 调用后添加
new x402ResourceServer(facilitatorClient)
  .register("eip155:84532", new ExactEvmScheme())
  .register("solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1", new ExactSvmScheme()),
  { appName: "Igor's corner", testnet: true },
  createPaywall().withNetwork(evmPaywall).withNetwork(svmPaywall).build()
);

此后,浏览器访问 /api/joke 时会显示一个友好的支付界面,引导用户连接 MetaMask(或其他钱包)并确认支付 0.01 美元。

5. 支付流程及最终响应

用户通过 MetaMask 连接并签名后,客户端在请求头 PAYMENT-SIGNATURE 中发送签名数据,解码后包含授权信息(from、to、value、validAfter、validBefore、nonce)和签名。服务器验证无误后返回笑话内容,状态码变为 200。

关键要点

  • 协议标准:x402 定义了一套 HTTP 402 状态码的标准化支付协商机制,通过 PAYMENT-REQUIRED 头传递价格、网络、收款地址等参数,客户端支付后以 PAYMENT-SIGNATURE 头提交证明。
  • 多链支持:实现同时兼容 EVM(以太坊类)和 SVM(Solana)两种主流区块链网络,用户可任选一种支付。
  • 低门槛:单次支付可低至 0.01 美元,适合微支付场景(如单篇博客、单次 API 调用)。
  • 静态博客适配:通过 Cloudflare Workers 作为中间件,无需修改静态站点本身即可添加付费墙,对原有部署影响小。
  • 开源实现:作者使用了社区库 @x402/hono@x402/paywall 等,代码完全可复现,降低了个人开发者尝试的门槛。
  • 测试与生产区别:测试网模式下 Paywall 显示“Top up”入口,生产环境则会直接要求签名支付,不会提供充值选项。

意义与影响

x402 及其背后的 Cloudflare Monetization Gateway 理念,可能对互联网内容变现模式产生深远影响:

  1. 去广告化:为用户提供一种直接、透明的按次付费替代方案,有望减少对第三方广告(包括追踪、隐私泄露)的依赖。
  2. 赋能个人创作者:即使是个人博客或小规模 API 服务,也能以极低的技术成本和用户摩擦实现变现,无需经过复杂支付系统或高额抽成平台。
  3. 推动 Web3 支付实用化:通过 HTTP 402 标准化协议,将加密货币微支付无缝融入网页浏览体验,降低了普通用户使用加密支付的心理和技术障碍。
  4. **静态
查看原文 →shtein.me