Bittensor Miner
Choose, register and monitor a Bittensor subnet miner.
Bundled with Minerva and active by default — there is nothing to install.
Skill metadata
| Path | skills/bittensor/bittensor-miner |
| Version | 1.0.0 |
| Author | moy-boy (@moy-boy), Minerva Agent |
| License | MIT |
| Platforms | linux, macos, windows |
| Tags | Bittensor, TAO, Subnet, Miner, Registration, Incentive, Emission, btcli, Blockchain |
| Related skills | bittensor-validator, bittensor-subnet-owner |
Reference: full SKILL.md
The following is the complete skill definition that Minerva loads when this skill is triggered. This is what the agent sees as instructions when the skill is active.
Bittensor Miner Skill
Helps a user pick a subnet to mine, register a miner hotkey, serve it and keep it earning.
Chain reads use the read-only bittensor_subnets, bittensor_subnet, bittensor_metagraph and
bittensor_account tools; every signed action is a btcli command the user approves each time.
It does not write miner code: each subnet ships its own miner in its repository.
When to Use
- The user asks which subnet to mine, what registration costs, or whether a subnet is worth it
- The user wants to register a hotkey on a subnet or check why a miner earns nothing
- The user asks how close a miner is to deregistration, or wants a health check on their miners
Prerequisites
btcliinstalled (uv tool install bittensor-cliorpip install bittensor-cli).- A wallet the user created themselves in their own terminal (
btcli wallet create). The agent is blocked from creating or regenerating keys and must never ask for a mnemonic or password. - TAO in the coldkey for the registration burn, plus the hardware the subnet's miner needs.
How to Run
Read state with the Bittensor tools (network defaults to finney; pass network: "test" for testnet).
Run btcli through terminal for anything that signs. Signing commands always show an approval
prompt, and btcli may then ask for the wallet password: that prompt belongs to the user's own terminal,
so when it appears, stop and give the user the exact command to run themselves.
Quick Reference
| Goal | How |
|---|---|
| Compare subnets | bittensor_subnets with sort_by: "emission" or "registration_cost" |
| One subnet's rules | bittensor_subnet → immunity_period_blocks, registration_allowed, max_neurons, hyperparameters |
| Competition | bittensor_metagraph with sort_by: "incentive" |
| My miner | bittensor_metagraph with hotkeys: ["<hotkey ss58>"] |
| My keys' registrations | bittensor_account on the hotkey address |
| Register (signs) | btcli subnets register --netuid N --wallet-name W --hotkey H --network finney |
| Serve axon (signs) | btcli axon set ... (see btcli axon set --help), or the subnet miner does it on start |
| Unstake earnings (signs) | btcli stake remove --netuid N --wallet-name W --hotkey H --amount X |
Procedure
- Pick the subnet. Call
bittensor_subnetssorted by emission; shortlist subnets whoseregistration_allowedis true andneurons < max_neuronsor that recycle slots often. For each candidate callbittensor_subnetand readidentity.github_repo(withweb_extract) to learn what the miner must do and what hardware it needs. Say plainly when a subnet's task is outside what the user can run. - Price the entry. Registration burns
registration_cost_tao(it moves with demand; re-read it right before registering). Check the coldkey'sfree_balance_taowithbittensor_account. - Size the risk. A new neuron is protected for
immunity_period_blocks(~12 s per block). After that, when the subnet is full, the lowest-scoring neuron is replaced by the next registration. Usebittensor_metagraphsorted byincentiveto see what the bottom of the subnet earns. - Register. Confirm network, netuid, wallet and hotkey names with the user, then run
btcli subnets register --netuid N --wallet-name W --hotkey H --network finney. Try the same flow on--network testfirst when the user is new. - Run the miner from the subnet's repository using its README, on the user's machine or server. Keep secrets such as wallet passwords out of commands the agent writes.
- Monitor. Every few tempos, call
bittensor_metagraphwith the miner's hotkey:active,incentive,emission_alpha,axon(should show the served endpoint) andblocks_since_update. Zero incentive with a served axon usually means validators cannot reach or score the miner.
Pitfalls
- Never read files under
~/.bittensor/walletsor print key material; usebittensor_accountinstead. - Registration cost changes between reads; a stale quote is not a promise.
- Emission is paid in the subnet's alpha (
*_alphafields). Its TAO value isstake_alpha × price_taoand moves with the subnet's price. - A miner that restarts with a new axon IP must serve again, or validators keep dialling the old one.
- Testnet (
test) and mainnet (finney) are separate chains with separate balances and netuids.
Verification
bittensor_accounton the hotkey lists the netuid and uid after registration.bittensor_metagraphwith the hotkey showsaxonset and a non-nullincentiveafter a few tempos.