Il y a un hic. C'est l'endpoint qui décide comment il est payé, et les endpoints x402 qu'un agent rencontre demandent en général de l'USDC sur un réseau précis, comme Base ou Solana. Votre agent détient peut-être autre chose : de l'USDT sur Solana, de l'USDC sur Stellar ou de l'USDT sur BNB Chain. Passer par un bridge avant chaque appel ne marche pas non plus, car une exigence de paiement x402 n'est valable que quelques minutes, et un transfert entre chaînes prend en général plus de temps.
ROZO est indépendant et n'est affilié à aucun vendeur x402.
Rechargez une fois, payez de nombreuses fois
Le payeur x402 de ROZO coupe le problème en deux. Vous rechargez un solde ROZO une seule fois, avec la crypto que vous avez déjà, sur la chaîne que vous utilisez déjà. Ensuite, chaque appel x402 vers un endpoint qui accepte l'USDC sur Base est payé depuis ce solde en quelques secondes, dans la fenêtre de paiement.
Si votre agent peut lancer une commande shell, voici toute l'intégration :
- Rechargez le solde une fois. La commande affiche une adresse de dépôt à usage unique ; payez-la depuis votre propre wallet : npx @rozoai/checkout x402 topup 20 --with usdt-solana
- Appelez un endpoint payant. La CLI lit le 402, ROZO signe, et la requête est renvoyée avec le paiement : npx @rozoai/checkout x402 pay https://api.example.com/v1/search --method POST --body '{"q":"..."}'
- Consultez ce qui reste : npx @rozoai/checkout x402 balance
Ce qui se passe avec x402 pay
Votre machine envoie la requête directement à l'endpoint. Quand le 402 revient, la CLI lit les exigences de paiement, ne garde que l'option USDC sur Base et demande à ROZO de signer ce seul paiement. Elle renvoie ensuite votre requête d'origine avec l'en-tête PAYMENT-SIGNATURE et affiche la réponse.
Chaque paiement porte un idempotencyKey, et une nouvelle tentative de ce paiement réutilise la même clé : un timeout ne peut donc pas vous débiter deux fois.
Pas de shell ? Le même paiement passe par deux endpoints HTTP principaux, /v1/x402/topup et /v1/x402/sign, avec votre clé d'agent comme bearer token. Votre agent renvoie lui-même sa requête avec la signature. La page x402 montre les deux appels.
Ce qui protège votre argent
Confier un wallet à un agent est un vrai risque, c'est pourquoi le payeur repose sur des permissions étroites.
- La clé ne dépense que le solde. La première recharge crée une clé d'agent qui commence par ak_. Elle peut payer depuis votre solde ROZO et rien d'autre. Elle ne touche jamais votre propre wallet, ROZO ne détient jamais les clés de votre wallet et ROZO ne stocke qu'un hash de la clé d'agent.
- Chaque paiement a un plafond. Par défaut, un paiement est limité à $5 et une clé peut dépenser au plus $100 par jour. Ce sont des valeurs par défaut, réglables par clé. Vous pouvez aussi limiter une clé à une liste d'adresses payTo, et la CLI refuse tout paiement au-dessus de la limite fixée avec --max-usd.
- Des paiements ponctuels, jamais un abonnement. Chaque appel exige un nouveau 402 du vendeur et une nouvelle signature de ROZO. Le vendeur ne reçoit jamais d'autorisation permanente pour prélever plus tard.
- Votre requête reste la vôtre. La requête payante va de votre machine à l'endpoint. ROZO ne voit jamais le corps de la requête, vos en-têtes ni les clés API que vous utilisez pour ce service. ROZO ne voit que l'exigence de paiement qu'on lui demande de signer : qui est payé, combien et sur quel réseau.
Ce qui sert à recharger, et ce qui est payé
Il y a deux étapes, présentées séparément à dessein.
Recharge, de vous vers ROZO :
- USDT sur Solana, BNB Chain, Ethereum ou Polygon
- USDC sur Solana, BNB Chain, Ethereum, Polygon, Base ou Stellar
Vous détenez un jeton natif ou des sats ? Vous pouvez les utiliser pour recharger OpenRouter avec ROZO Checkout sur checkout.rozo.ai.
Paiement, de ROZO vers le vendeur x402 :
- Base (eip155:8453) : USDC, schéma x402 exact
- Solana : plus tard
Les vendeurs sont toujours payés en USDC, car les paiements x402 exact sont des transferts de jetons. L'USDT sert uniquement à recharger le solde ; le vendeur est payé en USDC. Si un endpoint n'accepte que l'USDC sur Solana, la CLI s'arrête avec X402_UNSUPPORTED avant tout débit.
La recharge minimale est de $5 et la recharge comporte des frais de 1 %. Chaque paiement x402 depuis le solde ne coûte que ce que demande le vendeur. Les retraits ne sont pas encore en libre-service : écrivez à hi@rozo.ai avec votre clé masquée et le montant, et le solde vous est renvoyé sur la chaîne de votre choix.
Commencer maintenant
Le payeur est disponible dès maintenant. La page checkout.rozo.ai/x402 rassemble les trois commandes, les appels HTTP, les limites et la FAQ. La référence complète, avec tous les codes d'erreur, se trouve sur docs.rozo.ai. Les agents peuvent lire les mêmes instructions, avec les règles de sécurité et les consignes de nouvelle tentative, dans checkout.rozo.ai/llms.txt et dans le dépôt RozoAI/rozo-checkout-skill sur GitHub.
Rechargez une fois avec la crypto que vous détenez, et laissez votre agent payer seul les API qu'il appelle.