Агент вызывает защищённый API
Запрос `GET /v1/intelligence` поступает без лицензионного ES256-токена `Authorization: Bearer` или квитанции об оплате.
Банковские карты нерентабельны ниже $1.00 и блокируют автономных ИИ-агентов без корпоративных карт. XPayr выводит HTTP `402 Payment Required` в продакшен: запрашивайте оплату у неавторизованных клиентов через некастодиальную сессию в стейблкоинах, рассчитывайте 99.5% в Base, Solana, Arbitrum, TRON или Circle Arc и проверяйте stateless-токены ES256 JWT доступа за доли миллисекунды на уровне edge-middleware.
Запрос `GET /v1/intelligence` поступает без лицензионного ES256-токена `Authorization: Bearer` или квитанции об оплате.
Middleware создаёт или указывает SKU оплаты/лицензии XPayr и возвращает `402 Payment Required` вместе с метаданными `X-Payment-Required`.
Агент проверяет лимиты через `@xpayr/mcp-server` (`POST /api/mcp`), оплачивает в USDC/USDT (99.5% напрямую на кошелёк мерчанта) и получает ES256 JWT.
Агент повторяет запрос с `Authorization: Bearer <jwt>`. Edge-middleware проверяет ES256 офлайн по `/.well-known/jwks.json` и отдаёт `200 OK`.
HTTP/1.1 402 Payment Required
Content-Type: application/json
WWW-Authenticate: XPayr402 realm="api.merchant.example", jwks="https://xpayr.com/.well-known/jwks.json"
X-Payment-Required: protocol="xpayr-x402-v1", amount="5.00", currency="USD", fee_bps="50"
{
"error": "payment_required",
"protocol": "xpayr-x402-v1",
"amount": "5.00",
"currency": "USD",
"accepted_rails": ["base:USDC", "solana:USDC", "arbitrum:USDT", "tron:USDT", "arc-testnet:USDC"],
"checkout_url": "https://xpayr.com/buy/pro-api-pass",
"mcp_endpoint": "https://xpayr.com/api/mcp",
"mcp_tool": "xpayr_create_payment_session",
"jwks_uri": "https://xpayr.com/.well-known/jwks.json"
}
import { createRemoteJWKSet, jwtVerify } from 'jose';
const XPAYR_JWKS = createRemoteJWKSet(
new URL('https://xpayr.com/.well-known/jwks.json')
);
export async function requireXpayr402(req, res, next) {
const token = (req.headers.authorization || '').replace(/^Bearer\s+/i, '');
if (token) {
try {
const { payload } = await jwtVerify(token, XPAYR_JWKS, { algorithms: ['ES256'] });
req.xpayrEntitlement = payload;
return next();
} catch (_) { /* expired or invalid token -> emit 402 below */ }
}
return res.status(402)
.set('WWW-Authenticate', 'XPayr402 jwks="https://xpayr.com/.well-known/jwks.json"')
.json({
error: 'payment_required',
protocol: 'xpayr-x402-v1',
checkout_url: 'https://xpayr.com/buy/api-credits-10k',
mcp_endpoint: 'https://xpayr.com/api/mcp'
});
}
Когда неаутентифицированный клиент или ИИ-агент обращается к защищённому эндпоинту без действующего лицензионного токена XPayr ES256 или подтверждения оплаченной сессии, ваше middleware возвращает HTTP 402 с JSON платёжного вызова XPayr (и заголовками WWW-Authenticate / X-Payment-Required). После оплаты в сети Base, Solana, Arbitrum, TRON или Circle Arc клиент получает криптографически подписанный ES256 JWT, проверяемый офлайн через https://xpayr.com/.well-known/jwks.json.
Никаких сетевых запросов на каждый вызов не требуется. Ваш edge-воркер или бэкенд кэширует публичный ключ P-256 XPayr из /.well-known/jwks.json и локально проверяет подпись ES256 JWT менее чем за 0.2 миллисекунды.
Агенты, подключённые к @xpayr/mcp-server (или POST https://xpayr.com/api/mcp), анализируют вызов 402, проверяют политику защитных лимитов мерчанта (/tools/ai-agent-policy-simulator), исполняют платёжное намерение в стейблкоинах или запрашивают одобрение, после чего повторяют запрос с полученным заголовком Authorization: Bearer <es256_license_jwt>.
Ознакомьтесь с https://xpayr.com/.well-known/x402.json наряду с https://xpayr.com/.well-known/agents.json и https://xpayr.com/.well-known/mcp.json.