Skip to main content
Glama

x402 Image API

Bezahlte KI-Bildgenerierung über das x402-Protokoll – $0.001/Bild, USDC auf Base, keine API-Schlüssel.

Live-Endpunkt: https://x402.chaly.org · health · OpenAPI 3.1 · .well-known/x402 · llms.txt

Der x402-Standard belebt HTTP 402 Payment für Zahlungen zwischen Maschinen neu: Ein Käufer (Mensch oder KI-Agent) sendet per POST einen Prompt, erhält ein signiertes Zahlungsangebot im PAYMENT-REQUIRED-Header, autorisiert mit seiner Wallet eine EIP-3009-USDC-Übertragung, wiederholt die Anfrage, und ein Drittanbieter-Facilitator verifiziert und wickelt das Settlement onchain ab. Keine Konten, keine API-Schlüssel, keine Gasgebühren für den Käufer – die Zahlung IST die Authentifizierung.

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: [...]}

Preise

Qualität

Megapixel

pro Bild

low

1K

$0.001

  • Der Gesamtpreis = Einzelpreis × Anzahl (count 1–8, oder Batch items: [["prompt", n], …], gesamt ≤ 8).

  • Das Seitenverhältnis ist kostenlos.

  • Größere Stufen existieren in der internen Preistabelle, ausgewiesen werden aber nur auslieferbare Stufen.

  • Das Pricing ist dynamisch: Das 402-Angebot wird pro Anfrage aus dem body berechnet (PRICE_TABLE in server.js), sodass der Käufer genau die Zahlung angeboten bekommt, die vom Handler generiert wird.

Related MCP server: forgemesh-imagegen

Schnellstart für Käufer

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"

Eine vollständig lauffähigen Client (inklusive Polling) findest du in client.mjs.

MCP-Server

mcp-server.mjs stellt die API als MCP-Tools bereit (image_generate, image_health, image_openapi, image_poll), sodass Coding-Agenten direkt Bilder generieren können:

{
  "mcpServers": {
    "x402-image-api": {
      "command": "node",
      "args": ["mcp-server.mjs"],
      "env": {
        "X402_API_URL": "https://x402.chaly.org",
        "BUYER_PRIVATE_KEY": "0x…"
      }
    }
  }
}

Die nicht zahlungspflichtigen Tools (health/openapi/poll) funktionieren ohne Schlüssel.

Selbsthosting

npm install
cp .env.example .env      # set PAY_TO_ADDRESS (public address only!)
npm start                 # node --env-file=.env server.js → :4021

Wichtige Umgebungsvariablen: PAY_TO_ADDRESS, X402_NETWORK (eip155:8453), X402_FACILITATOR_URL (z. B. PayAI), PORT, OUT_DIR, PUBLIC_URL, MAX_COUNT sowie MEDIA_IO_PROJECT_DIR – der Pfad zu deinem Generation-Backend.

Plug-bar-Backend: Die Express-Layer startet pro Anfrage einen einmaligen Worker-Subprozess und liest eine einzelne JSON-Zeile als letzte stdout-Ausgabe. Dieses Repository liefert den eigentlichen Bridge-Worker (gen_worker.py) nicht mit; er wird privat gehalten. Um einen eigenen Generator anzubinden, stelle ein ausführbares Programm bereit, das

  • {prompt, aspect, megapixels, quality, count, …} als JSON von stdin liest,

  • {ok, urls: [...], …} als letzte stdout-Zeile schreibt,

  • im Fehlerfall mit einem Exit-Code ungleich 0 endet.

Öffentliche Bereitstellung (ohne VPS)

Ein Claude? No.

A Cloudflare Tunnel ist der einzige Eingang – TLS endet an Cloudflares Edge und ein ausgefallener Origin-Server liefert automatisch 503/530 aus (kostenloser Heartbeat). Die vollständige Anleitung steht in cloudflared/README.md; parallele Startskripte gibt es in scripts/ (+ systemd-Units für Linux).

Design-Hinweise

  • Middleware-Reihenfolge ist wichtig: express.json() läuft vor der Payment-Middleware, damit die Dynamik-Preis-Funktion den geparsten Body lesen kann – sonst wird ein $0.008-Batch stillschweigend als ein einzelnes $0.001-Bild angeboten.

  • Kapazitäts-Gate vor der Zahlung: Eine Middleware vor der Zahlung gibt 503 insufficient_capacity zurück, wenn heute kein Generierungsslot verfügbar ist, und bricht damit ab bevor ein 402 ausgelöst wird – Käufer signieren nichts, das wir nicht liefern können.

  • 202 + Polling statt langlaufender Antworten: Die Erzeugung dauert ~50–90 s/Bild. Ein Job-Handle wird sofort zurückgegeben, vermeidet so Gateway-Timeouts (Cloudflare-Grenze von 100 s) und eignet sich für Batches mit bis zu 8 Bildern.

  • White-Label-Ausgabe: PNGs landen unter GET /images/:file (Hash-Namen, Trafficking guards) und werden von deiner Domain served.

  • Bazaar-Entdeckung: declareDiscoveryExtension macht den Dienst über den x402 Bazaar auffindbar; Agenten können ihn finden, ohne die URL zu kennen.

  • Idempotenz: "id" rendert deduziert – gecachte Ergebnisse werden ohne Neu-Generierung zurückgegeben (orders.jsonl + In-Memory-Jobs).

Sicherheit

  • Der Server hält ausschließlich deine öffentliche Empfangsadresse; das Settlement erfolgt onchain und landet in deiner Wallet.

  • .env, jobs.json und orders.jsonl sind gitignored – committe sie niemals.

  • Verwende eine eigene Wallet für PAY_TO_ADDRESS; Tresore kühlst aufbewahren.

Lizenz

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