Назад към всички

Geometry

// Generate AI images from text prompts. Pay per request with USDC on Solana via x402. No API keys, no accounts.

$ git log --oneline --stat
stars:1,933
forks:367
updated:March 4, 2026
SKILL.mdreadonly
SKILL.md Frontmatter
nameGeometry
sluggeometry
version1.0.0
descriptionGenerate AI images from text prompts. Pay per request with USDC on Solana via x402. No API keys, no accounts.
authorgeometry
tagsimage-generation,ai,solana,x402,usdc,flux,ideogram,imagen
homepagehttps://geometry.sh
docshttps://app.geometry.sh/developers

Geometry — AI Image Generation API

Generate images from text prompts. Pay per request with USDC on Solana via x402. No API keys, no accounts.

Payment

FieldValue
Protocolx402 (version 2)
Networksolana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp
Schemeexact
CurrencyUSDC
Facilitatorhttps://facilitator.payai.network
Pay To79BLYwUdsNpPzDktxjibFR4DKMhHV2Q8iBu7Fk7R9fuU

Endpoints

GET /api/x402/generate/quote

Get the USDC price for a model. Free — no payment required.

ParameterTypeRequiredDescription
modelstringnoModel slug (default: flux-dev)

Example response:

{
  "success": true,
  "data": {
    "model": "flux-dev",
    "costUsdc": 0.0325,
    "paymentNetwork": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
    "payTo": "79BLYwUdsNpPzDktxjibFR4DKMhHV2Q8iBu7Fk7R9fuU"
  }
}

POST /api/x402/generate

Generate an AI image from a text prompt. Requires x402 USDC payment.

ParameterTypeRequiredDescription
promptstringyesText prompt (1–1000 chars)
modelstringnoModel slug (default: flux-dev)

Example request:

{
  "prompt": "A neon-lit Tokyo alley in the rain",
  "model": "flux-dev"
}

Example response:

{
  "success": true,
  "data": {
    "id": "ab0e4a1b-179f-4a6e-b505-53206a3e2e4b",
    "status": "completed",
    "prompt": "A neon-lit Tokyo alley in the rain",
    "model": "flux-dev",
    "costUsdc": 0.0325,
    "imageUrl": "https://cdn.geometry.sh/generations/user-id/gen-id.png",
    "createdAt": "2026-02-15T17:29:17.256Z"
  }
}

Available Models

SlugNamePrice (USDC)
bagelBagel$0.1300
bytedance-seedream-v4.5-text-to-imageBytedance$0.0520
bytedance-seedream-v3-text-to-imageBytedance$0.0390
bytedance-dreamina-v3.1-text-to-imageBytedance$0.0390
bytedance-seedream-v4-text-to-imageBytedance Seedream v4$0.0390
emu-3.5-image-text-to-imageEmu 3.5 Image$0.1950
flux-pro-kontext-max-text-to-imageFLUX.1 Kontext [max]$0.1040
flux-pro-kontext-text-to-imageFLUX.1 Kontext [pro]$0.0520
flux-devFLUX.1 [dev]$0.0325
flux-pro-v1.1-ultraFLUX1.1 [pro] ultra$0.0780
bria-fibo-generateFibo$0.0520
bria-fibo-lite-generateFibo Lite$0.0468
gemini-25-flash-imageGemini 2.5 Flash Image$0.0517
gemini-3-pro-image-previewGemini 3 Pro Image Preview$0.1950
xai-grok-imagine-imageGrok Imagine Image$0.0260
ideogram-v3Ideogram Text to Image$0.0390
ideogram-v2Ideogram V2$0.1040
imagen4-previewImagen 4$0.0520
imagen4-preview-fastImagen 4$0.0260
imagen4-preview-ultraImagen 4 Ultra$0.0780
kling-image-v3-text-to-imageKling Image$0.0364
kling-image-o3-text-to-imageKling Image$0.0364
minimax-image-01MiniMax (Hailuo AI) Text to Image$0.0130
nano-bananaNano Banana$0.0517
nano-banana-proNano Banana Pro$0.1950
qwen-image-max-text-to-imageQwen Image Max$0.0975
recraft-v3-text-to-imageRecraft V3$0.0520
reve-text-to-imageReve$0.0520
vidu-q2-text-to-imageVidu$0.0650
wan-v2.2-5b-text-to-imageWan$0.0208
wan-v2.2-a14b-text-to-imageWan$0.0325
wan-25-preview-text-to-imageWan 2.5 Text to Image$0.0650
wan-v2.2-a14b-text-to-image-loraWan v2.2 A14B Text-to-Image A14B with LoRAs$0.0650

Quick Start

JavaScript

import { createKeyPairSignerFromBytes } from "@solana/kit";
import { wrapFetchWithPayment, x402Client } from "@x402/fetch";
import { ExactSvmScheme } from "@x402/svm/exact/client";

const signer = await createKeyPairSignerFromBytes(keypairBytes);
const client = new x402Client();
client.register("solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp", new ExactSvmScheme(signer));

const fetchWithPay = wrapFetchWithPayment(fetch, client);

const res = await fetchWithPay("https://api.geometry.sh/api/x402/generate", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({ prompt: "A cat in space" }),
});

const { data } = await res.json();
console.log(data.imageUrl);

cURL

# Step 1: Get a quote (free)
curl https://api.geometry.sh/api/x402/generate/quote?model=flux-dev

# Step 2: POST to generate (returns 402 with payment instructions)
curl -X POST https://api.geometry.sh/api/x402/generate \
  -H "Content-Type: application/json" \
  -d '{"prompt": "A cat in space", "model": "flux-dev"}'

# Step 3: Use an x402 client to handle payment automatically
# npm install @x402/fetch @x402/svm