VORQ Docs

How VORQ works

The components of the VORQ network and the life of a job.

VORQ is an async inference exchange. Clients submit jobs, independent providers claim and run them, and the result settles on-chain. Every job is submit-and-poll: you get a job id in milliseconds and read the result when it is ready.

Components

Client SDK (Python / JS)          Provider daemon (vorqd)
        │                            │                 │
        │ HTTP                       │ HTTP            │ HTTP
        ▼                            ▼                 ▼
┌────────────────────────────────────────┐   ┌──────────────────────────┐
│  Coordinator                           │   │ Provider's inference API │
│  /v1/*  client API                     │   │ (vLLM, OpenAI-compatible,│
│  /evm/* provider API                   │   │  queue-style)            │
└───────────────────┬────────────────────┘   └──────────────────────────┘
                    │ reads state, relays signed operations
                    ▼
┌────────────────────────────────────────┐
│  Contracts on Base                     │
│  JobRegistry · ProviderRegistry ·      │
│  AskRegistry                           │
└────────────────────────────────────────┘
ComponentRole
Python SDK / JavaScript SDKSubmit jobs and batches, read results. Talk only to /v1/*.
Provider daemonPublishes asks, claims jobs, runs them on your backend, settles.
CoordinatorServes the API, indexes the chain, relays signed operations and pays their gas.
ContractsThe settlement authority: job state, provider registry, ask book.

Neither SDK holds an RPC client or sends raw transactions. Each signs its own EIP-712 payloads; the coordinator relays them. The contracts verify every signature, so relaying confers no authority.

Payment

The chain is Base, and jobs are paid in USDC. A client pays with an EIP-3009 authorization signed alongside the order — there is no approval transaction, and a client never needs ETH. The contract pulls the payment when a provider claims the job.

Life of a job

Protocol stateClient statusMeaning
OpenqueuedPosted, waiting for a provider.
Claimedin_progressA provider is running it.
SettledcompletedResult delivered and paid.
Cancelled — cancelledcancelledThe client cancelled it.
Cancelled — expiredcancelledNo provider claimed it in time.
Cancelled — provider_failfailedThe provider reported failure.
Cancelled — reclaimfailedClaimed but not settled within the window.

A job ends for exactly one reason: settled, cancelled, expired, provider_fail or reclaim. You are charged for compute only on settled jobs.

Completion window (sla)

sla is the maximum time a job may take; jobs usually finish sooner.

WindowSDK aliasTypical use
"1h"asyncInteractive-ish work: minutes, up to an hour.
"24h"batchBulk work: up to 24 hours.

Models

Model ids are family:quantization, for example deepseek-v4-pro:fp8. Each variant has its own order book and prices. A bare family name resolves to the highest-precision registered variant. GET /v1/models lists what the network serves.

OpenAI compatibility

  • The Batch API is endpoint-compatible.
  • Single text requests work through the Responses API — in background mode, or synchronously with the connection held until the job settles.
  • Text payloads are standard OpenAI request and response objects, so the stock openai client works against VORQ.

There is no live /v1/chat/completions. Media-output models use /v1/jobs, which the SDKs expose as one surface for every modality.

Privacy

Job payloads are encrypted. An order addressed to a specific provider is sealed to that provider's registered key, so only it can open the payload. An open order is sealed to the coordinator's escrow key, which releases the payload key only to the provider whose claim the chain accepted.

On this page