Skip to content
Tenzro
← All tutorials
Tutorial · Inference and training

Rent compute capacity

Book a provider's capacity for a fixed term, check the price against the network's compute price index, and pay per epoch on the chain's SLA verdict.

Intermediate20 min

Sometimes you want the machine rather than answers from it: a GPU for a fine-tuning job, CPU cores for a batch pipeline, memory for a large index. On Tenzro Network 1 you book a provider's capacity for a fixed number of epochs. You lock the term up front, and value streams to the provider one epoch at a time. Each epoch, validators check that the provider actually delivered, and billing follows the chain's verdict: an epoch the provider fails is not charged, and you keep that slice.

Prerequisites

  • The tenzro CLI and a funded account (TNZO, or a supported stablecoin for the prepaid balance).
  • A passkey wallet from the Console, used to sign in to the rented machine.
  • The RPC address of a provider offering capacity. See step 1.

1. Find capacity and read the offer

Providers announce what they have chosen to rent out. Ask a provider what it offers and what is left:

bash
curl -s https://PROVIDER_RPC -H 'content-type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tenzro_rentableCapacity","params":[]}'

The result lists the CPU cores, memory, accelerator memory and disk the operator offers, what remains uncommitted, and whether the machine is held exclusively by another renter. The provider's current rate and active rentals:

bash
tenzro node compute status --rpc https://PROVIDER_RPC

2. Check the price against the index

A provider may charge a flat rate or a network-dynamic rate. Before you book, quote the full term at the provider's hourly rate:

bash
curl -s https://PROVIDER_RPC -H 'content-type: application/json' \
  -d '{"jsonrpc":"2.0","id":2,"method":"tenzro_quoteRental","params":{"term":"weekly","periods":2,"price_per_hour":1000000000000000}}'

Then compare the quote with the compute price index. The index is built from metered, attested usage across the network and committed to consensus, so every node reports the same reference price for a resource class. A quote far above the index is a reason to shop elsewhere; one far below it is a reason to check the provider's reputation and certifications. See Compute claims and price index.

3. Fund a prepaid balance

Streaming settlement draws from a prepaid balance rather than debiting your account every epoch. The deposit is signed by your account and moves funds once. Amounts are in the asset's smallest unit (1 TNZO is 10^18 wei).

bash
tenzro escrow prepaid-deposit \
  --renter 0xYOUR_ADDRESS \
  --amount 5000000000000000000

4. Book the rental

Booking locks your exposure (price per epoch times the number of epochs) and registers the provider's obligation against its bond. It fails if the provider's bond cannot cover the new obligation on top of everything else it owes. Keep the returned rental_id.

bash
tenzro node compute book-rental \
  --rpc https://PROVIDER_RPC \
  --renter 0xYOUR_ADDRESS \
  --total-epochs 24

5. Use the machine

The provider issues you a service key for the lease. Sign in with it and your passkey; the session is confined to the scope of the lease (which accelerators, how many cores, how much memory, and whether outbound traffic is allowed).

bash
tenzro shell login \
  --service-key <service-key> \
  --account 0xYOUR_SMART_ACCOUNT \
  --rpc https://PROVIDER_RPC

The CLI prints a link; approve the sign-in with your passkey in the browser.

6. Let the chain decide each epoch

Each epoch, validators send the provider unpredictable liveness probes, derived from a verifiable random function so the provider cannot know them in advance. The provider must answer before a deadline. The result is an SLA attestation recorded on chain, and it decides the epoch:

OutcomeMeaning
SettledDelivery was attested; one epoch slice moved to the provider.
MissedDelivery was not attested; nothing moved and you keep the slice.
ClosedThe term ended, the provider lost coverage, or it crossed the miss threshold.

See probes in flight, and the thresholds validators apply:

bash
curl -s https://rpc.tenzro.xyz -H 'content-type: application/json' \
  -d '{"jsonrpc":"2.0","id":3,"method":"tenzro_slaListOutstandingProbes","params":[]}'
curl -s https://rpc.tenzro.xyz -H 'content-type: application/json' \
  -d '{"jsonrpc":"2.0","id":4,"method":"tenzro_slaGetParams","params":[]}'

Settle an epoch; the outcome follows the attested verdict, not either party's word:

bash
tenzro node compute settle-epoch --rpc https://PROVIDER_RPC --rental-id <rental-id>

A provider that keeps missing crosses the slashing threshold and loses part of its bond, which is burned.

7. Inspect the rental

bash
tenzro node compute rental --rpc https://PROVIDER_RPC --rental-id <rental-id>

8. Withdraw the unspent remainder

When the term ends, whatever the provider did not earn is still in your prepaid balance. Withdraw it:

bash
tenzro escrow prepaid-balance --renter 0xYOUR_ADDRESS
tenzro escrow prepaid-withdraw --renter 0xYOUR_ADDRESS --amount <remaining-wei>

Next steps