Run AI on someone's GPU
GPN's marketplace is one interface for LLM chat, image/video generation, and fine-tuning. You hit a single access point; the network routes your job to the best idle GPU and settles it on-chain. No provider addresses, no per-node wiring.
Try it now
This widget POSTs a chat request straight to a public testnet access point from your browser. It defaults to the current network entry point — change it if you run your own.
The public testnet access point speaks plain http:// on port 8092, and a
page served over https:// cannot call it (mixed content). Use the
curl example below from your machine, or run this site locally over
http://. An HTTPS access point is on the roadmap.
This is a browser calling an API directly. If the access point doesn't send
permissive Access-Control-Allow-Origin headers, the browser blocks the response
even though the server ran the job — use the curl example below instead. Also, a
page served over https:// cannot call a plain http:// host (mixed
content), and this page opened from file:// can't make same-origin calls at all —
serve it over http://.
Two ways to call it
A friendly OpenAI-compatible chat endpoint, and a general job API for everything else. Both are served by the same access point.
Chat — OpenAI-compatible
Drop-in for OpenAI-style clients. Send messages and get a completion
back.
POST /v1/chat/completions
{
"model": "auto",
"messages": [
{"role": "user", "content": "Hello!"}
]
}
Jobs — image / video / fine-tune
Submit a job with a type and parameters; poll for the result or artifact. The access point routes it and the chain escrows payment.
POST /jobs
{
"job_type": "ImageGeneration",
"model": "sd-turbo",
"prompt": "a cozy cabin at dusk",
"width": 512, "height": 512, "steps": 8,
"price_gpn": 5, "min_gflops": 800
}
GET /job/{id}/result
GET /job/{id}/artifact # PNG / MP4 / adapter
curl http://gpn-testnet.duckdns.org:8092/v1/chat/completions \
-H 'Content-Type: application/json' \
-d '{
"model": "llama3.2:1b",
"messages": [{"role":"user","content":"What is the capital of Kenya? Answer in one word."}]
}'
Job types & the escaping requestor model
Job types: LLMInference · ImageGeneration ·
VideoGeneration · FineTuning · MLInference ·
Custom.
Escrow = rate × max_output_tokens (the cap); the charge is rate × actual tokens used, and the surplus auto-refunds. Priced in dollars, settled in GPN, so a buyer's dollar cost is stable while the GPN amount floats.
Models
The model field is passed straight to the runtime, so you can name any
model a provider has. Use auto to let the network pick any available model.
| Kind | Examples | Notes |
|---|---|---|
| Chat (LLM) | llama3.2:1b, qwen2.5:0.5b, qwen2.5:1.5b |
The first two are guaranteed on every node (baseline pulls); auto = whichever is available. |
| Image | sd-turbo, sd15, plus any Hugging Face text-to-image id |
Diffusers runtime. |
| Video | ltx-video |
Needs a large host (T5-XXL encoder is heavy) — not for small cards. |
| Fine-tune | any Hugging Face causal-LM id | LoRA; a completed tune auto-serves as tuned-<jobid>. |
Bring your own: ollama pull <model> for
chat, or point model at a GGUF you've created. No weights, datasets, or prompts ever
touch the chain.
How GPN prices AI compute
Rates are cost-derived and charged per token against your actual usage.
Cost-derived
A roofline estimate of the provider's true throughput (compute- and memory-bandwidth-bound) ÷ realized tokens/sec × a margin — targeting roughly half of comparable market GPU-rental, and clamped at or above the provider's cost so a GPU always at least covers its cost.
Per-token escrow
You escrow rate × max_tokens; the provider meters
actual usage; you're charged rate × actual and the surplus auto-refunds.
You're never overcharged past your cap.
On the testnet, the access point can pay escrow from a hot wallet, so a client's
price_gpn is cosmetic — you spend nothing. On mainnet this mode is disabled and
callers sign with their own wallet.
What happens when you hit “send”
Filter by capability
The scheduler keeps only providers that meet the
job's min_gflops/VRAM/RAM requirement and have (or can pull) the model.
Require an idle GPU
A node already running a job isn't available — one GPU does one job at a time.
Pick lowest latency
Among eligible idle nodes, the least-ms provider wins (with a model-aware fallback for a node that can pull the model).
Escrow & settle
The chain escrows the payment and enforces the capability gate; the provider runs it off-chain and the result is settled. With payment channels, there's no per-job block delay.