A Vast.ai server earns only while it is rented. Between rentals the GPU sits idle — for hours, and on new machines for days. Those hours can be filled with mining, without getting in a client's way for a single second. You do not need home-made watchdogs for that: the marketplace has a built-in mechanism, the background job (default job). Below is how it works and a step-by-step Pearl mining setup with commands, which we tested on a live server in October 2026.
How it works, in short
- The host attaches a background job to the machine: a Docker image and a launch command. The marketplace runs it as a separate container on every free GPU.
- A client arrives with a regular (on-demand) rental — Vast.ai stops the background job by itself and hands the GPU to the client. In our test it took about 15 seconds from rental creation to the miner stopping, and another 6 seconds for the card to go idle.
- The client leaves — the marketplace starts the job again. Our miner was back about 20 seconds after the rental ended.
- The marketplace neither charges nor pays for a background job. The price in the job is a priority: an interruptible rental bidding above your price also preempts the miner, one bidding below does not.
- Inside the job runs the SRBMiner-MULTI miner on Pearl, with payouts from the Kryptex pool. No pool registration needed: an e-mail can be used instead of a wallet.
Why Pearl
Pearl (PRL) is a coin on the pearlhash algorithm with proof of useful work: instead of grinding hashes, the GPU computes matrix multiplications, the same kind of work neural networks do. The network launched on 27 April 2026, and in autumn 2026 it is the most profitable coin for NVIDIA GPUs. Cards from the RTX 20 series up are supported; RTX 30/40/50 work best because the algorithm leans on tensor cores.
| Card | Hashrate | Power | Revenue per day (estimate) |
|---|---|---|---|
| RTX 5090 | ~370 TH/s | ~520 W | ~$12 |
| RTX 4090 | ~310 TH/s | ~400 W | ~$10 |
| RTX 2060 Super (our measurement) | 52 TH/s | ~165 W | ~$1.5 |
Know the risks up front: PRL trading is concentrated almost entirely on one exchange and liquidity is thin; one of the pools was hacked in August 2026; the miner developers have warned that a future network upgrade may make consumer GPUs unprofitable. That is why we withdraw regularly and do not hold PRL — the Kryptex pool can exchange it to USDT or BTC automatically.
What you need
- A server already connected to Vast.ai as a host, with an NVIDIA RTX 20 series card or newer. No server yet? Start with installing Ubuntu for Vast.ai.
- The vastai utility on any computer: pip install vastai. You need an API key from your Vast.ai account (the API keys section).
- The machine ID: shown in the Machines section of your account or in the output of vastai show machines.
- Where to receive payouts: an e-mail for the Kryptex pool (simplest) or a Pearl wallet address (starts with prl1) for other pools.
pip install vastai
vastai set api-key ВАШ_API_КЛЮЧ # YOUR_API_KEY
vastai show machines # ID машины / machine ID, min_bid_price
Step 1. Pool and wallet
The easiest start is the Kryptex pool: 1% fee, 1 PRL minimum payout, automatic exchange to USDT, BTC and other coins. No registration in advance — the wallet field takes an e-mail followed by a slash and a worker name (the server name), for example you@example.com/rig1. Later you log in at pool.kryptex.com with that e-mail and see hashrate, earnings and withdrawals. The separator must be a slash: with a dot the pool will not let you in.
| Pool | Address (stratum) | What goes in the wallet field |
|---|---|---|
| Kryptex, Europe | prl-eu.kryptex.network:7048 | e-mail/worker or a prl1… address |
| Kryptex, global | prl.kryptex.network:7048 | same |
| K1Pool, Europe | eu.pearl.k1pool.com:3360 | pool account address (after sign-up) |
| LuckyPool | pearl-us-east.luckypool.io:3360 | prl1… address |
The miner supports backup pools: pools and wallets are listed comma-separated in the same order, and if the first pool is unreachable the miner moves to the next. Check each pool's login format on its “Getting started” page.
Step 2. The miner script
The background job runs from the plain python:3.12-slim image (about 120 MB), with no SSH and no Jupyter — only a launch command. On first start the script below downloads SRBMiner-MULTI from its official GitHub releases page, then runs it in a loop: if the miner crashes it comes back in 10 seconds and the container does not exit. Save it on your computer as miner.sh and change the three lines at the top.
# --- edit these three lines / настройте эти три строки ---
ALGO="pearlhash"
POOLS="prl-eu.kryptex.network:7048,prl.kryptex.network:7048"
WALLETS="you@example.com/rig1,you@example.com/rig1"
# --------------------------------
VER="3.7.7"
mkdir -p /root/srb && cd /root/srb
if [ ! -x miner/SRBMiner-MULTI ]; then
python3 -c "import urllib.request as u; u.urlretrieve('https://github.com/doktor83/SRBMiner-Multi/releases/download/$VER/SRBMiner-Multi-$(echo $VER | tr . -)-Linux.tar.gz', 'm.tgz')" || exit 1
tar xzf m.tgz && rm m.tgz && mv SRBMiner-Multi-* miner
fi
cd miner
while true; do
./SRBMiner-MULTI --algorithm "$ALGO" --pool "$POOLS" --wallet "$WALLETS" \
--password x --disable-cpu --log-file /root/m.log > /root/o.txt 2>&1
echo "miner exit $? $(date)" >> /root/exits.txt
sleep 10
done
- ALGO — the algorithm; for Pearl it is pearlhash. The same script works for other SRBMiner coins, for example quantus.
- POOLS and WALLETS — pools and wallets, comma-separated, in the same order.
- VER — the miner version. Pin it and update deliberately: SRBMiner charges a 2% developer fee on pearlhash, and new versions regularly speed the algorithm up.
- The miner log goes to /root/m.log inside the container — it shows the hashrate and accepted shares.
Step 3. Set the background job
The command hands the marketplace the image and the whole script. The price is per GPU per hour; it must be no lower than the machine's minimum bid (min_bid_price in vastai show machines). Set it slightly above the minimum: with the price exactly at the minimum our panel showed the job as “Outbid”.
vastai set defjob ID_МАШИНЫ --price_gpu 1.0 --price_inetu 0 --price_inetd 0 \
--image python:3.12-slim --args sh -c "$(cat miner.sh)"
vastai show instances # задача появится со статусом stopped / job appears as stopped
vastai start instance ID_ИНСТАНСА # запустить один раз / start it once
The job is created stopped, so start it once with start instance. From then on the marketplace manages it: stops it for rentals and brings it back afterwards. One machine — one background job: a new set defjob replaces the previous one.
Step 4. Check that the miner works
A minute or two after starting, look at the server itself. The background job container is named C.<instance ID>.
sudo docker ps # контейнер C.<ID> со статусом Up
nvidia-smi # карта под нагрузкой / GPU under load
sudo docker exec C.ID_ИНСТАНСА grep -a "GPU0\|accepted" /root/m.log | tail -5
The log should show lines like “GPU0 RTX 2060 SUPER: 51.94 TH/s” and “share accepted”. After 10–20 minutes the worker shows up in the pool statistics.
Step 5. Check what matters — the client arrives, the miner leaves
Take neither our word nor the documentation's — test it on your own machine. Rent it from yourself at the regular (on-demand) price: under the marketplace rules renting your own machine is not billed. While the test runs, watch the server in another window.
# на сервере / on the server
watch -n 2 "sudo docker ps --format '{{.Names}} {{.Status}}'; nvidia-smi --query-gpu=power.draw --format=csv,noheader"
# на своём компьютере / on your computer
vastai search offers "machine_id=ID_МАШИНЫ verified=any rentable=any" # ID предложения / offer ID
vastai create instance ID_ПРЕДЛОЖЕНИЯ --image python:3.12-slim --disk 10
# ...майнер должен остановиться за 10-20 секунд / the miner should stop in 10-20 seconds
vastai destroy instance ID_ТЕСТОВОЙ_АРЕНДЫ -y
# ...майнер должен вернуться за 20-30 секунд / the miner should return in 20-30 seconds
| Time | What happened (our test) |
|---|---|
| 0 s | test rental created |
| ~15 s | background job stopped by the marketplace |
| ~21 s | GPU idle at ~9 W — free for the client |
| rental destroyed | job set back to “running” |
| +~20 s | miner back at full power |
The -y flag on destroy instance is required when the command runs from a script or over SSH: without it the utility waits for confirmation and silently hangs.
How to remove the mining
vastai remove defjob ID_МАШИНЫ
The marketplace deletes the background job and its container; the GPU goes back to idle. Check docker ps and nvidia-smi on the server.
Security and fairness to clients
- Mining runs only inside the marketplace's built-in background job. Do not run a miner directly on the host or in your own container outside Vast.ai: the marketplace will not know about it and will not stop it for a rental, and the client gets a busy GPU.
- The job contains no Vast.ai API key, no SSH keys and no passwords — only the pool address and the wallet or e-mail for payouts.
- The miner is downloaded from the author's official GitHub releases page. Pin the version and do not take builds from random channels.
- Watch temperatures: under mining the card heats up just as it does for a client. If cooling is at its limit, cap the card's power on the host (nvidia-smi -pl).
- We tested preemption with container rentals. If virtual machines (VM mode) are enabled on your machine, repeat the step 5 test for a VM rental too (more on the mode itself in VM mode on a multi-GPU server).
Summary
- The Vast.ai background job is the built-in way to use a GPU while it is idle: the client always comes first, and the marketplace stops and restarts the miner by itself.
- Pearl on SRBMiner-MULTI is the most profitable option for NVIDIA in autumn 2026; Kryptex accepts an e-mail instead of a wallet and exchanges earnings to USDT.
- Five commands: set defjob, start instance, log check, self-rental test, remove defjob.
- Always test preemption on your own machine before leaving mining unattended.
GPU market news and breakdowns — in our Telegram channel @flux_vast_news