x402-image-api
x402 Image API
Generación de imágenes por IA de pago en el protocolo x402: 0,001 $/imagen, USDC en Base, sin claves de API.
Punto de conexión activo: https://x402.chaly.org · salud · OpenAPI 3.1 · .well-known/x402 · llms.txt
El estándar x402 recupera el código HTTP 402 Payment Required para pagos
nativos de máquina: un comprador (humano o agente de IA) envía un prompt
mediante POST, recibe una oferta de pago firmada en la cabecera
PAYMENT-REQUIRED, autoriza una transferencia USDC EIP-3009 con su monedero,
reintenta la solicitud y un facilitador externo verifica y liquida en cadena.
Sin cuentas, sin claves de API, sin gas para el comprador: el pago ES la
autenticación.
POST /generate {prompt} → 402 + PAYMENT-REQUIRED (machine-readable offer)
↳ buyer signs EIP-3009 authorization (USDC on Base)
POST /generate {prompt} + PAYMENT-SIGNATURE
→ 202 {jobId, pollUrl, estimatedSeconds}
GET /result/:id every ~5s → processing … → done {urls: [...]}Precios
calidad | megapíxeles | por imagen |
| 1K | 0,001 $ |
Total cobrado = por imagen × cantidad (
count1–8, o loteitems: [["prompt", n], …], total ≤ 8).La relación de aspecto es gratuita.
Existen niveles superiores en la tabla de precios interna, pero solo se anuncian los niveles disponibles.
Los precios son dinámicos: la oferta 402 se calcula por solicitud a partir del cuerpo (
PRICE_TABLEenserver.js), de modo que lo que se pide al comprador es exactamente lo que genera el manejador.
Related MCP server: forgemesh-imagegen
Inicio rápido del comprador
npm i @x402/fetch @x402/evm viemimport { wrapFetchWithPaymentFromConfig } from "@x402/fetch";
import { ExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";
const account = privateKeyToAccount(process.env.BUYER_PRIVATE_KEY);
const fetchWithPay = wrapFetchWithPaymentFromConfig(fetch, {
schemes: [{ network: "eip155:8453", client: new ExactEvmScheme(account) }],
});
// 402 → auto-pay → retry → 202 {jobId, pollUrl}
const res = await fetchWithPay("https://x402.chaly.org/generate", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ prompt: "a red cube on a blue table", count: 1 }),
});
const job = await res.json();
// poll GET job.pollUrl every 5s until status === "done"Consulta client.mjs para ver un cliente ejecutable completo (incluida la consulta periódica).
Servidor MCP
mcp-server.mjs expone la API como herramientas MCP
(image_generate, image_health, image_openapi, image_poll) para que los
agentes de programación puedan generar imágenes directamente:
{
"mcpServers": {
"x402-image-api": {
"command": "node",
"args": ["mcp-server.mjs"],
"env": {
"X402_API_URL": "https://x402.chaly.org",
"BUYER_PRIVATE_KEY": "0x…"
}
}
}
}Las herramientas gratuitas (health/openapi/poll) funcionan sin clave.
Autoalojamiento
npm install
cp .env.example .env # set PAY_TO_ADDRESS (public address only!)
npm start # node --env-file=.env server.js → :4021Variables de entorno clave: PAY_TO_ADDRESS, X402_NETWORK (eip155:8453),
X402_FACILITATOR_URL (p. ej., PayAI), PORT, OUT_DIR, PUBLIC_URL,
MAX_COUNT, además de MEDIA_IO_PROJECT_DIR — ruta a tu backend de generación.
Backend conectable: la capa Express ejecuta un subproceso de trabajo
puntual por solicitud y lee una única línea JSON de la salida estándar. Este
repositorio incluye el lado del vendedor; nuestro propio worker de puente
(gen_worker.py) se mantiene privado. Para conectar tu propio generador,
proporciona un ejecutable que
lea
{prompt, aspect, megapixels, quality, count, …}como JSON en la entrada estándar,escriba
{ok, urls: [...], …}como última línea de la salida estándar,termine con un código distinto de cero en caso de error.
Exposición pública (sin VPS)
Un Cloudflare Tunnel es la única puerta de entrada: TLS termina en el borde de
Cloudflare y un origen caído devuelve 503/530 automáticamente (latido gratuito).
Guía completa en cloudflared/README.md; scripts de
lanzamiento paralelos en scripts/ (+ unidades systemd para Linux).
Notas de diseño
El orden del middleware importa:
express.json()se ejecuta antes que el middleware de pago para que la función de precio dinámico pueda leer el cuerpo analizado; de lo contrario, un lote de 0,008 $ se cotiza silenciosamente como una imagen de 0,001 $.Control de capacidad antes del pago: un middleware previo al pago devuelve
503 insufficient_capacitycuando no hay ninguna ranura de generación disponible actualmente, lo que cortocircuita antes de cualquier 402: los compradores nunca firman algo que no podemos entregar.202 + sondeo en lugar de respuestas de larga duración: la generación tarda entre 50 y 90 s/imagen; devolver un identificador de trabajo de inmediato evita los tiempos de espera de la puerta de enlace (límite de 100 s de Cloudflare) para lotes de hasta 8 imágenes.
Salida de marca blanca: los PNG se guardan en
GET /images/:file(nombres hash, protegidos contra recorridos de ruta) servidos desde tu dominio.Descubrimiento en Bazaar:
declareDiscoveryExtensionexpone este servicio en el Bazaar de x402; los agentes pueden encontrarlo sin que se les indique la URL.Idempotencia: pasa
"id"para deduplicar reintentos: los resultados en caché se devuelven sin regenerar (orders.jsonl+ trabajos en memoria).
Seguridad
El servidor solo conserva tu dirección pública de recepción; la liquidación se facilita en cadena y llega a tu monedero.
.env,jobs.json,orders.jsonlestán en gitignore: nunca los confirmes.Usa un monedero dedicado para
PAY_TO_ADDRESS; mantén las tesorerías en frío.
Licencia
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers

forgemesh-imagegenofficial
AlicenseAqualityCmaintenanceMCP server for AI image generation with automatic USDC payments on Base mainnet. Generate, remove backgrounds, and upscale images via simple tool calls.41911MIT
paean-pay-mcpofficial
AlicenseNot gradedqualityDmaintenanceEnables AI agents to send and receive USDC stablecoin payments on Base and Solana blockchains through MCP tools for wallet operations, balance checks, payment requests, and transfers.87MIT- AlicenseNot gradedqualityDmaintenanceMCP server with X402 payment integration, enabling AI agents to access paid tools like weather, web search, and image generation with crypto payments via MetaMask on Base network.MIT
Related MCP Connectors
63 pay-per-call tools for agents: vision, text, data, web, blockchain. USDC on Base via x402.
Monetize any MCP server: x402 paywall, pay-per-call billing in USDC on Base, agent marketplace.
OCR, transcription, file extraction, and image generation for AI agents via MCP.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Calivvvv/x402-image-api'
If you have feedback or need assistance with the MCP directory API, please join our Discord server