O Agente Chama a API Protegida
`GET /v1/intelligence` chega sem um token de licença ES256 `Authorization: Bearer` ou recibo de sessão paga.
Cartões de crédito falham abaixo de $1.00 e bloqueiam agentes de IA autônomos sem cartões corporativos. A XPayr leva o HTTP `402 Payment Required` para produção: desafie chamadas não autenticadas com uma sessão não custodial de stablecoin, liquide 99.5% na Base, Solana, Arbitrum, TRON ou Circle Arc e verifique tokens stateless ES256 JWT de acesso em menos de um milissegundo no middleware de borda.
`GET /v1/intelligence` chega sem um token de licença ES256 `Authorization: Bearer` ou recibo de sessão paga.
O middleware cria ou referencia um SKU de checkout/licença XPayr e retorna `402 Payment Required` + metadados `X-Payment-Required`.
O agente valida os guardrails via `@xpayr/mcp-server` (`POST /api/mcp`), paga em USDC/USDT (99.5% direto para a carteira do lojista) e recebe um JWT ES256.
O agente repete a chamada com `Authorization: Bearer <jwt>`. O middleware de borda verifica o ES256 contra `/.well-known/jwks.json` offline e entrega `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'
});
}
Quando um cliente não autenticado ou agente de IA chama seu endpoint protegido sem um token de licença ES256 válido da XPayr ou comprovante de sessão paga, seu middleware retorna HTTP 402 com um JSON de desafio de pagamento XPayr (e cabeçalhos WWW-Authenticate / X-Payment-Required). Após o pagamento na Base, Solana, Arbitrum, TRON ou Circle Arc, o cliente recebe um JWT ES256 assinado criptograficamente e verificável offline via https://xpayr.com/.well-known/jwks.json.
Nenhuma viagem de rede adicional é necessária por requisição. Seu edge worker ou backend armazena em cache a chave pública P-256 da XPayr de /.well-known/jwks.json e verifica a assinatura ES256 JWT localmente em menos de 0.2 milissegundos.
Agentes conectados ao @xpayr/mcp-server (ou POST https://xpayr.com/api/mcp) inspecionam o desafio 402, verificam sua política de Guardrails de Agente do Lojista (/tools/ai-agent-policy-simulator), executam ou solicitam aprovação para a intenção de pagamento em stablecoin e repetem a requisição com o cabeçalho resultante Authorization: Bearer <es256_license_jwt>.
Consulte https://xpayr.com/.well-known/x402.json junto com https://xpayr.com/.well-known/agents.json e https://xpayr.com/.well-known/mcp.json.