VORQ Docs
Reference

Configuration

Every environment variable the coordinator reads, and the address book format.

The coordinator is configured entirely through environment variables. Numeric values are integers; a value outside its range stops the process at boot with a message naming the variable. An empty value counts as unset.

Address book

The deployment's contract addresses. Supply exactly one of:

VariableMeaning
ADDRESSES_FILEPath to the address book JSON file.
ADDRESSES_JSONThe same JSON, inline.

Every key is required:

{
  "chainId": 84532,
  "deployBlock": 12345678,
  "jobRegistry": "0x…",
  "providerRegistry": "0x…",
  "askRegistry": "0x…",
  "usdc": "0x…",
  "paymentTokenDecimals": 6,
  "tokenDomain": { "name": "…", "version": "…" }
}
KeyMeaning
chainIdThe chain the contracts live on.
deployBlockThe block the index replays from on an empty database.
jobRegistry, providerRegistry, askRegistryContract addresses.
usdcThe payment token's address.
paymentTokenDecimalsThe payment token's decimals (0–36).
tokenDomainThe payment token's EIP-712 name and version.

Core

VariableDefaultRangePurpose
DATABASE_URLrequiredPostgreSQL 16+ connection string.
RELAYER_KEYrequiredPrivate key of the account that signs and pays for relayed transactions.
RPC_URLhttp://localhost:8545JSON-RPC endpoint.
PORT84021–65535HTTP port. The server binds 0.0.0.0.
CORS_ORIGINSunsetComma-separated exact browser origins, such as https://app.example.com,http://localhost:3000. Unset sends no CORS headers. *, wildcard hosts, paths and trailing slashes are refused at boot.

Indexer

VariableDefaultRangePurpose
GETLOGS_CAP50001–1000000Widest block range per eth_getLogs. Narrowed automatically when the endpoint refuses.
BLOCK_TIME_MS20001–3600000Indexer poll interval, and how long a readiness answer is cached.
READY_LAG_BLOCKS70–1000000How far the index may trail the head while still ready.

Relay

VariableDefaultRangePurpose
RELAY_MAX_DEPTH321–4096Relays that may queue on the relayer account. Beyond it: 503 relay_unavailable, relay_queue_full.
RELAY_QUEUE_TIMEOUT_MS100001–600000Longest a relay waits in that queue. Beyond it: 503 relay_unavailable, relay_queue_timeout.

Object storage and files

VariableDefaultRangePurpose
PIN_S3_ENDPOINTrequiredS3-compatible endpoint of an object store that pins to IPFS and returns each object's CID.
PIN_S3_KEY, PIN_S3_SECRETrequiredAccess key and secret.
PIN_S3_BUCKETrequiredBucket name.
PIN_S3_REGIONus-east-1Signing region.
MAX_BLOB_BYTES209715200 (200 MiB)1024–1073741824Largest POST /v1/files upload.
FILE_RETENTION_SECONDS2592000 (30 days)259200–31536000Lifetime of attached files and stored objects.

Matching

VariableDefaultRangePurpose
MATCH_LEASE_MS200001000–600000How long a provider poll holds a job. Keep it above the provider's poll interval plus a claim round trip.
MATCH_LIVENESS_MS150001000–600000How recently a provider must have polled to be named as a quote candidate.
MATCH_CANDIDATES31–100Candidates named on a 402 quote.

Escrow

VariableDefaultRangePurpose
ESCROW_MODEoffoff, static, mockstatic derives the escrow key from OPERATOR_KEY. mock is for development and CI only. See Run the escrow.
OPERATOR_KEYunsetRequired when ESCROW_MODE is not off. Comma-separated 32-byte hex private keys; the first derives the announced key, every entry still opens wraps sealed to its key.
RELEASE_ORDINAL10–65535Reported as evidence.release by GET /key. In mock mode, handover refuses peers on an older release.

mock mode only; static mode refuses to start with any of these set:

VariableDefaultRangePurpose
ESCROW_ROTATE_INTERVAL_MS864000003600000–604800000How often a new key generation is minted.
ESCROW_SWEEP_INTERVAL_MS3000001000–3600000How often retired generations past retention are erased.
PEER_URLunsetAn instance to pull keys from with POST /handover.
PEER_REQUIREDfalse1, 0, true, falseThe first pull must succeed before the node listens. Requires PEER_URL.
PEER_SYNC_S3005–86400Interval of the standing peer pull.
ESCROW_CLOCK_OFFSET_MS00–31536000000Runs the key-retention clock ahead, for tests.

Error reporting

VariablePurpose
SENTRY_DSNEnables error reporting to Sentry. Unset disables it.
SENTRY_ENVIRONMENT, SENTRY_RELEASEOptional tags for reported errors.

Reporting needs the instrumentation preloaded: the Docker image starts with node --import ./dist/instrument.js dist/main.js, and npm start preloads it too.

On this page