Miner and judge
Run a miner
A Dendra miner answers AI requests with an open model on your own machine, and a judge votes on a random sample of other miners' answers.
This page is for anyone with an NVIDIA GPU, or with a computer that has enough memory to judge on its CPU.
Already installed? Kit v0.2.2 is required from 24 October 2026, 12:00 UTC, and an older kit does not update itself. Update an installed kit.
How it works
Your machine runs an open model and answers the requests the chain assigns to it. The work is paid in DNDR, the network's token.
An NVIDIA GPU mines
The hardware probe reads the card's memory and picks the model it can serve.
The judge runs on the CPU
With or without a GPU. The kit seats it by default on a machine that can judge, and it votes when the chain draws this miner onto a jury.
A jury checks a sample
A random sample of answers is checked by a jury of other present miners. A verdict needs at least audit_min_quorum jurors voting, and the jury excludes the miner under audit. A miner convicted of cheating loses part of its stake.
It joins by itself
The miner creates its own key, takes its stake from the public faucet and registers on chain by itself. It only opens outbound connections: no inbound port to open, and a home router is fine.
What you need
The kit prints its floors and decides the role of your machine.
- Machine
- An NVIDIA GPU to mine. Without a GPU, a machine can only judge, and it needs at least
MOE_CPU_MIN_RAM_MBof system RAM; below that floor the kit refuses it and changes nothing. - System
- Ubuntu, Debian or HiveOS. On Windows, the installer sets up WSL 2 and Ubuntu. Docker with Compose v2: the Linux installer adds it. Under Windows the judge counts the RAM of WSL 2, about half of the PC's by default; the
memory=line of the[wsl2]section of%UserProfile%\.wslconfigraises it. - Disk
- Free disk above
MIN_DISK_GBto mine, and aboveMIN_DISK_GB_JUDGEfor the judge role, which pulls a second, larger model. Both are set indeploy/install.sh. - Network
- Outbound connections only, to the relay, the chain and the faucet. No wallet is needed: one is only an optional address for season rewards.
Check your machine
On Linux, from a clone of the repository (on Windows, skip this: install.ps1 runs the probe once WSL is ready):
$ git clone https://github.com/DendraNetwork/dendra-network.git && cd dendra-network $ bash deploy/hw_probe.sh $ bash deploy/hw_probe.sh --judge-floor-mb $ grep -E '^MIN_(DISK_GB|DISK_GB_JUDGE|RAM_MB)=' deploy/install.sh
Read the -> role line of the probe's report: mine only, mine and judge, judge on the CPU, or refused. The second command prints the judge's RAM floor in MB, the third the installer's disk and RAM floors.
Install
Pick one path. Each one ends in deploy/join.sh, which joins the network.
Download the script, read it, then run it: the installers change nothing until you pass --yes (-Yes on Windows). There is no curl … | sh, since it would run code you never read.
Ubuntu or Debian
Four steps. Nothing is installed until the last one.
Download the installer
$ curl -fsSLO https://raw.githubusercontent.com/DendraNetwork/dendra-network/main/deploy/install.shRead it
Run this on its own: a pager swallows anything pasted after it. Quit with
q.$ less install.shSee the plan
This changes nothing. It reads the machine and lists what it would install.
$ bash install.shInstall and join
It installs Docker, and the NVIDIA container toolkit when there is a GPU, clones the repository into
~/dendra-network, then runsjoin.sh. On a desktop session it also adds the Dendra app (start, stop, health, balance, season progress).$ bash install.sh --yesTo mine only on a machine with a GPU, add
--no-judge.
Windows
install.ps1 installs WSL 2 and Ubuntu, then runs install.sh inside it.
Download and read it
Save install.ps1 into a folder and read it.
See the plan
Open PowerShell as administrator, in that folder. This changes nothing.
PS> powershell -ExecutionPolicy Bypass -File .\install.ps1Install and join
PS> powershell -ExecutionPolicy Bypass -File .\install.ps1 -YesIt stops for a restart, then for Ubuntu's first launch, where you create your Linux user: run the same command again each time. To mine only on a PC with a GPU, add
-NoJudge.
HiveOS
Each release publishes a HiveOS package. Create a flight sheet with these fields.
https://github.com/DendraNetwork/dendra-network/releases/download/v0.2.2/dendra-0.2.2.tar.gz
| Field | Value |
|---|---|
| Miner | Custom |
| Installation URL | The package of the release, above. |
| Wallet | Your payout address, dendra1…, where the season pays this rig. A public address only, never a recovery phrase. |
| Wallet and worker template | %WAL% |
| Pool URL | Empty. |
| Extra config arguments | YES=1, without which the package only prints the installer's plan. Add ROLE=miner to decline the judge. |
The payout address is locked with its first declaration and cannot be corrected: check it before YES=1. Every field, and how to check the package before using its URL: deploy/hiveos/README.md.
By hand, from a clone
For a machine that already has Docker with Compose v2, and the NVIDIA container toolkit to mine.
Clone the repository
$ git clone https://github.com/DendraNetwork/dendra-network.git && cd dendra-networkRead the launcher
Run this on its own line, then quit with
q.$ less deploy/join.shJoin the network
$ CONFIG_URL=https://testnet-api.dendranetwork.com/network-info.txt bash deploy/join.sh
Check
At the end, join.sh prints [OK] miner alive and registered.
Later, run the health check from your clone: ~/dendra-network when an installer made it, inside Ubuntu on Windows.
$ cd ~/dendra-network $ bash deploy/testnet-miner/miner_health.sh
It checks the containers, your kit against the network's, the registration, the model and the judge, and says what to fix. To follow the miner's log:
$ docker compose -f deploy/testnet-miner/docker-compose.yml logs -f miner
"Waiting for jobs" is normal: jobs follow traffic.
Keep your keys. The Docker volume dendra-miner_miner-keys holds your miner's identity. Never run docker compose down -v: it deletes that volume, and a new identity needs a new stake.
The judge
On a machine that can judge (bash deploy/hw_probe.sh --can-judge prints true), the kit seats the judge by default.
It runs on the CPU with the model the chain's model registry names, and it votes when the chain draws this miner onto a jury.
A miner without an active judge is drawn onto juries all the same, and votes nothing there: a silent seat. Only a posted verdict earns a juror reward.
What the judge produced on chain, read with the height of each figure:
$ bash deploy/testnet-miner/judge.sh status
To decline the seat, then to take it again:
$ bash deploy/testnet-miner/judge.sh off
$ bash deploy/testnet-miner/judge.sh on
On a machine without a GPU, judging is the only role, and judge.sh off is refused there.
Rewards, in brief
The Final Testnet Season pays miners in testnet DNDR for verified work, juror verdicts, proven presence and, from a day the season announces, an active judge. It pays by a formula published in advance, every seven season days, until 7 November 2026 at 23:59 UTC, by the chain's block times.
Each testnet DNDR the season paid becomes one mainnet DNDR, credited in the mainnet genesis to the address that received it. Your wallet balance is not your reward: faucet drops, the stake, job pay and transfers do not convert. Rates, caps and how to check a payment: Final Testnet Season.
Update
Kit v0.2.2 is required from 24 October 2026, 12:00 UTC. A v0.2.0 or v0.2.1 kit does not update itself: update an installed kit in two commands.
From v0.2.2 on, the kit checks for a newer signed release once a day and updates itself; a HiveOS rig updates through its package.
Help
Ask in #operator-support on the Discord. Say where it stopped, and paste the output of these two commands, run from your clone:
$ bash deploy/hw_probe.sh $ docker compose -f deploy/testnet-miner/docker-compose.yml logs --tail 40 miner
Roles, in full
Miner, judge, validator and full node, with their risks.
Open in the docs
Miner reference
The genesis check, the faucet, the stake and the work draw.
Open in the docs
Run a node or a validator
No GPU needed. The node and validator guide.
Open the node guide
Source on GitHub
The kit, the miner and the judge, Apache-2.0.
Open on GitHub