Vendez votre API aux agents IA.
Les agents IA ne peuvent pas remplir un formulaire de carte de crédit. Ils peuvent vous payer en USDC. Blockchain0x effectue cet appel API.
Votre API a été conçue pour les humains. Vos appelants sont maintenant des agents.
La prochaine décennie de revenus API ne viendra pas des inscriptions humaines. Elle viendra des agents AI appelant des API au nom de leurs utilisateurs, souvent de manière programmatique et sans aucune intervention humaine. Ces agents ne peuvent pas utiliser votre processus de paiement existant. Ils ne peuvent pas remplir un formulaire de carte de crédit, ne peuvent pas créer un compte, ne peuvent pas cliquer sur un e-mail de confirmation, ne peuvent pas se souvenir d'un mot de passe.
Ce qu'ils peuvent faire, c'est lire une réponse 402 Payment Required, extraire le montant USDC et le destinataire du corps JSON, payer sur Base et réémettre l'appel avec preuve de paiement. C'est toute la forme du commerce API piloté par les agents. Le modèle de coût (facturation par appel en stablecoin) s'adapte également beaucoup mieux à la forme d'utilisation des agents que les abonnements basés sur des cartes : les cartes échouent pour des transactions inférieures à 1 $ ; USDC sur Base coûte des centimes en frais ; les rétrofacturations ne se produisent pas entre machines.
Blockchain0x est le pont. Listez les routes pour lesquelles vous souhaitez facturer dans un tableau de prix et montez l'adaptateur x402. Lorsqu'un appel non payé atteint une route tarifée, l'adaptateur renvoie un 402 décrivant exactement ce qu'il faut payer. L'agent paie sur Base et réessaie avec un en-tête X-Payment ; l'adaptateur le vérifie et votre gestionnaire s'exécute. Vous collectez USDC et exécutez votre API comme auparavant. Rien dans votre logique commerciale ne change ; la couche de facturation fonctionne en parallèle.
Le code d'état HTTP a enfin une utilisation.
HTTP 402 was reserved in the original spec for "future use" and never standardized. For thirty years it sat unused while the internet built per-account subscription billing on top of 200/401/403. With Coinbase's x402 protocol, 402 finally has a standard implementation: any API that needs payment-before-it-runs can return a structured 402, and any client that understands the spec can pay and retry.
HTTP/1.1 402 Payment Required
Content-Type: application/json
{
"resource": "POST /api/expensive-operation",
"accepts": [
{
"scheme": "exact-usdc",
"network": "mainnet",
"chainId": "eip155:8453",
"payToAddress": "0xYourAgentWalletAddress",
"amountWeiUsdc": "500000",
"paymentRequestId": "pr_demo",
"maxAgeSeconds": 60
}
]
}Ce que signifie l'exigence accepts[]
- scheme - le schéma de paiement. exact-usdc signifie un montant exact en USDC sur une chaîne EVM. Le client correspond à cela avant de payer.
- network / chainId - la chaîne sur laquelle régler (la chaîne principale est Base, CAIP-2 eip155:8453). Une migration peut citer les deux réseaux en énumérant deux exigences dans accepts.
- payToAddress / amountWeiUsdc - le portefeuille du destinataire et le montant exact en unités de base USDC (500000 = 0,50 USDC, 6 décimales). Le client vérifie les deux avant de payer.
- paymentRequestId - lie le paiement à cette citation. L'adaptateur rejette un X-Payment qui fait référence à un paymentRequestId différent de la route citée.
- maxAgeSeconds - combien le paiement doit être frais. Un paiement plus ancien que cette fenêtre est rejeté et l'appelant doit payer à nouveau.
x402 est machine-à-machine : un client conscient de x402 lit accepts, paie l'exigence choisie on-chain, puis réémet la demande avec un en-tête X-Payment que l'adaptateur vérifie. Un client qui ne parle pas x402 reçoit simplement le 402 et n'obtient aucun résultat, ce qui est le bon résultat (l'appel n'a pas été payé). Il n'y a pas de page de paiement hébergée dans ce flux ; le paiement est réglé de manière programmatique par le portefeuille de l'appelant.
Une table de prix. Trois langues. Même forme.
Vous montez un adaptateur et lui donnez une table de prix indexée par METHOD plus chemin. Il contrôle uniquement les routes que vous listez ; votre gestionnaire ne voit jamais un appel non payé, car lorsque cela s'exécute, l'en-tête X-Payment a déjà été vérifié. La forme est identique à travers Python, TypeScript et Go - le format de transmission X-Payment est le même, donc un serveur Go accepte les en-têtes construits par un client Python.
from flask import Flask
from blockchain0x import Client
from blockchain0x_x402.server import x402_before_request_factory, PricingEntry
sdk = Client() # reads BLOCKCHAIN0X_API_KEY
app = Flask(__name__)
# Only routes named in the pricing table are gated.
app.before_request(x402_before_request_factory(
sdk=sdk,
pricing={
"POST /api/expensive-operation": PricingEntry(
amount_usdc="0.50",
pay_to_address="0xYourAgentWalletAddress",
payment_request_id="pr_demo",
),
},
))
@app.route("/api/expensive-operation", methods=["POST"])
def expensive_operation():
return run_the_work() # only runs after X-Payment verifiesimport express from "express";
import { createClient } from "@blockchain0x/node";
import { createX402Middleware } from "@blockchain0x/x402/server/express";
const sdk = createClient({ apiKey: process.env.BLOCKCHAIN0X_API_KEY! });
const app = express();
// Only routes named in the pricing table are gated.
app.use(createX402Middleware({
sdk,
pricing: {
"POST /api/expensive-operation": {
amountUsdc: "0.50",
payToAddress: "0xYourAgentWalletAddress",
paymentRequestId: "pr_demo",
},
},
}));
app.post("/api/expensive-operation", async (req, res) => {
res.json(await runTheWork()); // req.x402Payment holds the verified payment
});import (
"net/http"
x402 "tosh-labs/blockchain0x-x402-go"
)
func main() {
pricing := map[string]x402.PricingEntry{
"POST /api/expensive-operation": {
AmountUSDC: "0.50",
PayToAddress: "0xYourAgentWalletAddress",
PaymentRequestID: "pr_demo",
},
}
// serverSdk is your Blockchain0x Go SDK client.
h := x402.Middleware(x402.ServerOptions{Sdk: serverSdk, Pricing: pricing})(
http.HandlerFunc(expensiveOperation))
http.Handle("/api/expensive-operation", h)
http.ListenAndServe(":8080", nil)
}Nous expédions des adaptateurs de serveur pour Express et Fastify (Node), ASGI (Starlette et FastAPI) et Flask (Python), ainsi que le net/http de Go. Pour d'autres frameworks, le corps 402 et l'en-tête X-Payment sont du HTTP brut que les helpers de wire dans @blockchain0x/x402 construisent et analysent - écrivez la vérification dans l'idiome de votre pile. Des packages x402 Ruby et JVM sont publiés pour le côté client.
Quand atteindre chaque outil.
Stripe est le bon outil pour le paiement humain. Blockchain0x est le bon outil pour le paiement des agents. Ils résolvent des problèmes différents et se trouvent souvent côte à côte sur la même API.
| Dimension | Blockchain0x | Stripe Checkout |
|---|---|---|
| Acheteur | Tout client HTTP (humain ou agent IA) | Humain devant un navigateur |
| Auth requis avant le paiement | Non - le premier appel renvoie 402 avec les exigences de paiement | Oui - e-mail + formulaire de carte |
| Vitesse de règlement | 5 secondes (USDC sur Base) | 2-7 jours (réseaux de cartes) |
| Risque de rétrofacturation | Aucun (USDC est final) | Jusqu'à 120 jours de fenêtre de rétrofacturation |
| Économie des coûts par transaction | Fonctionne à $0.01-$0.10 par appel (gaz Base + notre frais) | Les frais de carte rendent les transactions inférieures à 1 $ non rentables |
| Remboursements | Manuel - votre code renvoie USDC à l'adresse du payeur | Automatisé via le tableau de bord Stripe |
| Support international | Même portefeuille, n'importe quel pays, pas de configuration supplémentaire | Licences par pays, conversion de devises, règles régionales |
| Meilleur pour | Consommation d'API pilotée par des agents programmatiques | Paiement piloté par un humain (inscription SaaS, e-commerce) |
Le modèle sur lequel la plupart des fournisseurs d'API se basent : garder Stripe pour le flux d'inscription humain (votre tableau de bord, votre page produit d'abonnement) ; ajouter Blockchain0x à la limite de l'API pour un accès programmatique des agents. L'adaptateur x402 ne contrôle que les routes que vous mettez dans sa table de tarification, donc vos routes humaines authentifiées par Stripe restent intactes. Pointez les agents vers les routes tarifées et les humains vers le reste, et les deux audiences sont servies par le même code API.
Pro pour le trafic précoce. Business lorsque les journaux d'audit deviennent une exigence.
Les fournisseurs d'API commencent presque toujours par le plan Pro dès le premier jour : le plan Gratuit est en lecture seule, et l'adaptateur x402 a besoin d'un accès API pour vérifier et régler les paiements ainsi que des webhooks pour les suivre. Les API à fort trafic passent dans le territoire Business à mesure que le volume mensuel augmente. Consultez la page de tarification pour le coût exact par agent et où se situent les niveaux.
- Free : utile uniquement pour le dashboard et l'exploration des métadonnées. Lecture seule, donc l'adaptateur ne peut pas régler les paiements.
- Pro: la formule par défaut pour la monétisation d'une API en production. Accès API complet, webhooks, exports.
- Business : lorsque vous avez besoin de journaux d'audit pour la conformité, ou de limites de débit API plus élevées.