Rent a pool of workers.
Route tasks to it over NATS.
Sign in with your hotkey, pick a pool, pay by card. Its workers answer on your orchestrator's connection for as long as you rent it, and not a second longer.
- pools listed
- —
- free now
- —
- workers
- —
- from
- —
how it works
- 01
sign in with your hotkey
Your Bittensor hotkey signs a message. No account, no password, nothing sent on chain.
- 02
rent a pool
Pick one in the catalog and pay in USD by card. Extend it any time: the extension starts when it ends.
- 03
send it work
Your processes connect to NATS with the same hotkey. The pool's workers answer on your connection.
once rented
Each rented pool appears on your connection as subjects. The route opens when the rental is paid and closes when it ends: nothing to configure, nothing to tear down.
- wc.rpc.<pool>.any.<method>
- one free worker of the pool
- wc.rpc.<pool>.w.<worker>.<method>
- that worker
- wc.evt.<pool>.<worker>.<event>
- events, back from the workers
import bittensor_walletfrom helix import Orchestrator, Unreachablehotkey = bittensor_wallet.Wallet(name="miner", hotkey="default").hotkey# or, from a 32-byte secret seed: Hotkey.from_seed("0x…") (needs the sr25519 extra)async with await Orchestrator.connect(API, hotkey) as orchestrator: reply = await orchestrator.request("pool_…", "transfer", {"chunk": 42}) print(reply.json()) # one given worker of the pool await orchestrator.request("pool_…", "status", worker="wkr_…") async with await orchestrator.events("pool_…") as events: async for event in events: # Event(pool, worker, name, data) print(event.worker, event.name, event.json())dedicated
Every worker of the pool serves it alone: while you rent it, its machines are yours.
shared
A worker may also sit in other shared pools, and serve their renters at the same time.
Your workers are one request away.
Pick a pool, pay, connect.