Retour au blog
BananaBanana Teamapix402agents

API de génération IA via x402 : paiement à l'appel, sans compte

Générez des images, vidéos et voix via x402 : votre agent paie en USDC sur Base à chaque appel, sans inscription ni clé API. Tarifs dès $0.03.

API de génération IA via x402 : paiement à l'appel, sans compte

x402 est un protocole de paiement ouvert qui transforme le code d'état HTTP 402 en un paywall fonctionnel : le serveur répond à une requête avec le statut 402 Payment Required accompagné de conditions de paiement lisibles par machine, le client signe une autorisation de transfert en stablecoin, renvoie la requête et reçoit sa réponse. Aucun compte, aucune clé API, aucun abonnement mensuel. Coinbase a transféré le protocole à la Linux Foundation en avril 2026, et au moment où la x402 Foundation est devenue opérationnelle, elle comptait déjà 40 organisations membres, dont AWS, Google, Stripe, Visa et Mastercard. Ce n'est plus une simple curiosité crypto.

Réponse rapide : le point de terminaison x402 de BananaBanana est https://bananabanana.pro/api/x402. Envoyez un POST avec { "tool": "...", "arguments": {...} }, recevez une réponse 402 avec le tarif exact pour ces paramètres, réglez-le en USDC sur Base et réitérez la requête. Les images débutent à $0.03, les vidéos à $0.30, la voix à $0.01 par tranche de 200 caractères. Les images et la voix ne sont débitées que si le fichier est effectivement généré.

Un petit robot introduisant une pièce dans un distributeur qui délivre une image, une bobine de film et un haut-parleur, illustration éditoriale

Cette dernière phrase constitue le point que la majorité des présentations de x402 omettent, et nous allons nous y attarder. Prélever un paiement est facile ; ne pas facturer les requêtes qui échouent est le véritable défi d'architecture logicielle.

Déroulement concret du paiement

Quatre étapes suffisent, et votre client HTTP en prend trois en charge automatiquement :

  1. Votre agent envoie une requête POST standard en JSON, sans en-tête de paiement.
  2. Le serveur répond 402 avec un tableau accepts. L'exigence de paiement précise le montant en unités atomiques, l'adresse de destination, le contrat USDC, la blockchain et le délai d'expiration.
  3. Le client signe une autorisation de transfert EIP-3009 pour ce montant exact et l'encode en Base64 dans l'en-tête X-PAYMENT.
  4. La même requête est renvoyée avec l'en-tête. Le serveur transmet la signature à un facilitateur pour vérification, exécute la génération, puis demande au facilitateur le règlement on-chain.

La signature n'est pas une transaction immédiate sur la blockchain : c'est une autorisation hors-chaîne qui ne devient un transfert effectif que lorsqu'elle est soumise au réseau. C'est ce qui rend possible la validation en deux temps : d'abord vérifier, puis générer, et enfin régler.

Un détail pratique : la spécification v2 renomme les en-têtes en PAYMENT-SIGNATURE et PAYMENT-RESPONSE, mais la plupart des clients envoient encore X-PAYMENT, que nous acceptons pleinement. Avec le SDK TypeScript officiel, la transition est totalement transparente.

Illustration schématique d'un cycle de requête en quatre étapes entre un agent et une API payante, style éditorial

Tarifs par appel

Les prix sont calculés par génération et indiqués avant toute signature. Le coût exact dépend des arguments (une image 4K ne coûte pas la même chose qu'une image 1K), la réponse 402 évalue donc votre demande précise.

OutilModèleTarif
generate_imageNano Banana 2 Lite$0.03 (1K uniquement)
generate_imageNano Banana 2$0.03 – $0.13 (de 512 à 4K)
generate_imageNano Banana Pro$0.11 – $0.20 (de 1K à 4K)
generate_videoGemini Omni Flash$0.10 par seconde, 3–10 s, audio inclus
generate_videoFamille Veo 3.1$0.10 – $4.40 par clip
generate_speechGemini Flash TTS$0.01 par tranche entamée de 200 caractères

Un clip de trois secondes sur Omni avec son revient à $0.30, ce qui en fait l'option vidéo la plus abordable du catalogue. Veo offre un rendu supérieur, mais pour un clip de 8 secondes en 1080p sonorisé, le tarif augmente sensiblement pour un simple brouillon.

Vous pouvez consulter le catalogue actualisé sans frais : GET https://bananabanana.pro/api/x402 renvoie l'ensemble des tarifs gratuitement.

Pièces de différentes tailles disposées à côté de petites images encadrées et de pellicules de film, illustration éditoriale

Deux requêtes du début à la fin

Voici le cycle complet avec curl, à l'exception de l'étape de signature gérée par votre bibliothèque client x402.

# 1. Demande de devis. Pas d'en-tête de paiement.
curl -s -X POST https://bananabanana.pro/api/x402 \
  -H 'Content-Type: application/json' \
  -d '{"tool":"generate_image","arguments":{"prompt":"a paper boat on still water at dawn","model":"nano-banana-pro","resolution":"2048"}}'
{
  "x402Version": 1,
  "error": "Payment required: $0.11 for generate_image.",
  "accepts": [{
    "scheme": "exact",
    "network": "base",
    "maxAmountRequired": "110000",
    "resource": "https://bananabanana.pro/api/x402",
    "payTo": "0x7c0e9abd1c48380e27ab5bfced1be54f23ce773f",
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "maxTimeoutSeconds": 300,
    "extra": { "name": "USD Coin", "version": "2" }
  }]
}

Deux enveloppes sur une ligne : la première revient avec un cadenas, la seconde porte un sceau de cire et traverse un cadre ouvert

Une fois la signature générée et la requête renvoyée avec l'en-tête, la seconde réponse fournit le fichier finalisé :

{
  "paid_usd": 0.11,
  "result": {
    "status": "completed",
    "images": [{ "url": "https://bananabanana.pro/api/files/..." }]
  }
}

Deux détails techniques cruciaux pour les développeurs de serveurs x402 : maxAmountRequired est exprimé en unités atomiques. L'USDC ayant 6 décimales, $0.11 s'écrit 110000. De plus, extra.name doit correspondre strictement à la valeur retournée par la fonction name() du contrat USDC (sur Base mainnet c'est USD Coin, sur Base Sepolia c'est USDC), sous peine de fausser le séparateur de domaine EIP-712 et d'invalider la signature sans explication explicite.

Particularité de la vidéo : règlement initial et jetons de remboursement

Les images et la synthèse vocale s'exécutent au cours de la requête HTTP (vérification → génération → règlement). Le débit n'intervient que si un fichier est effectivement produit. En cas de blocage par les filtres de modération ou de dépassement de délai, la signature n'est pas soumise et le client n'est pas débité.

La vidéo ne peut fonctionner ainsi : un rendu Veo ou Omni prend entre une et dix minutes, une connexion HTTP ne peut rester ouverte aussi longtemps et un traitement lancé chez Google ne peut être annulé (leur méthode interactions.cancel renvoie 501 UNIMPLEMENTED). La vidéo est donc réglée au départ avec renvoi d'un job_id, dont le résultat est sondé sur un endpoint gratuit.

Que se passe-t-il si un clip déjà payé est refusé par la modération ?

Vous recevez un jeton de remboursement (bb_rf_…) de la valeur totale, valable 90 jours, utilisable sur n'importe quel appel ultérieur en le transmettant dans refund_token. Si vous réglez $1.30 pour un clip rejeté, votre requête suivante bénéficiera d'une réduction de $1.30. Si la nouvelle commande coûte moins cher que le crédit, la différence est restituée sous forme d'un nouveau jeton.

Il ne s'agit pas d'un remboursement on-chain en USDC. Notre serveur ne détient aucune clé privée et ne peut pas émettre de virements sortants, seulement valider ou refuser des transactions entrantes. Pour la sécurité d'une infrastructure x402, l'absence de clés privées sur le serveur est une garantie forte.

Ce clip a été généré via cet endpoint pour $0.30 : Gemini Omni Flash, 3 secondes, avec un prompt décrivant un plan continu d'encre se diffusant dans l'eau d'un aquarium en verre, éclairage latéral doux et grondement sourd en ambiance sonore. L'audio est directement produit par le modèle.

Découverte automatique du point de terminaison

Les agents qui connaissent déjà l'URL n'ont pas besoin de découverte. Pour les autres, le service publie un manifeste sur /.well-known/x402 (et /.well-known/x402.json).

Le manifeste détaille chaque outil avec ses conditions de paiement, le réseau en norme CAIP-2, l'adresse de destination et le facilitateur. Le bloc accepts indique le prix minimal de l'outil plutôt que son plafond, ce qui empêche un agent de payer involontairement un tarif excessif.

Les annuaires d'agents sondent également les endpoints via des requêtes POST vides. Notre serveur leur répond avec un statut 402 explicatif.

Un catalogue de fiches d'annuaire avec un tiroir ouvert révélant une étiquette de point de terminaison lumineuse, illustration éditoriale

x402 ou compte utilisateur ?

Deux portes donnant sur la même pièce : l'une ouverte par une pince mécanique tenant une pièce, l'autre par une main avec des clés

Les deux accès exploitent les mêmes générateurs. Choisissez en fonction des caractéristiques de votre agent.

Critèrex402Compte (MCP ou web)
ConfigurationUn portefeuille approvisionnéInscription email, puis clé API ou OAuth
Par appelSignature, paiement immédiatDébit sur solde prépayé
Bonus de dépôtAucun5% dès $50+, 10% dès $100+, +10% avec promo
HistoriqueNon conservéHistorique complet et job IDs réutilisables
Retouche vidéoNon disponibleedit_video, affinement conversationnel
Idéal pourAppels ponctuels, agents 100% autonomesProjets continus, suivi des coûts, itérations

Le bonus de recharge constitue une différence notable : un dépôt de $100 avec code promo crédite $120 (soit 17% de réduction effective), ce que x402 ne propose pas en l'absence de solde de compte. En contrepartie, un agent autonome muni d'un wallet démarre instantanément en un seul aller-retour.

Si vous optez pour la gestion par compte, notre serveur MCP s'intègre avec Claude Code, Cursor et VS Code, et le générateur reste accessible directement dans votre navigateur.

Questions fréquentes

Faut-il un compte Coinbase pour payer ?

Non. Tout portefeuille EVM détenant des USDC sur le réseau Base convient. Le règlement est opéré par le facilitateur sans nécessiter d'inscription préalable.

Que se passe-t-il si ma génération est bloquée par le filtre de contenu ?

Pour les images et la voix, aucun montant n'est débité. Pour la vidéo, vous recevez un jeton de remboursement intégral réutilisable lors d'une commande ultérieure.

Quels réseaux et tokens sont acceptés ?

USDC sur le réseau principal Base (Base mainnet), schéma exact. Le manifeste à l'adresse /.well-known/x402 précise le CAIP-2 chain id et l'adresse du contrat.

Puis-je modifier une vidéo générée via x402 ?

Pas directement via x402. La retouche s'effectue sur les éléments rattachés à un compte utilisateur (edit_video via MCP). De nouvelles générations restent bien entendu possibles à tout moment.

Combien de temps une offre de prix reste-t-elle valide ?

Le délai de signature est fixé à 300 secondes par défaut (maxTimeoutSeconds). Les barèmes de base correspondent aux tarifs publics du site et demeurent stables.

Testez une génération d'image à $0.03 sur notre point de terminaison en ligne. Si votre client sait signer une autorisation EIP-3009, quatre lignes de code suffisent pour recevoir votre image.

apix402agents