Miner Overview
How mining works on Bittensor Subnet 112 — competing by submitting better solver code, the champion/challenger model, and the two submission paths.
Miners on Bittensor Subnet 112 compete by improving solver quality, not by running quote servers. You submit Python solver code; validators benchmark it; the best scorer becomes the champion and earns 100% of emissions.
How mining works now
The typical loop is iterate-submit-benchmark-adopt:
-
Build or iterate on strategies
Most miners start from
RoutingSolverand refine its strategies. You can also write a solver from scratch using theIntentSolverinterface. -
Submit candidate solver code
Push your solver to the API via one of the two submission paths (see below).
-
Validators benchmark your submission
The validator / API benchmark worker scores your code against active app scenarios.
-
Dethrone the current champion
If your score exceeds the current champion by the
DETHRONE_MARGIN(currently 0.5%), your solver is adopted. -
Champion is hot-swapped into the BlockLoop
Validators load your solver into block-loop execution. You start earning weight emissions immediately.
Submission paths
There are two ways to submit a solver — pick based on whether you want full screening or rapid iteration.
Git-based submission POST /v1/submissions
The production path. Signed by your Bittensor hotkey and run through full screening:
-
Static checks
Lint and structural checks on the submitted code.
-
Docker build / import
The code is built into a Docker image and imported in isolation.
-
Smoke test
A quick end-to-end run to confirm the solver responds and returns valid plans.
Then it’s benchmarked and ranked against the active champion.
Source-based submission POST /v1/submissions/source
The fast iteration path. Used by the agent loop and during development:
- Inline Python source upload
- Skips screening entirely
- Goes directly to benchmarking
- Best for rapid experimentation, not production submissions
Use source-based for iteration loops, then switch to git-based for your final, production-ready solver.
Champion / Challenger model
Submissions are benchmarked and ranked by score. Adoption is not automatic on every improvement — challengers must clear a margin:
- A challenger must exceed the current champion by
DETHRONE_MARGIN(currently 0.5%). - On adoption, the BlockLoop hot-swaps to the new solver — no restart required.
- The champion miner receives 100% of emissions via
set_weights()until dethroned.
The dethrone margin exists to prevent noisy flapping between near-identical solvers. Aim for a clear, measurable improvement.