Skip to main content
Glama

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

low

1K

0,001 $

  • Total cobrado = por imagen × cantidad (count 1–8, o lote items: [["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_TABLE en server.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 viem
import { 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 → :4021

Variables 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_capacity cuando 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: declareDiscoveryExtension expone 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.jsonl están en gitignore: nunca los confirmes.

  • Usa un monedero dedicado para PAY_TO_ADDRESS; mantén las tesorerías en frío.

Licencia

MIT

A
license - permissive license
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • F
    license
    A
    quality
    D
    maintenance
    Access 5+ ATXP agent tools via MCP: web search, AI image generation, email, and music generation. Free tier with pay-per-use Pro tier via x402 micropayments (USDC on Base mainnet).
    5
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables 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.
    8
    7
    MIT

View all related MCP servers

Related MCP Connectors

View all MCP Connectors

Latest Blog Posts

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