Get Started
Quickstart
Connect a Solana wallet, install the CLI, and rent your first GPU to deploy a workload. This takes about five minutes end to end.
Prerequisites
- A Solana wallet (Phantom, Solflare, or Backpack) with a small balance for fees.
- Node.js 18+ or a shell with
curlavailable. - A container image for your workload (or use one of the public starter images).
Install the CLI
The reaver CLI is the fastest way to interact with the network. Install it with a single command:
# install the Reaver GPU CLI curl -fsSL https://get.reavergpu.io/install.sh | sh # verify reaver --version
Connect your wallet
Authentication is wallet-based — there are no API keys to manage. The CLI opens a signing prompt and stores a short-lived session token locally. No private key ever leaves your device.
reaver login # the CLI prints a one-time challenge; sign it in your wallet # → Connected as 7xQs...4Fve
Rent your first GPU
Submit a workload by pointing the CLI at a container image and selecting a GPU class. The network escrows your estimated cost, schedules the job onto an available node, and begins metering once the container is healthy.
reaver run \ --image docker.io/reaver/hello-cuda:latest \ --gpu rtx4090 \ --max-minutes 30 \ --region any
The CLI streams logs and a live cost meter. When the workload exits, escrow settles automatically and any unused balance returns to your wallet.
Check job status
reaver jobs list reaver jobs logs <job-id> --follow
Run it programmatically
Prefer code? The same flow is available over the REST API. Here is a minimal Python example that submits a job and polls for completion:
import requests, time # session token from `reaver login` TOKEN = open("~/.reaver/token").read().strip() H = {"Authorization": f"Bearer {TOKEN}"} job = requests.post("https://api.reavergpu.io/v1/jobs", headers=H, json={ "image": "docker.io/reaver/hello-cuda:latest", "gpu": "rtx4090", "maxMinutes": 30, }).json() while True: s = requests.get(f"https://api.reavergpu.io/v1/jobs/{job['id']}", headers=H).json() if s["status"] in ("completed", "failed"): break time.sleep(5) print("final:", s["status"], s["costLamports"])
What's next
- Have spare hardware? Turn it into income with Hosting a Node.
- Need bigger jobs? See pricing and regions in Renting Compute.
- Browse every command in the API Reference.
Reaver GPU