Final Testnet Season

Grow the world’s AI.

Verifiable AI inference, checked on chain.

Ask an open model. A community miner answers, and the chain pays it. A random sample of answers is checked again by a jury of other miners, and a convicted cheater loses part of its stake.

Install: download, read, runUbuntu, Debian, HiveOS
$ curl -fsSLO https://raw.githubusercontent.com/DendraNetwork/dendra-network/main/deploy/install.sh
$ less install.sh
$ bash install.sh --yes

Run less on its own and quit it with q. Without --yes, bash install.sh only prints its plan: nothing changes until you pass it. No curl … | sh, since a script piped from a URL runs unread. Windows: install.ps1, step by step.

The Dendra tree The soil is the protocol. The roots are the network: miners, nodes and validators. The trunk is the chain. The crown grows three branches: power, privacy and ecosystem. The green dots on the miners' root follow the miners present on chain. protocol miners nodes validators the chain Power Privacy Ecosystem

reading the miners present on chain

Each green dot on the miners' root is one miner present on chain, read from /capacity every minute. Until the count is read, the tips stay hollow.

How an answer is checked

Each miner posts a deposit (stake) before it can answer. When a jury of other miners convicts one of cheating, it loses part of that deposit: it is slashed.

  1. The request

    You send a prompt to the Dendra gateway over HTTPS. The gateway runs its content filter, then encrypts the prompt to the serving miner; the relay that carries it reads ciphertext only. At launch, the whole fee is held first; then it is paid out, or refunded to the client.

  2. The commitment

    The miner decrypts the prompt in memory and answers with an open model. On chain, the job keeps a hash of the prompt and an embedding of the answer, never the text. They travel in a transaction, and every block header carries the Merkle root of its transactions.

  3. The draw

    A later block draws at random whether the job is audited. Not drawn: the job is final and the miner is paid, with no verdict.

  4. The jury

    Drawn: a jury of other miners is seated, if enough are present, and judges the answer. Upheld, the miner is paid. Convicted, the miner is slashed and the client refunded. With no jury, or no verdict in time, the client is refunded and the miner is neither paid nor slashed.

A Merkle tree: four transactions are the leaves, and the block header holds the root that commits to all of them. transactions (leaves) root, in the block header
Change one leaf and the root changes, so the root in a block header pins every transaction under it.
What it takes to convict a miner

A conviction needs “invalid” verdicts at the jury bar, the larger of audit_min_quorum jurors and two thirds of the anchored seats (the jury seats drawn and recorded on chain before anyone votes; antievasion.go::auditRelativeBar), and from a strict majority of the voting stake. The jury excludes the miner under audit.

The jury floor is audit_min_quorum + 1 present, eligible miners. Below it, or with no verdict within audit_unwind_blocks blocks, a drawn job is refunded to its client and nobody is slashed. At launch, no drawn job is paid without a verdict, and no fee is held for ever.

Why sampling is enough to deter cheating: the litepaper

The network, right now

dendra-testnet is a public testnet: it runs the protocol in public, from a fresh genesis. Read the chain yourself; these figures come from it.

reading the chain

...

latest block (/rpc/status)

...

seconds between blocks, measured on the latest blocks

...

validators in the set (/rpc/validators)

...

miners present on chain (/capacity)

Jobs and audits

reading the proof feed

...

jobs opened

...

audits opened

...

audits concluded (jury quorum or re-hearing)

...

refunded, no verdict

...

slash events

From the chain's audit feed (testnet-proof.dendranetwork.com/proof), refreshed every 20 seconds. An audit opens when a job is drawn or disputed, and checks something once a jury concludes it. An audit refunded with no verdict checked nothing: the fee went back to the client. A clawback is a payment taken back after a conviction.

Every slash listed here is a real, replayable on-chain event, read live from the network.

Latest blocks

blockhashtime (UTC)transactions
reading the chain

From /rpc/blockchain on testnet-api.dendranetwork.com, refreshed every 30 seconds.

Change one URL

Any chat-completions client works (/v1/chat/completions): point base_url at the gateway and your client works unchanged. The keyless demo tier is rate-limited.

An answer served by a miner also carries a dendra block: its job id, the miner, whether the chain accepted the settlement, and the command that finds the job on chain. settled is true, false, or null when the gateway does not know; audit_state stays "pending", since a drawn audit lands later.

request, keyless demo tiercurl
$ 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?"}]}'
response, excerptthe dendra block
"choices": [ … ],
"dendra": {
  "job_id": "job…",
  "miner_id": "…",
  "committee": [ "…" ],
  "beacon": "…",
  "settled": true,
  "audit_state": "pending",
  "cost_udndr": …,
  "escrow_udndr": …,
  "verify": {
    "proof_endpoint": "…/proof",
    "query": "dendrad query jobs get-job job…"
  }
}

Where a fee goes

$DNDR pays for inference and pays miners. Its supply is capped at 10,000,000 DNDR, with no mint, by construction: the standard mint module is absent from the chain binary, so no code path can create a coin. Rewards come from a Reserve set aside at launch.

  • miner 80
  • validators 7.5
  • treasury 4.5
  • team 3
  • burned 5

Shares of every 100 DNDR of a fee paid out. Validators, treasury and team together take the protocol cut of 15. Launch values; governance can change them. A refunded job burns nothing. Allocation at launch and the Reserve's release rule: tokenomics in the litepaper

Run your machine

Join with a GPU or with a CPU. A miner answers prompts with an open model on its own hardware. It is paid its share of each fee when the job is not drawn for audit, or when a jury upholds its answer.

GPU (NVIDIA): mine

The hardware probe, deploy/hw_probe.sh, picks the open model your card can serve.

CPU: judge, for now

The network's judge model, a mixture-of-experts, runs on the CPU. It needs at least MOE_CPU_MIN_RAM_MB of system RAM, with or without a GPU (bash deploy/hw_probe.sh --judge-floor-mb prints that floor; under Windows, the RAM of WSL 2). A juror is a registered miner, so the machine also serves requests, on its GPU if it has one. From kit v0.2.1, a machine without a GPU joins only this way, and answers its requests with the judge's model.

Full node or validator

No GPU. Run a node or validator · Pick a role

More roles and technologies for CPU-only machines are planned.

Three steps

  1. Check your machine

    deploy/hw_probe.sh says which roles it can take. Before you install, see what your machine can run.

  2. Install

    One script sets up the machine and joins the network.

  3. It runs by itself

    The miner gets free testnet DNDR from the faucet, locks its stake and starts serving. It only opens outbound connections, to the relay, the chain and the faucet: no inbound port to open, and a miner behind a home router is fine.

You need no wallet to mine. A wallet is only an optional address for Final Testnet Season rewards. Manual path: deploy/join.sh, in the miner guide.

From one seed to the world’s AI

More power, more privacy, more builders.

01 seed

The protocol

Fees held until a random audit draw, audits judged by AI models, and slashing on chain. Slashing was exercised by the test suite and on a development network, against a miner run to cheat.

02 roots

Final Testnet Season

The season ends on 7 November 2026 at 23:59 UTC, by the chain's own block times. Until then, miners earn testnet DNDR, paid every seven season days (17 280 blocks each, the last one cut at the end); the last payment follows once the last day is final. A formula published in advance reads chain records and the published grades of sampled answers, so anyone can recompute it. The season

03 trunk

Mainnet

Mainnet launches after the Final Testnet Season. The season's rewards count as points: each testnet DNDR the season paid you becomes one mainnet DNDR, credited in the mainnet genesis.

Your wallet balance is not your reward: only the DNDR the season pays you counts. Faucet grants, your stake, transfers and ordinary job pay do not. What counts

What the crown aims to grow next. The roadmap gives each item its status.

branch / power

More AI, more power

The aim: more models on the network, GPU pools and data centers, then images, audio and video.

branch / privacy

Confidential AI

The aim: prompts split into shares across miners of different operators so that none sees them, then enclave hardware and sealing from your own device. Until then, the public gateway and the miner that answers read a prompt, and so do the jurors of a job drawn for audit (see “Is my prompt private?” below).

branch / ecosystem

The world builds on Dendra

The aim: an SDK that checks each answer's proof for you, integrations, and autonomous agents and smart contracts that call verified AI.

The full roadmap, every technology by status

Questions

Can I use my existing chat client?
Yes, if it speaks the chat-completions API (/v1/chat/completions). Point base_url at the gateway and your client works unchanged. An answer served by a miner also carries a dendra block: its job id, its audit state and a command to check it on chain. API quickstart
Is there a token sale?
No. There is no sale, presale or ICO. $DNDR is a utility token for paying for inference inside the protocol; it is not an investment, and nothing here is financial advice. Tokenomics
How do I get testnet DNDR?
From the testnet faucet, free. It asks for a small proof-of-work, so you call it from a terminal: the wallet page shows the command, and you paste your address into it. Use a fresh wallet, never a recovery phrase that controls anything real. Open the wallet
Is the chat free?
A subsidised free tier covers chat use while the network grows. Capacity varies with the miners online. Open the chat
Can my gaming GPU mine?
Yes, if it is an NVIDIA card: that is the idea. The hardware probe, deploy/hw_probe.sh, picks the open model your card can serve. Judging does not use the card: the judge model runs on the CPU, so a machine with a GPU and at least MOE_CPU_MIN_RAM_MB of system RAM mines on the GPU and judges on the CPU at the same time. Miner guide
Can I join without a GPU?
Yes. A CPU judges, for now: the network's judge model, a mixture-of-experts, runs on the CPU and needs at least MOE_CPU_MIN_RAM_MB of system RAM (bash deploy/hw_probe.sh --judge-floor-mb prints that floor). Under Windows, that is the RAM of WSL 2, about half of the PC's by default; the memory= line of the [wsl2] section of %UserProfile%\.wslconfig raises it. A juror is a registered miner, so the machine also serves requests. Kit v0.2.2 keeps the rule that kit v0.2.1 set for machines without a GPU: they join only as judges, from MOE_CPU_MIN_RAM_MB of system RAM, and answer the requests drawn for them with the judge's model; with less RAM, the kit refuses to join. A full node or a validator needs no GPU. More roles and technologies for CPU-only machines are planned. Pick a role
Is my prompt private?

It is encrypted from the gateway to the miner. The public gateway and the miner that answers read it, and so do the jurors if the job is drawn for audit (a miner on a kit before v0.2.1 also seals it for the other registered miners). The relay and the chain never get the text: on chain, a job keeps a hash of the prompt, a fingerprint that does not contain its text, and an embedding of the answer, a list of numbers that sums up its meaning. A gateway you run yourself keeps the prompt off the public one.

While the model answers, the miner software keeps the prompt out of crash dumps and blocks writing it to disk or sending it anywhere but the model, where the host allows it. If the job is drawn for audit, the miner re-seals the prompt and answer to its jurors: from kit v0.2.1, to the jurors the chain anchored for that audit and to no other miner. How to check an answer