Skip to main content
LAST EDIT:Jan 3, 2024

Register and Participate

To participate either as a subnet validator or subnet miner, you must register first. Registration means registering your keys with your preferred subnet and purchasing a UID slot in that subnet.

Run the below command to register your keys. The YOUR_PREFERRED_NETUID is the netuid of your preferred subnet.

btcli subnet register --netuid YOUR_PREFERRED_NETUID --wallet.name YOUR_COLDKEY --wallet.hotkey YOUR_HOTKEY

Registering works like this:

  • When you run the above command, you have purchased a UID slot in the subnet of your choice.
  • Your hotkey, which is part of your wallet, becomes the holder of the UID slot. The terms "account" and "hotkey" are used synonymously.
Ownership belongs to a hotkey

Ownership belongs to a hotkey. Hence, for example, when you delegate your TAO to a subnet validator, you attach your delegated TAO to the hotkey of the subnet validator. See Delegation.

A hotkey can hold multiple UIDs across separate subnets. However within one subnet, each UID must have a unique hotkey.

After your register your keys, you can then proceed to become either a subnet miner or a subnet validator, which have different requirements. See below.

Running a subnet miner

After registering your key to the subnet, you can start mining. You can run your own miner or select miner modules that are provided in the subnet codebase.

Stake not needed to run a miner

Note that you do not need to have any stake to run a miner. You only need to register.

If you plan to run an existing miner module, make sure to read the documentation of the specific subnet, including the node requirements to run the specific miner you want to run. See Preparing for Subnet for more details.

Moving a subnet miner to a different machine

Once your subnet miner has began mining, you can change it to a different machine, but proceed with caution.

Always minimize subnet miner downtime

Make sure that you always minimize any downtime for your subnet miner. This is because missing validation requests can be significantly damaging to incentive and rewards for your subnet miner.

To move a subnet miner from one machine to another, follow the below guidelines in this order:

  1. Start the subnet miner on the new machine.
  2. Wait for the old miner to stop receiving requests from the subnet validators.
  3. Stop the old miner.

It can take the subnet validators some time to realize that the IP of the Axon for your subnet miner has changed.

Running a subnet validator

To become a subnet validator, you must:

  1. Register your keys to the subnet (as described above).
  2. Stake sufficient TAO on your hotkey to secure validator permit.

Staking

You stake by attaching TAO to your hotkey. Attaching TAO to your hotkey can be achieved in two ways:

Stake your own TAO

By staking your own TAO funds to your hotkey that holds the UID in the subnet where you want to validate.

# Stake funds to your hotkey account within the subnet.
btcli stake add
--wallet.name YOUR_WALLET_NAME
--wallet.hotkey YOUR_HOTKEY_NAME

Attract delegated stake

By attracting delegated stake from the nominators. For this you must first nominate your hotkey as a delegate and then advertising your hotkey. The nominators can then delegate their TAO to your hotkey.

# Nominate your hotkey as a delegate
btcli root nominate
--wallet.name YOUR_WALLET_NAME
--wallet.hotkey YOUR_HOTKEY_NAME
See also

See Becoming a delegate for specific steps.

Validator permit

Only the largest 64 subnet validators, in terms of stake, on any particular subnet are considered to have validator permit. Only the subnet validators with permit are considered active in a subnet.

Calculate TAO required

The amount of TAO needed to acquire a validator permit depends on how the other largest 64 wallets distribute TAO across themselves. You can calculate the minimum using bt.metagraph:

import bittensor as bt
subnet = bt.metagraph(1)
top_64_stake = subnet.S.sort()[0][-64:].tolist()
print (f'Current requirement for validator permits based on the top 64 stake stands at {min(top_64_stake)} tao')

Check the permit status

This information can be obtained from the metagraph using your UID.

import bittensor as bt
subnet = bt.metagraph(1)
wallet = bt.wallet( name = 'my_wallet_name', hotkey = 'my_validator_hotkey_name' )
my_uid = subnet.hotkeys.index( wallet.hotkey.ss58_address )
print ('validator permit', subnet.validator_permit[ my_uid ])

Inspecting UIDs

After you obtain a UID slot you can view the performance of your registered wallet by running:

btcli wallet overview --netuid

After providing your wallet name at the prompt, you will see the following output:

ParameterValueDescription
COLDKEYmy_coldkeyThe name of the coldkey associated with your slot.
HOTKEYmy_first_hotkeyThe name of the hotkey associated with your slot.
UID5The index of the uid out of available uids.
ACTIVETrueWhether or not the uid is considered active.
STAKE(τ)71.296The amount of stake in this wallet.
RANK0.0629This miner's absolute ranking according to validators on the network.
TRUST0.2629This miner's trust as a proportion of validators on the network.
CONSENSUS0.89This validator's aggregate consensus score.
INCENTIVE0.029This miner's incentive, TAO emission attained via mining.
DIVIDENDS0.001This validator's dividends, TAO emission attained via validating.
EMISSION29_340_153This miner's total emission in RAO ( 10-9 TAO ) per block.
VTRUST0.96936This validators trust score as a validator.
VPERMIT*Whether this miner is considered active for validating on this subnetwork.
UPDATED43Blocks since this miner set weights on the chain.
AXON131.186.56.85:8091The entrypoint advertised by this miner on bittensor blockchain.
HOTKEY_SS585F4tQyWr...The raw ss58 encoded address of the miner's hotkey.
LAST EDIT:Jan 3, 2024