Overview

Ignit3 is a Solana-native GPU bot protocol. It connects users who need compute with providers who have idle GPUs, pricing, routing, executing, and settling every job on-chain. You reach it through a Telegram bot, a web dashboard, the @ignit3/sdk package, or the REST API.

Architecture at a glance:

text
User / Agent ──▶ Bot / SDK / API
                      │
                      ▼
              Matching engine  ──▶  prices + routes job
                      │
                      ▼
        Anchor program (Solana)  ──▶  escrow SOL, record job
                      │
                      ▼
              GPU provider  ──▶  executes, returns result hash
                      │
                      ▼
        settle_job()  ──▶  release SOL + bump reputation

Key concepts: jobs are the unit of work, providers supply GPUs, the reputation oracle scores them 300–850, and x402 lets agents pay per task without accounts.

Getting Started

Install the SDK:

bash
npm i @ignit3/sdk

Request a quote and submit a job:

typescript
import { Ignit3Client } from "@ignit3/sdk";

const client = new Ignit3Client({ cluster: "mainnet-beta" });

// 1. Quote
const quote = await client.quote({
  task: "stable-diffusion-xl",
  gpu: "RTX 4090",
  units: 4,
});
console.log(quote.totalSol, quote.estDuration);

// 2. Submit (escrows SOL on-chain)
const job = await client.submit({
  task: "stable-diffusion-xl",
  units: 4,
  prompt: "an ignition spark over Solana",
});

// 3. Poll until complete
const result = await client.wait(job.id);
console.log(result.outputUrl);

Prefer the CLI? Quote without writing code:

bash
npx ignit3 quote stable-diffusion-xl 4

Or start from chat — open @ignit3_gpu_bot on Telegram and send /run.

Concepts

Jobs

A job moves through a fixed lifecycle: quote → submit → queued → running → completed | failed. SOL escrows at submit and releases only on verified completion. Poll status with the SDK or the REST endpoint.

typescript
const job = await client.getJob("job_a1b2c3");
// job.status: "queued" | "running" | "completed" | "failed"
// job.resultHash, job.payoutSol, job.providerScore

Pricing

Every job carries a flat protocol fee of 1.5–3% (default 2%). The base price is pricePerUnit × units × taskMultiplier; the fee is total × feeBps / 10000. Task multipliers: inference 1.0, analysis 1.2, generation 1.5, training 3.0. You always see the exact cost before submitting.

GPUs

Supported models and reference pricing:

ModelVRAMPrice/unitAvg Speed
H100 SXM80 GB0.120 SOL2.1s
A100 80GB80 GB0.080 SOL3.4s
RTX 409024 GB0.030 SOL4.2s
RTX 509032 GB0.050 SOL3.1s
H200141 GB0.150 SOL1.8s
L40S48 GB0.060 SOL3.8s
MI300X192 GB0.140 SOL2.0s
A600048 GB0.050 SOL4.0s
RTX 408016 GB0.020 SOL5.5s
V10032 GB0.010 SOL8.2s
T416 GB0.008 SOL12.0s
L424 GB0.015 SOL9.5s

API Reference

REST API

Base URL https://api.ignit3.dev/v1. All requests are JSON.

http
POST /quote
{ "task": "llama-70b", "gpu": "A100 80GB", "units": 8 }
→ 200 { "totalSol": 0.64, "feeSol": 0.0128, "estDuration": 3.4 }

POST /jobs
{ "task": "llama-70b", "units": 8, "input": { ... } }
→ 201 { "id": "job_d4e5f6", "status": "queued" }

GET /jobs/:id
→ 200 { "id": "job_d4e5f6", "status": "running", "progress": 0.42 }

SDK (TypeScript)

The Ignit3Client wraps the REST API and on-chain calls.

typescript
const client = new Ignit3Client({
  cluster: "mainnet-beta",
  wallet,            // optional: a Solana signer for on-chain submit
});

client.quote(params)        // Promise<Quote>
client.submit(params)       // Promise<Job>  (escrows SOL)
client.getJob(id)           // Promise<Job>
client.wait(id, { timeout }) // Promise<JobResult>
client.listProviders(filter) // Promise<Provider[]>

CLI

bash
ignit3 quote <task> <units>      # print a price quote
ignit3 run <task> --units 4      # submit a job
ignit3 status <jobId>            # check job status
ignit3 providers --gpu "H100 SXM"  # list providers
# flags: --json, --cluster, --wallet <keypair>

Guides

Provider Setup

Hardware: any supported GPU (RTX 4080 or better) on Linux with a recent NVIDIA/AMD driver. Install the provider agent, then register on-chain.

bash
curl -fsSL https://get.ignit3.dev | sh
ignit3-provider register --wallet ~/.config/solana/id.json
ignit3-provider start            # begins accepting jobs

No staking gate. You earn SOL per completed job and build reputation from uptime, speed, and execution quality.

Agent Integration

Agents call the same API but pay per task via x402 — no API keys, no accounts. Include payment in the request and the protocol settles it.

typescript
const res = await fetch("https://api.ignit3.dev/v1/jobs", {
  method: "POST",
  headers: { "X-PAYMENT": x402.sign(quote) },
  body: JSON.stringify({ task: "whisper-large", units: 2, input }),
});

x402 Payments

x402 lets machines pay machines: a 402 Payment Required response returns a quote, the client attaches a signed X-PAYMENT header, and settlement happens in SOL on Solana. Ignit3 is the first GPU marketplace to support it natively.

Reference

Reputation

A 300–850 score on an on-chain oracle, tracking uptime, speed, reliability, and job quality. Tiers: Bronze 300–499, Silver 500–649, Gold 650–749, Platinum 750–850. Higher tiers win more work and better pay. Improve your score by completing jobs quickly and staying online.

Error Codes

CodeMeaning
400 invalid_taskUnknown task name or unsupported parameters
402 payment_requiredMissing or invalid x402 payment header
404 job_not_foundNo job exists for the given id
409 no_capacityNo matching GPU currently available
422 invalid_resultProvider result hash failed verification
429 rate_limitedToo many requests — see rate limits

Rate Limits

EndpointLimit
POST /quote60 req / min
POST /jobs30 req / min
GET /jobs/:id240 req / min
GET /providers60 req / min