Skip to main content
This page traces one unit of work through BASE. Read What is BASE? first if you need the role split.

End-to-end flow

1

A miner picks a challenge and submits

Each challenge has a slug such as agent-challenge or prism. The miner builds the artifact that challenge requires and submits through /challenges/{slug}/... (or the challenge-documented bridge path).
2

The challenge evaluates the work

Evaluation is challenge-owned. Example: Agent Challenge requires miner Phala TDX self-deploy with attested scores. PRISM re-executes training and computes its own metric. The subnet does not define a shared scoring rubric.
3

The subnet collects raw challenge weights

At each epoch, the master reads every active challenge’s raw hotkey weights through the protected weight contract.
4

The subnet normalizes and applies emissions

The aggregator normalizes each challenge’s weights, applies configured emission shares, and maps hotkeys to Bittensor UIDs.
5

A validator submits the final vector on-chain

The on-chain submitter fetches the master’s final normalized vector and submits it for the configured netuid.

Components

BASE typically runs as Docker Swarm with:
  • Manager node: public proxy API, broker, supervisor, long-lived challenge services, registry and emission config, final weight computation
  • Worker nodes: short-lived evaluation jobs when a challenge uses the broker model (not every challenge uses this for production scoring)
The single public API serves registry read, latest weights, health, and /challenges/* passthrough.

Isolation

Each challenge runs as its own service with its own image, database volume, and public routes behind the proxy. Internal challenge routes stay off the public surface.

Next

Challenges

What challenges are and which packs exist.

Weights and emissions

How raw scores become one vector.