HTTP 402 Payment Required · ES256 JWKS · 21 outils MCP

Transformez n'importe quelle API REST ou endpoint MCP en paywall auto-monétisé.

Les cartes bancaires échouent sous $1.00 et bloquent les agents IA autonomes dépourvus de carte d'entreprise. XPayr porte HTTP `402 Payment Required` en production : soumettez les appelants non authentifiés à une session stablecoin non dépositaire, réglez 99.5% sur Base, Solana, Arbitrum, TRON ou Circle Arc et vérifiez des jetons sans état ES256 JWT d'accès en moins d'une milliseconde dans votre middleware edge.

Étape 1 · Requête

L'agent appelle l'API protégée

`GET /v1/intelligence` arrive sans jeton de licence ES256 `Authorization: Bearer` ni reçu de session payée.

Étape 2 · Défi 402

Le serveur émet HTTP 402

Le middleware crée ou référence un SKU checkout/licence XPayr et renvoie `402 Payment Required` + les métadonnées `X-Payment-Required`.

Étape 3 · Politique et règlement

L'agent règle en stablecoin

L'agent valide les garde-fous via `@xpayr/mcp-server` (`POST /api/mcp`), règle en USDC/USDT (99.5% directement au portefeuille marchand) et reçoit un JWT ES256.

Étape 4 · Déverrouillage sans état

Vérification JWKS sub-milliseconde

L'agent réessaie avec `Authorization: Bearer <jwt>`. Le middleware edge vérifie ES256 hors ligne via `/.well-known/jwks.json` et sert `200 OK`.

1. Charge utile standard du défi HTTP `402 Payment Required`

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"
}

2. Middleware Node.js / Edge (`@xpayr/extension-kit` v0.2.0)

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'
    });
}

Questions fréquentes — HTTP 402 et paywalls agentiques

Comment XPayr implémente-t-il HTTP 402 Payment Required pour les API et les agents IA ?

Lorsqu'un client non authentifié ou un agent IA appelle votre endpoint protégé sans jeton de licence ES256 XPayr valide ni preuve de session payée, votre middleware renvoie HTTP 402 avec un JSON de défi de paiement XPayr (et les en-têtes WWW-Authenticate / X-Payment-Required). Une fois le paiement réglé sur Base, Solana, Arbitrum, TRON ou Circle Arc, le client reçoit un JWT ES256 signé cryptographiquement et vérifiable hors ligne via https://xpayr.com/.well-known/jwks.json.

La vérification d'un jeton porteur HTTP 402 ajoute-t-elle de la latence à chaque appel API ?

Aucun aller-retour réseau n'est requis par requête. Votre edge worker ou backend met en cache la clé publique P-256 de XPayr depuis /.well-known/jwks.json et vérifie localement la signature ES256 JWT en moins de 0.2 milliseconde.

Comment les agents IA autonomes peuvent-ils régler automatiquement un défi HTTP 402 ?

Les agents connectés à @xpayr/mcp-server (ou POST https://xpayr.com/api/mcp) inspectent le défi 402, vérifient leur politique de garde-fous marchand (/tools/ai-agent-policy-simulator), exécutent ou soumettent à approbation l'intention de paiement en stablecoin, puis relancent la requête avec l'en-tête Authorization: Bearer <es256_license_jwt> obtenu.

Où est hébergé le manifeste de découverte x402 lisible par machine de XPayr ?

Consultez https://xpayr.com/.well-known/x402.json ainsi que https://xpayr.com/.well-known/agents.json et https://xpayr.com/.well-known/mcp.json.