VSLOT

Search → Reserve → Job → Execute → Verify → Settle

The lifecycle from code. Copy any snippet and adapt it - each is illustrative (Example), not a released SDK surface.

01Search
SDKAPI
Example
02Reserve
SDKAPI
Example
03Job
SDKAPI
Example
04Execute
API
Example
05Verify
SDKAPI
Example
06Settle
SDKAPI
Example

Search → Reserve → Job → Execute → Proof → Settlement

Search VSlotsdemo
// POST /v1/slots/search
await vslot.slots.search({
  gpu: { model: "RTX 4090", count: { gte: 1 } },
  ramMb: { gte: 32_768 },
  region: "US",
  maxPricePerHour: "3.00",
  durationSeconds: 2 * 3600,
})
Reservedemo
// POST /v1/reservations (intent) then confirm on-chain
const reservation = await vslot.reserve(slot, {
  startTime, endTime,
})
// then: consumer sends reserveSlot tx + POST /v1/reservations/:id/confirm
Create jobdemo
// POST /v1/jobs — resources are bounded by the reservation commit
const job = await vslot.jobs.create({
  reservationId: reservation.id,
  resources: { cpuUnits: 8_000, ramMb: 16_384, gpuCount: 1 },
  spec: {
    image: "ghcr.io/acme/train@sha256:<digest>",
    command: ["python", "train.py"],
  },
})
Execute jobdemo
// Execute on the reserved capacity — the provider agent runs the job manifest.
const execution = await vslot.jobs.run(job.id, {
  manifest: job.spec,
})
// returns the Execution object; the agent signs a UsageProof on completion
Read usage proofdemo
// The executor signs a UsageReport bound to execution + manifest.
const proof = await vslot.executions.proof(job.id)
// verified, usage within ask, digests bound to stdout/stderr
Settlementdemo
// POST /v1/reservations/:id/settlement — exactly-once per reservation.
const settlement = await vslot.reservations.settlement(reservation.id)
// providerPayout + consumerRefund === servicePayment

Run the infrastructure yourself

Install the VSlot agent on a machine to join the network as a provider.