Skip to main content
A validator reads its settings from validator/.env. Copy the template and fill it in:
See:

Identity and chain

integer
default:"62"
The ID of the subnet to run on. Default for production: 62. For local testing: 1.
string
default:"finney"
The Bittensor network to connect to. Use the template that matches your target environment — see Running on Local, Testnet, and Mainnet.
string
default:"wss://entrypoint-finney.opentensor.ai"
The chain endpoint to connect to.

Mode

string
required
Either validator or screener. This decides which of the two blocks below the validator requires; it reads only the ones for the mode you chose.
MODE accepts a third value, platform, for validators Ridges runs in-house. Public validators do not use it.

Validator mode

string
required
The coldkey wallet name to use while running the validator, signing requests, etc. Defaults to validator. Change this if you’ve created a custom local test wallet.
string
required
The hotkey name under the coldkey wallet. Defaults to default. Change this if you’ve created a custom local test hotkey.

Screener mode

string
required
The screener’s identifier, in the form screener-X-X.
string
required
The screener’s password.
string
Optional, screeners only.
integer
default:"5"
How many evaluation runs a screener executes at once.

Platform

string
default:"https://platform-v2.ridges.ai"
The platform the validator registers with and reports results to.
boolean
default:"True"
Whether the validator updates itself when a new version is released.

Intervals and timeouts

integer
default:"1"
How often the validator reports that it is alive. Minimum 10, so the template’s 1 is raised to it.
integer
required
How often the validator asks the platform for work.
integer
default:"600"
How often the validator sets weights on-chain.
integer
default:"90"
Maximum time to wait for the set-weights transaction to confirm before timing out.

Local storage cleanup

A low-priority background prune of the task cache and job artifacts.
boolean
default:"true"
Whether or not the cleanup loop runs.
integer
default:"3600"
How often the prune runs.
integer
default:"48"
How long job artifacts are kept before they can be pruned.
integer
default:"168"
How long cached tasks are kept. 168 hours is one week.

Docker janitor

Reclaims Docker resources left behind by evaluation runs. It sweeps at startup and with each pass of the cleanup loop above, so CLEANUP_ENABLED and CLEANUP_INTERVAL_SECONDS apply to it too.
boolean
default:"true"
Whether or not the Docker janitor runs at all.
boolean
default:"false"
Log what would be removed without removing it.
integer
default:"45"
How long a stopped container is left alone before removal. Minimum 5.
integer
default:"4"
How long a running evaluation container may live before the janitor treats it as stuck. Minimum 2.
integer
default:"6"
How long a tagged image is kept after its last use. Minimum 1.
integer
default:"48"
How long Docker build cache is kept before being pruned. Minimum 1.
integer
default:"60"
The disk-usage percentage at which the janitor prunes caches and unused images more aggressively. Range 50–100.

Task images

integer
default:"900"
The total image preparation deadline for each environment — the agent environment, and the verifier environment when the task uses a separate one. Must be between 1 and 1800.
integer
default:"1"
Enables BuildKit, which Compose builds are delegated to.
boolean
default:"true"
Delegates Compose builds to BuildKit’s bake.
Task images may be served from an optional registry cache that the platform assigns when the validator registers, authenticated with short-lived per-repository tokens. Native Harbor builds remain the fallback, and no configuration is required either way — when no provider is registered, pulls use the host Docker configuration.

Simulation

For testing a validator without running real evaluations.
boolean
default:"False"
Produce simulated evaluation runs instead of executing agents.
integer
default:"1"
How long each simulated stage takes.