AGENTS IAMCP et x402
La validation d'adresses que votre agent IA peut payer seul.
Un outil MCP, validate_address, et un paiement à l'appel en x402 : votre agent découvre le service gratuitement, paie 0,02 USDC par validation sur le réseau Base, et reçoit l'adresse standardisée. Sans compte, sans clé d'API, sans intervention humaine.
- MCP 2025-06-18
- x402 v1 · v2
- 0,02 USDC / appel
- USDC · Base
En trois appels
Le même service qu'en HTTP, branché dans le protocole que votre agent parle déjà.
Découvrir, gratuitement
La carte
/.well-known/mcp-serverdécrit le serveur.initializepuistools/listsur/mcpne coûtent rien.Recevoir l'offre
Un
tools/callsans paiement rend un résultat d'outil en erreur (isError) dont le contenu est l'offre exacte en x402 v2 : réseau, jeton USDC, montant (20000 unités, soit 0,02 USDC), destination.Payer, puis recevoir
L'agent signe l'autorisation (EIP-3009) et renvoie l'appel avec le paiement dans
params._meta["x402/payment"](ou l'en-têteX-PAYMENTd'un client v1). Le résultat arrive après le règlement, avec son reçu.
Configuration d'un client MCP
{
"mcpServers": {
"address-validator": { "url": "https://kder-ai.com/mcp" }
}
}
L'appel de l'outil
POST https://kder-ai.com/mcp
{
"jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": {
"name": "validate_address",
"arguments": { "address": {
"street": "1600 Amphitheatre Parkway", "city": "Mountain View",
"state": "CA", "zip": "94043", "country": "US" } }
}
}
L'offre lue dans le résultat d'outil
"accepts": [{
"scheme": "exact", "network": "eip155:8453",
"amount": "20000",
"asset": "USDC", "payTo": "0x…"
}]
Payer depuis votre code
Les bibliothèques officielles x402 lisent l'offre, signent et paient seules, en x402 v1 comme en v2. Fixez un plafond de dépense, puis appelez l'API comme une autre.
Python · x402 + httpx
# pip install "x402[httpx,evm]"
import asyncio, os
from eth_account import Account
from x402 import x402Client
from x402.http.clients import x402HttpxClient
from x402.mechanisms.evm import EthAccountSigner
from x402.mechanisms.evm.exact.register import register_exact_evm_client
async def main():
client = x402Client().set_spend_controls({"max_amount_per_payment": "$0.05"})
signer = EthAccountSigner(Account.from_key(os.environ["EVM_PRIVATE_KEY"]))
register_exact_evm_client(client, signer)
async with x402HttpxClient(client) as http:
response = await http.post("https://kder-ai.com/validate", json={"address": {
"street": "1600 Amphitheatre Parkway", "city": "Mountain View",
"state": "CA", "zip": "94043", "country": "US"}})
await response.aread()
print(response.status_code, response.json())
asyncio.run(main())
JavaScript · @x402/fetch
// npm install @x402/fetch @x402/evm viem, then run as an ES module (pay.mjs)
import { x402Client, wrapFetchWithPayment } from "@x402/fetch";
import { ExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";
const client = new x402Client();
client.setSpendControls({ maxAmountPerPayment: "$0.05" });
client.register("eip155:*", new ExactEvmScheme(privateKeyToAccount(process.env.EVM_PRIVATE_KEY)));
const pay = wrapFetchWithPayment(fetch, client);
const response = await pay("https://kder-ai.com/validate", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ address: {
street: "1600 Amphitheatre Parkway", city: "Mountain View",
state: "CA", zip: "94043", country: "US" } }),
});
console.log(response.status, await response.json());
Ce que l'agent reçoit
Une réponse JSON, toujours la même forme.
validatedl'adresse est reconnue, ou nonstandardizedline1, line2, city, state, zip, countrylatitude · longitudeles coordonnées GPS de l'adressedeliverabilityresidential, commercial…confidenceun indice de confiance de 0 à 1degradedvrai : le fournisseur n'a pas répondu, réessayez
Pourquoi x402 pour un agent
Pas de compte à créer, pas de clé à stocker, pas d'abonnement : l'agent paie exactement ce qu'il consomme, au moment où il le consomme. Une autorisation déjà utilisée est refusée : le même paiement ne sert jamais deux fois.
Bon à savoir
- Les États-Unis sont vérifiés par USPS (DPV), la France et l'outre-mer par la Base Adresse Nationale ; ailleurs, la vérification reste partielle.
degradedà vrai veut dire que le fournisseur n'a pas répondu : ce n'est pas une adresse fausse, rejouez l'appel plus tard.- Pas plus de 10 requêtes par seconde et par adresse IP.
- L'adresse n'est pas gardée dans les journaux ; le résultat reste 30 jours en cache, pour répondre plus vite.
- Une boutique sans portefeuille utilise le même service avec une clé d'API et un abonnement.
Questions fréquentes
Mon agent doit-il créer un compte ?
Non. Le paiement x402 suffit : aucune inscription, aucune clé d'API.
Quel portefeuille faut-il ?
Un portefeuille qui détient de l'USDC sur le réseau Base et sait signer une autorisation EIP-3009, comme ceux que proposent les bibliothèques x402.
Combien coûte la découverte ?
Rien. initialize, tools/list et la carte de découverte sont gratuits ; seul tools/call est payant, 0,02 USDC.
Et si le fournisseur ne répond pas ?
Le résultat porte degraded: true et une confiance basse. Ne bloquez pas la commande : rejouez l'appel un peu plus tard.