Start mining

Mining on Bittensor means running software that competes against other miners on a subnet, and being paid according to how validators score you. This guide covers the full path from an empty machine to a registered, running miner.

What to expect

Mining is a competition, not a passive yield product. You are paid a share of a fixed pool based on how you rank against everyone else on the same subnet, so your earnings depend entirely on out-performing them. Running a stock template unchanged, on a busy subnet, will usually earn close to nothing.

The costs are real and mostly up front:

CostNotes
Registration burnPaid in TAO, recycled rather than refunded. Varies per subnet and changes over time.
ComputeAnything from a modest CPU box to multiple high-end GPUs, depending entirely on the subnet.
TimeReading the subnet's code and incentive mechanism carefully is the work that actually determines your ranking.

Only commit what you can lose

There is no guaranteed return. You can pay the registration burn, be deregistered before earning anything, and have no recourse.

Prerequisites

  • A Linux machine you control, with a stable connection and reliable uptime. Most subnet software targets Linux.
  • Python 3.9 or newer, plus comfort with the command line, virtual environments, and reading source code.
  • TAO in a wallet you control, covering the registration burn with margin for a second attempt.
  • Hardware appropriate to your chosen subnet — determined by that subnet's documentation, not by any general rule.

TaoScope does not publish hardware requirements

Requirements change as subnets evolve and are not available from any chain source. The subnet's own repository is the authoritative reference, and we link to it from every subnet page.

1. Install the tooling

Work inside a virtual environment so that Bittensor's dependencies stay isolated from the rest of your system.

Create an isolated environment
python3 -m venv bt-env
source bt-env/bin/activate

There are two packages. bittensor is the Python SDK that subnet code imports; bittensor-cli provides the btcli command you will use for wallets and registration.

Install the SDK and CLI
pip install bittensor bittensor-cli
btcli --version

Command names vary between versions

The btcli command surface has changed across releases. If a command in this guide is not recognised, run btcli --help or btcli subnets --help to find its equivalent in your version.

2. Create a wallet

A Bittensor wallet has a coldkey that holds funds and one or more hotkeys that operate on the network. Your miner needs its hotkey on the machine; your coldkey should never be there.

Create a coldkey and a hotkey
btcli wallet create --wallet.name my-cold --wallet.hotkey my-miner

# Verify and check funds
btcli wallet list
btcli wallet balance --wallet.name my-cold

Store both mnemonics offline

You will be shown a mnemonic for each key. Write them down and store them offline. There is no recovery path if you lose them, and anyone who obtains your coldkey mnemonic can drain your funds. Never paste a mnemonic into a website.

3. Choose a subnet

This decision matters more than any optimisation you will make later. Choosing a subnet whose task matches skills you already have beats choosing one with a headline emission number.

Survey the network from the CLI
btcli subnets list
btcli subnets show --netuid <NETUID>

Read at minimum:

  • The subnet's repository, especially the validator code — it defines exactly what is rewarded.
  • The README's stated hardware and software requirements.
  • The subnet's Discord, where operators discuss what is actually working.
  • The live registration cost, free UID slots, and immunity period.

TaoScope's Choosing a subnet guide walks through how to read those numbers, and the subnet explorer lets you filter by open slots, registration cost, and miner pool size.

4. Rehearse on the test network

Bittensor runs a public test network that uses the same software with valueless tokens. Registering and running there first costs nothing and is the single highest-value step in this guide.

Most commands accept a network flag, commonly --subtensor.network test. Confirm the exact flag and the test netuid in your subnet's documentation, since subnets use different netuids on test and mainnet.

Your immunity period is short

Once you register on mainnet you may have only a few hours before you can be evicted. Debugging your setup during that window is an expensive way to learn. Arrive with something that already works.

5. Register on mainnet

Registration burns TAO to claim a UID slot. Check the live cost immediately before you submit, because it rises with each registration.

Check, then register
btcli subnets show --netuid <NETUID>

btcli subnets register \
  --netuid <NETUID> \
  --wallet.name my-cold \
  --wallet.hotkey my-miner
  • Register your own hotkey. Miner emission aimed at owner-associated hotkeys is never paid out.
  • If the subnet is full, your registration evicts the lowest-scoring non-immune neuron.
  • The burn is recycled into the protocol supply and cannot be reclaimed.

The mechanics are covered in detail in Registration and UID slots.

6. Run and monitor your miner

Clone the subnet's repository, install its dependencies, and start the miner with your wallet. The exact entry point is defined by the subnet — the pattern below is typical, not universal.

Typical miner startup
git clone <SUBNET_REPOSITORY>
cd <SUBNET_DIRECTORY>
pip install -r requirements.txt

python neurons/miner.py \
  --netuid <NETUID> \
  --wallet.name my-cold \
  --wallet.hotkey my-miner \
  --logging.debug

Run it under a process supervisor such as systemd or pm2 so it restarts automatically. Downtime costs you score immediately, and validators do not wait.

What to watch

  • Your incentive score. It is the value that determines your pay, and it will read zero for a while after registering.
  • Your rank against the field, visible on the miner leaderboard on your subnet's TaoScope page.
  • Your logs, for validator requests arriving and being answered within the latency budget.
  • How close you are to the eviction boundary once your immunity period ends.

Zero incentive at first is normal

Emissions are credited at epoch boundaries, and validators refresh their view of the metagraph periodically. A new miner commonly earns nothing for the first several epochs.

7. Improve your ranking

Successful miners rarely write everything from scratch. They start from the baseline the subnet provides, measure where they lose points, and fix one bottleneck at a time.

  • Read the validator's scoring function first. It is the specification you are actually being graded against — everything else is inference.
  • Instrument your miner so you know your own latency and failure rate before guessing at quality problems.
  • Change one variable at a time and compare incentive across several epochs; single-epoch noise is large.
  • Watch what top-ranked miners do differently where the subnet makes that observable.

Latency is frequently the cheapest win

Many subnets discard or penalise slow responses. Before investing in a larger model, confirm you are answering inside the budget.

Common pitfalls

MistakeConsequence
Registering before the miner worksThe immunity period is consumed by debugging, and eviction follows.
Assuming default hyperparametersTempo and immunity period are set per subnet; the defaults are frequently not what a given subnet uses.
Optimising before reading the validator codeEffort goes into something the scoring function does not reward.
Keeping the coldkey on the mining machineA compromised server becomes a drained wallet.
Treating alpha earnings as TAORewards are paid in the subnet's alpha token, whose TAO value can fall and which incurs slippage when sold.
Running without a supervisorA crash at 3am costs a full night of score.

Verify before you spend

This guide describes the general shape of the process. Commands, netuids, and requirements differ per subnet and change between releases. Always confirm against the subnet's own documentation and the official Bittensor docs before spending TAO.

Last updated August 7, 2026