Reaver GPUReaver GPU
API Launch App

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 curl available.
  • 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:

bash
# 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.

bash
reaver login

# the CLI prints a one-time challenge; sign it in your wallet
# → Connected as 7xQs...4Fve
Heads up: the session is scoped to read balances and submit jobs. It cannot move staked funds or change node settings without an additional signature.

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.

bash
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

bash
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:

python
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