VORQ Docs
Reference

Chain and market reads

The deployment context, provider asks and floors, the job book, wallet summaries, provider records and the escrow key.

Reads of on-chain state, served by the coordinator. Model and provider filters take integer ids, not names; get a model's id from Number(model.vorq.model_id).

MethodReturns
chainContext()ChainContext
asks({ model?, limit?, offset? })AskBook
floors({ model?, sla?, limit?, offset? })FloorBook
jobs({ state?, model?, provider?, owner?, postedBefore?, order?, limit?, offset? })JobBook
jobsSummary({ owner })JobsSummary
evmJob(jobId)One job row in its on-chain shape (EvmJob, a plain record).
providers(id)ProviderRecord
allowlist({ limit?, offset? })Allowlist
escrowKey()EscrowKeyAnnouncement

ChainContext

The deployment every signature is bound to, from GET /evm/chain. Read once and cached for the client's lifetime.

MemberType
chainIdnumber
jobRegistry, providerRegistry, askRegistry, usdcAddress
decimalsnumber (the payment token's)
tokenDomain{ name: string; version: string } (the payment token's EIP-712 domain)
feeBpsnumber (the protocol fee, in basis points)

Paging

AskBook, FloorBook, JobBook and Allowlist are pages. Each carries asOfBlock (bigint | null), truncated and nextOffset:

  • Loop on nextOffset, passing it back as offset, until it is null. truncated alone (the page was cut by the response size budget) does not tell you whether more rows exist.
  • limit defaults to 100 and is at most 1000.
  • The coordinator refuses offsets past 1 000 000 with a 400; narrow the query instead.
const rows = [];
for (let offset: number | null = 0; offset !== null; ) {
  const page = await client.jobs({ owner, offset });
  rows.push(...page.jobs);
  offset = page.nextOffset;
}

asks

Published provider asks. AskBook.asks is a list of:

MemberType
providerId, modelIdnumber
slanumber (window seconds)
rateIn, rateOutbigint

floors

The cheapest ask per (model, window) across listed providers. Input and output are minimised independently, so the two floors may come from different providers. sla narrows to one window: "async", "batch", "1h" or "24h"; any other value raises ValidationError before a request.

FloorBook.floors is a list of { modelId, sla, rateIn, rateOut }, typed as in asks. A figure in the response that is not an integer raises VorqError rather than defaulting to zero.

jobs

On-chain job rows (JobBook.jobs, plain records).

FilterMeaning
state"Open", "Claimed", "Settled" or "Cancelled".
model, providerInteger ids.
ownerA wallet address.
postedBeforeA block number; only jobs posted at or before it.
order"oldest" (default) or "newest".

jobsSummary

One wallet's totals. owner is required and must be a string, else ValidationError.

MemberTypeMeaning
jobs, completednumberCounts.
pricednumberRows whose cap could be computed; the rest are left out of escrowed.
escrowedbigintEscrow caps summed, in atomic token units.
byModel{ modelId, jobs, completed, priced, escrowed }[]The same, per model.
asOfBlockbigint | null

A figure that is not an integer raises VorqError.

providers

ProviderRecord: providerId, operator (address), boxKey (the Curve25519 key designated orders are sealed to, 0x-prefixed), listed and raw (the full record, including any attestation evidence).

allowlist

The on-chain measurement allowlist the Verifier checks against. entries is a list of { key, status, entry }; status 2 is a revoked entry.

escrowKey

The coordinator's escrow key announcement, unverified: escrowPublicKey (64 hex characters, no 0x), evidence and issuedAt (unix seconds). Open orders verify it themselves before sealing; see Verifier.

On this page