VORQ Docs
Reference

Signed messages

Every EIP-712 domain and type the coordinator verifies, and where each is used.

Every write is authorised by an EIP-712 signature (65 bytes, 0x-hex). Field widths below are the contracts' own. GET /evm/chain returns the chain id and contract addresses the domains need.

Domains

Domain nameversionchainIdverifyingContractTypes
VORQ Jobs2deployment chainJobRegistryOrder, Cancel, Claim, Settle, Fail
VORQ Providers2deployment chainProviderRegistrySetIdentity, RequestCapacity
VORQ Asks2deployment chainAskRegistryAskSnapshot
payment token's token_domain.nametoken_domain.versiondeployment chainpayment tokenReceiveWithAuthorization
VORQ Escrow1deployment chain(none)Release, HandoverAuth
VORQ Session1deployment chain(none)VorqSession

At boot the coordinator checks the job, provider, ask and payment-token domains against each contract's DOMAIN_SEPARATOR and refuses to start on a mismatch.

Job registry

Order

Order(bytes32 c,uint32 modelId,uint32 slaSecs,uint128 rateIn,uint128 rateOut,uint32 unitsIn,uint32 unitsOut,uint32 designated,uint64 expiresAt)

Signed by the owner. Used by POST /v1/jobs. taskCid is not signed: the coordinator mints it when it stores the container.

Cancel

Cancel(bytes32 jobId,uint64 issuedAt)

Signed by the owner. Used by POST /v1/jobs/{id}/cancel. issuedAt within ±600 seconds.

Claim

Claim(bytes32 jobId,uint64 issuedAt)

Signed by the provider wallet. op: "claim" on POST /evm/ops. issuedAt within ±600 seconds.

Settle

Settle(bytes32 jobId,uint32 completionTok,uint64 issuedAt)

Signed by the provider wallet. op: "settle". resultCid is not signed: the coordinator mints it when it stores the result. issuedAt within ±600 seconds.

Fail

Fail(bytes32 jobId,uint64 issuedAt)

Signed by the provider wallet. op: "fail". issuedAt within ±600 seconds.

Provider registry

SetIdentity

SetIdentity(bytes32 boxKey,bytes evidence,uint64 issuedAt)

Signed by the provider wallet. op: "set_identity". issuedAt greater than the last accepted SetIdentity and at most one hour ahead.

RequestCapacity

RequestCapacity(uint32 n,uint64 issuedAt)

Signed by the provider wallet. op: "request_capacity". issuedAt greater than the last accepted RequestCapacity and at most one hour ahead.

Ask registry

AskSnapshot

AskSnapshot(uint32 providerId,uint64 signedAt,Ask[] quotes)
Ask(uint32 modelId,uint32 sla,uint128 rateIn,uint128 rateOut)

Signed by the provider wallet. Used by PUT /evm/asks. At most 64 quotes; signedAt newer than the provider's last and at most one hour ahead.

Payment

ReceiveWithAuthorization

ReceiveWithAuthorization(address from,address to,uint256 value,uint256 validAfter,uint256 validBefore,bytes32 nonce)

EIP-3009, in the payment token's own domain. Signed by the owner as auth_sig on POST /v1/jobs.

FieldValue
fromthe order's owner
tothe JobRegistry
valuethe quoted amount
validAfter0
validBeforeexpires_at + 1
noncethe job_id

The payer must be an account with no contract code. The token collects the payment when the job is claimed.

Escrow

Release

Release(bytes32 jobId,bytes seedWrap,bytes32 ctHash,bytes32 responsePubkey,uint64 issuedAt)

Signed by the claiming provider's wallet. Used by POST /release. issuedAt within ±600 seconds.

HandoverAuth

HandoverAuth(bytes32 channelPubkey,uint64 issuedAt)

Signed with an OPERATOR_KEY. Used by POST /handover between development-mode instances.

Session

VorqSession

VorqSession(address address,string nonce)

Signed by the wallet opening the session. Used by POST /auth/session.

On this page