Start
Where do you start?
Two questions. Then you get the right guide and the commands for it.
The commands come from the miner, node and docs pages, copied as they are, and each route links to its full guide. New to Dendra? Dendra in five minutes shows the path of one request.
Two questions
1. What do you have?
2. What do you want to do?
Not sure what your machine can do? The hardware probe in the miner guide reads it and prints a role: mine only, mine and judge, judge on the CPU, or refused. See what you need.
Your route
Answer both questions above and your route appears here.
Mine and judge with the miner kit
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.
An NVIDIA GPU mines: the hardware probe reads the card's memory and picks the model it can serve. On a machine that can judge, the kit also seats the judge by default. To mine only, add --no-judge to the last install command.
Without a GPU, a machine can only judge. It needs at least MOE_CPU_MIN_RAM_MB of system RAM; below that floor the kit refuses it and changes nothing. Run the probe first, so you know before you install.
A server with an NVIDIA GPU mines. Without one it can only judge, and it needs at least MOE_CPU_MIN_RAM_MB of system RAM; below that floor the kit refuses it and changes nothing. Run the probe first, so you know before you install.
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. On Linux, from a clone of the repository:
$ 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
These steps are for Ubuntu or Debian. On Windows, install.ps1 installs WSL 2 and Ubuntu first: Windows steps. On HiveOS, each release publishes a package for a flight sheet: HiveOS steps. Download the script, read it, then run it: the installer changes nothing until you pass --yes.
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.$ bash install.sh --yes
At the end, join.sh prints [OK] miner alive and registered. Later, check the miner from your clone:
$ cd ~/dendra-network $ bash deploy/testnet-miner/miner_health.sh
Run a node
A full node follows the Dendra chain and checks every block for itself. A validator is a full node that also signs blocks and locks a stake. Neither role needs a GPU.
A node does not use your GPU. It runs on Linux, or on Windows with WSL 2, with Docker and Compose v2. A validator should run on a server that stays on: long downtime gets a validator jailed and slashed.
No GPU is needed. A full node signs nothing, has nothing at stake and earns nothing, so nothing here puts funds at risk. A validator should run on a server that stays on, so start with the full node.
This is the machine a validator wants. Start with the full node below, then follow the validator steps in the guide. For a validator, port 26656 (P2P) must be reachable from outside.
The node has no bond. Three steps:
Clone
$ git clone https://github.com/DendraNetwork/dendra-network.git $ cd dendra-network/deploy/testnet-node
Fill the configuration from the network’s own file
The first command prints the network’s values. Copy its
CHAIN_ID,GENESIS_URL,GENESIS_SHA256,SEEDSandPERSISTENT_PEERSlines into.env, and setMONIKERto the name your node shows to its peers.$ curl -s https://testnet-api.dendranetwork.com/network-info.txt $ cp .env.example .env $ nano .env
Start it
The node checks the genesis it downloads against
GENESIS_SHA256and refuses to start on a mismatch.$ docker compose up -d --build $ docker compose logs -f node
The node is synced when this prints "catching_up":false:
$ curl -s http://localhost:26657/status | grep -o '"catching_up":[a-z]*'
Use the AI
Dendra serves the chat-completions API, so any chat-completions client works: only the base URL changes. The chat page needs nothing but your browser.
Asking questions uses none of your hardware. To put your machine to work instead, choose Mine and judge, or Run a node.
From a terminal, without a key, on the demo tier:
# curl, keyless demo tier
curl -s https://testnet-api.dendranetwork.com/demo/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model":"dendra-network","messages":[{"role":"user","content":"Capital of Australia?"}]}'
Set a generous timeout, in minutes rather than seconds. One consumer GPU serves each answer, and requests queue. The demo tier is rate-limited; the docs explain the keyed tier and the extra dendra block of a response.
Before you go
Already running a miner? Update your kit. Want the reasons behind the roles? Read Dendra in five minutes, then the roles in full. Stuck? Ask in #operator-support on the Discord.