Skip to main content
There is no single installer for everyone. What you install depends on what you want to do. This page maps the high-level paths; each role guide has the step-by-step detail.
Not sure which path is yours? If you only want to publish weights on-chain, install the submitter. If you are standing up the whole subnet, use the full subnet path. If you are developing or just exploring, start with the local checkout.

Choose your path

Local checkout

Run the CLI and tests against the canonical repository.

Validator submitter

Install the submit-only on-chain weight submitter.

Full subnet

Bring up the manager and workers on Docker Swarm.

Wallets first

Set up keys before any install that touches the chain.

Developer: local checkout

For local development against the canonical base repository, install dependencies with uv from the repository root:
uv sync --extra dev --extra master
The repository documents the full local check (lint, format, types, and tests) alongside this command. From here you can run the CLI.

Validator: the submitter

A normal validator installs only the submit-only on-chain submitter, a single systemd-managed process. It reads the master’s latest weights and submits them on-chain; it runs no challenge orchestration and needs no database. The submitter ships three files that you copy into place, then enable as a systemd unit:
1

Copy the submitter files

The submitter process, its credential-free config, and the systemd unit are copied to their destinations on the validator node.
2

Enable the service

systemctl daemon-reload
systemctl enable --now platform-submitter.service
The config carries the netuid (100), the wallet identity, and the master weights URL. Full detail is in the validator path.

Operator: the full subnet

Standing up the whole subnet is a Docker Swarm bring-up: a manager node for the control plane and challenge services, plus CPU/GPU worker nodes for short-lived evaluation jobs. The canonical entry point is the Swarm installer. The installer is dry-run by default and changes nothing until you pass --apply. Every destructive step sits behind its own explicit flag.
./deploy/swarm/install-swarm.sh           # dry-run: prints the planned docker commands, changes nothing
./deploy/swarm/install-swarm.sh --apply   # apply on a host you own
The full end-to-end bring-up (image builds, volume provisioning, worker enrollment, and the on-chain submitter) is documented in the repository deploy guide and the architecture path.

Next

Wallets & registration

The keys you need before participating.

Quickstart

Run something now.