Install
openclaw skills install geometryGenerate AI images from text prompts. Pay per request with USDC on Solana via x402. No API keys, no accounts.
openclaw skills install geometryGenerate images from text prompts. Pay per request with USDC on Solana via x402. No API keys, no accounts.
| Field | Value |
|---|---|
| Protocol | x402 (version 2) |
| Network | solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp |
| Scheme | exact |
| Currency | USDC |
| Facilitator | https://facilitator.payai.network |
| Pay To | 79BLYwUdsNpPzDktxjibFR4DKMhHV2Q8iBu7Fk7R9fuU |
Get the USDC price for a model. Free — no payment required.
| Parameter | Type | Required | Description |
|---|---|---|---|
| model | string | no | Model slug (default: flux-dev) |
Example response:
{
"success": true,
"data": {
"model": "flux-dev",
"costUsdc": 0.0325,
"paymentNetwork": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
"payTo": "79BLYwUdsNpPzDktxjibFR4DKMhHV2Q8iBu7Fk7R9fuU"
}
}
Generate an AI image from a text prompt. Requires x402 USDC payment.
| Parameter | Type | Required | Description |
|---|---|---|---|
| prompt | string | yes | Text prompt (1–1000 chars) |
| model | string | no | Model 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"
}
}
| Slug | Name | Price (USDC) |
|---|---|---|
| bagel | Bagel | $0.1300 |
| bytedance-seedream-v4.5-text-to-image | Bytedance | $0.0520 |
| bytedance-seedream-v3-text-to-image | Bytedance | $0.0390 |
| bytedance-dreamina-v3.1-text-to-image | Bytedance | $0.0390 |
| bytedance-seedream-v4-text-to-image | Bytedance Seedream v4 | $0.0390 |
| emu-3.5-image-text-to-image | Emu 3.5 Image | $0.1950 |
| flux-pro-kontext-max-text-to-image | FLUX.1 Kontext [max] | $0.1040 |
| flux-pro-kontext-text-to-image | FLUX.1 Kontext [pro] | $0.0520 |
| flux-dev | FLUX.1 [dev] | $0.0325 |
| flux-pro-v1.1-ultra | FLUX1.1 [pro] ultra | $0.0780 |
| bria-fibo-generate | Fibo | $0.0520 |
| bria-fibo-lite-generate | Fibo Lite | $0.0468 |
| gemini-25-flash-image | Gemini 2.5 Flash Image | $0.0517 |
| gemini-3-pro-image-preview | Gemini 3 Pro Image Preview | $0.1950 |
| xai-grok-imagine-image | Grok Imagine Image | $0.0260 |
| ideogram-v3 | Ideogram Text to Image | $0.0390 |
| ideogram-v2 | Ideogram V2 | $0.1040 |
| imagen4-preview | Imagen 4 | $0.0520 |
| imagen4-preview-fast | Imagen 4 | $0.0260 |
| imagen4-preview-ultra | Imagen 4 Ultra | $0.0780 |
| kling-image-v3-text-to-image | Kling Image | $0.0364 |
| kling-image-o3-text-to-image | Kling Image | $0.0364 |
| minimax-image-01 | MiniMax (Hailuo AI) Text to Image | $0.0130 |
| nano-banana | Nano Banana | $0.0517 |
| nano-banana-pro | Nano Banana Pro | $0.1950 |
| qwen-image-max-text-to-image | Qwen Image Max | $0.0975 |
| recraft-v3-text-to-image | Recraft V3 | $0.0520 |
| reve-text-to-image | Reve | $0.0520 |
| vidu-q2-text-to-image | Vidu | $0.0650 |
| wan-v2.2-5b-text-to-image | Wan | $0.0208 |
| wan-v2.2-a14b-text-to-image | Wan | $0.0325 |
| wan-25-preview-text-to-image | Wan 2.5 Text to Image | $0.0650 |
| wan-v2.2-a14b-text-to-image-lora | Wan v2.2 A14B Text-to-Image A14B with LoRAs | $0.0650 |
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);
# 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