Skip to main content

Bittensor Miner

Choose, register and monitor a Bittensor subnet miner.

Bundled with Minerva and active by default — there is nothing to install.

Skill metadata​

Pathskills/bittensor/bittensor-miner
Version1.0.0
Authormoy-boy (@moy-boy), Minerva Agent
LicenseMIT
Platformslinux, macos, windows
TagsBittensor, TAO, Subnet, Miner, Registration, Incentive, Emission, btcli, Blockchain
Related skillsbittensor-validator, bittensor-subnet-owner

Reference: full SKILL.md​

info

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​

  • btcli installed (uv tool install bittensor-cli or pip 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​

GoalHow
Compare subnetsbittensor_subnets with sort_by: "emission" or "registration_cost"
One subnet's rulesbittensor_subnet → immunity_period_blocks, registration_allowed, max_neurons, hyperparameters
Competitionbittensor_metagraph with sort_by: "incentive"
My minerbittensor_metagraph with hotkeys: ["<hotkey ss58>"]
My keys' registrationsbittensor_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​

  1. Pick the subnet. Call bittensor_subnets sorted by emission; shortlist subnets whose registration_allowed is true and neurons < max_neurons or that recycle slots often. For each candidate call bittensor_subnet and read identity.github_repo (with web_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.
  2. Price the entry. Registration burns registration_cost_tao (it moves with demand; re-read it right before registering). Check the coldkey's free_balance_tao with bittensor_account.
  3. 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. Use bittensor_metagraph sorted by incentive to see what the bottom of the subnet earns.
  4. 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 test first when the user is new.
  5. 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.
  6. Monitor. Every few tempos, call bittensor_metagraph with the miner's hotkey: active, incentive, emission_alpha, axon (should show the served endpoint) and blocks_since_update. Zero incentive with a served axon usually means validators cannot reach or score the miner.

Pitfalls​

  • Never read files under ~/.bittensor/wallets or print key material; use bittensor_account instead.
  • Registration cost changes between reads; a stale quote is not a promise.
  • Emission is paid in the subnet's alpha (*_alpha fields). Its TAO value is stake_alpha × price_tao and 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_account on the hotkey lists the netuid and uid after registration.
  • bittensor_metagraph with the hotkey shows axon set and a non-null incentive after a few tempos.