INTEGRITY Документация

Плата за HTTP-контент

Шаблон x402-proxy представляет собой Cloudflare Worker, который располагается перед любым HTTP-бэкендом. Когда запрос попадает на защищённый маршрут, proxy возвращает ответ 402 с инструкциями по оплате. После того как клиент оплатит, proxy проверяет платёж и перенаправляет запрос на ваш origin-сервер.

Разверните шаблон x402-proxy в своей учётной записи Cloudflare:

Deploy to Cloudflare

Предварительные требования

Конфигурация

Определите защищённые маршруты в wrangler.jsonc:

{
	"vars": {
		"PAY_TO": "0xYourWalletAddress",
		"NETWORK": "base-sepolia",
		"PROTECTED_PATTERNS": [
			{
				"pattern": "/api/premium/*",
				"price": "$0.10",
				"description": "Premium API access"
			}
		]
	}
}

Выборочное ограничение доступа с помощью Bot Management

С Bot Management, прокси может взимать плату с краулеров, оставляя сайт бесплатным для людей:

{
	"pattern": "/content/*",
	"price": "$0.10",
	"description": "Content access",
	"bot_score_threshold": 30,
	"except_detection_ids": [117479730]
}

Запросы с показателем Bot Score не выше bot_score_threshold перенаправляются на paywall. Используйте except_detection_ids чтобы разрешить определённые краулеры по Detection ID.

Развернуть

Клонируйте шаблон, отредактируйте wrangler.jsonc, и разверните:

git clone https://github.com/cloudflare/templates
cd templates/x402-proxy-template
npm install
npx wrangler deploy

Полный список параметров конфигурации и примеры Bot Management см. в шаблон README ↗.

Пользовательские эндпоинты Worker

Для большего контроля добавьте middleware x402 прямо в свой Worker с помощью Hono:

import { Hono } from "hono";
import { paymentMiddleware } from "x402-hono";

const app = new Hono<{ Bindings: Env }>();

app.use(
	paymentMiddleware(
		"0xYourWalletAddress" as `0x${string}`,
		{
			"/premium": {
				price: "$0.10",
				network: "base-sepolia",
				config: { description: "Premium content" },
			},
		},
		{ url: "https://x402.org/facilitator" },
	),
);

app.get("/premium", (c) => c.json({ message: "Thanks for paying!" }));

export default app;

См. пример x402 для Workers ↗ для полной реализации.