Bittensor Subnet Owner's Guide

Everything You Need to Know

Version Information: This guide is based on the actual Bittensor codebase as of April 12, 2025 - commit 4e6cc4a0 - version 9.3.0

Installation and Setup

Note: We found many Bittensor docs and help files to be out of date. The following installation process worked for us as of April 2025.

Python Requirements

Bittensor works best with Python 3.9. You can set up the correct Python version using pyenv:

# Install Python 3.9
pyenv install 3.9

# Set Python 3.9 as the active version for your current shell
pyenv shell 3.9

# Verify the Python version
python --version  # Should output Python 3.9.x

Installing Bittensor CLI

The Bittensor CLI (Command Line Interface) is the primary tool for interacting with the Bittensor network. Install it using pip:

# Create and activate a virtual environment (recommended)
python -m venv ~/bittensor-venv
source ~/bittensor-venv/bin/activate

# Install the Bittensor CLI package
pip install bittensor-cli

# Verify the installation
btcli --version

The btcli command provides access to all the functionality needed to manage your subnet, including:

  • Viewing subnet information
  • Managing validators
  • Checking hyperparameters
  • Monitoring emissions

All examples in this guide use the btcli command, so make sure it's properly installed and accessible in your environment.

Subnet Overview

I started a subnet and I have some validators:

btcli subnets show --netuid 90

Subnet 90: brain
Network: finney

UID ┃ Stake ( ) ┃ Alpha ( ) ┃  Tao (τ) ┃ Dividends ┃ Incentive ┃ Emissions ( ) ┃ Hotkey ┃ Coldkey ┃ Identity       
━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━━━
  0  │      0.01 │      0.01 │   τ 0.00 │ 0.000000  │ 0.000000  │   0.000000    │ 5DwAxR │ 5GbuKC  │ brain (*Owner) 
  1  │    67.64k │      0.14 │ τ 67.64k │ 0.000000  │ 0.000000  │   0.000000    │ 5FFApa │ 5GZSAg  │ RoundTable21   
  2  │      0.00 │      0.00 │   τ 0.00 │ 0.000000  │ 0.000000  │   0.000000    │ 5EsNHe │ 5CDGV4  │ ~              
  3  │      0.00 │      0.00 │   τ 0.00 │ 0.000000  │ 0.000000  │   0.000000    │ 5EUoy5 │ 5CZnjH  │ ~              
  4  │      0.00 │      0.00 │   τ 0.00 │ 0.000000  │ 0.000000  │   0.000000    │ 5D57dW │ 5FL9eq  │ ~              
─────┼───────────┼───────────┼──────────┼───────────┼───────────┼───────────────┼────────┼─────────┼────────────────
     │    67.64k │      0.15 │   67.64k │   0.000   │           │   ‎0.0000  ‎    │        │         │                


Subnet 90: brain
  Owner: 5GbuKCxZ8eukNyzikWDUAA7YBRjkDGDBR89cWKMKLr8C29U8 (brain)
  Rate: 283.4458 τ/ 
  Emission: τ 0.0000
  TAO Pool: τ 16.86
  Alpha Pool: 0.06  
  Tempo: 271/360
  Registration cost (recycled): τ 0.9993

Subnet Hyperparameters

btcli sudo get --netuid 90
NETUID: 90 (ogham) - Network: finney

HYPERPARAMETER                    VALUE                  NORMALIZED      
─────────────────────────────────────────────────────────────────────── 
  rho                             10                     10              
  kappa                           32767                  0.4999923705    
  immunity_period                 10000                  10000           
  min_allowed_weights             8                      8               
  max_weights_limit               65535                  65535           
  tempo                           360                    360             
  min_difficulty                  18446744073709551615   1               
  max_difficulty                  18446744073709551615   1               
  weights_version                 1                      1               
  weights_rate_limit              100                    100             
  bonds_moving_avg                900000                 4.878909776e-14 
  max_regs_per_block              1                      1               
  serving_rate_limit              50                     50              
  max_validators                  64                     64              
  adjustment_alpha                17893341751498265066   0.97            
  difficulty                      18446744073709551615   1               
  target_regs_per_interval        1                      1               
  activity_cutoff                 5000                   5000            
  registration_allowed            True                   True            
  alpha_high                      58982                  0.9000076295    
  alpha_low                       45875                  0.7000076295    
  liquid_alpha_enabled            False                  False           
─────────────────────────────────────────────────────────────────────── 

Emissions and Rewards

When do emissions begin?

Emissions begin once a subnet is registered and active. The subnet must have been registered using the register_subnet_extrinsic function, have validators registered to it, and have passed the immunity period defined in the subnet hyperparameters. The immunity_period parameter defines a period during which newly registered neurons are protected, after which emissions begin to flow.

Based on your subnet hyperparameters, the immunity_period is set to 10000 blocks (as shown in your output). With Bittensor's block time of 12 seconds, this immunity period translates to approximately 33.3 hours or about 1.4 days in human time. This period serves as a protection mechanism for new validators, giving them time to establish themselves before being subject to the competitive ranking and emission distribution. When this period ends:

  1. Validators become subject to the full ranking and incentive mechanisms
  2. Emissions start flowing according to the stake, rank, and consensus metrics
  3. The subnet begins to generate value through its utility to the network

Note about 7-day waiting period: While the codebase itself doesn't explicitly mention a 7-day freeze or cooling-off period, many users online report that newly registered subnets have a 7-day waiting period before they become fully active. This may be a network-level rule enforced by validators or a recent governance decision not yet reflected in the client code. If you registered on April 11, 2025, at 8am, this would mean your subnet might become fully active around April 18, 2025.

As the owner, you need to:

  • Ensure validators are properly registered and operational before the immunity period ends
  • Monitor validator performance as they transition from protected to competitive status
  • Consider setting weights or encouraging stake to high-performing validators
  • Verify that your subnet identity is properly set using the set_subnet_identity_extrinsic function
  • Begin monitoring emission metrics once they start flowing

How are emissions distributed?

Emissions are distributed based on several factors:

  • Total emission for the subnet (subnet_emission)
  • Amount injected into outstanding per block (alpha_in_emission)
  • Amount injected into alpha reserves per block (alpha_out_emission)
  • Amount of TAO injected per block (tao_in_emission)

The distribution is based on:

  • Validator rank
  • Trust scores
  • Consensus
  • Stake amounts (alpha_stake, tao_stake, and total_stake)
  • Incentive mechanisms
  • Dividends

Detailed Emission Mechanism:

Emissions in Bittensor involve both TAO (τ) tokens and subnet-specific alpha tokens. Here's how the system works:

  1. Global Emission Pool: The Bittensor network has a global emission pool of TAO tokens that are distributed across all subnets.
  2. Subnet Ranking: Subnets are ranked based on their utility, stake, and activity. This ranking determines what portion of the global emission pool each subnet receives. In your case, if your subnet is ranked in the middle of 10 subnets, it would receive a moderate portion of the global emissions.
  3. Emission Types:
    • TAO Emissions (tao_in_emission): Direct TAO tokens distributed to validators and the subnet
    • Alpha Emissions: Subnet-specific tokens that represent ownership in the subnet
      • alpha_in_emission: Alpha tokens added to the reserve pool
      • alpha_out_emission: Alpha tokens distributed to participants
  4. Distribution Within a Subnet:
    • Validators receive emissions based on their rank, trust, and consensus scores
    • Subnet Owner receives dividends from the subnet's emissions
    • Miners/Non-validators receive incentives based on their contributions

Example Scenario (Based on a Middle-Ranked Subnet):

Assuming your subnet "brain" is ranked 5th out of 10 subnets:

  1. Global Allocation: Your subnet might receive approximately 10% of the global emission pool (percentages vary based on actual ranking algorithm).
  2. Emission Flow:
    • The network allocates, for example, 100 TAO per day to your subnet
    • Of this, perhaps 70 TAO goes toward alpha token reserves (alpha_in_emission)
    • 20 TAO is distributed directly to validators (tao_in_emission)
    • 10 TAO goes to the subnet owner as dividends
  3. Validator Rewards:
    • A top-performing validator with high rank and trust might receive 5 TAO directly
    • They would also receive alpha tokens proportional to their stake and performance
    • The alpha tokens represent ownership in the subnet and can appreciate in value as the subnet becomes more valuable
  4. Alpha Token Value:
    • As more TAO is staked in the subnet, the value of alpha tokens increases
    • The ratio between alpha_in (reserves) and alpha_out (circulating) affects the token price
    • Alpha tokens can be converted to TAO based on the current exchange rate
  5. Owner Earnings:
    • As the subnet owner, you receive dividends from the subnet's emissions
    • Your earnings increase as the subnet performs better and moves up in ranking
    • You also benefit from any alpha tokens you hold as they appreciate in value

The key point is that emissions create a dual-token economy where:

  • TAO is the primary value token of the entire network
  • Alpha tokens represent ownership and value within a specific subnet
  • Performance and stake determine how much of both tokens participants receive
  • The subnet's overall ranking determines its share of the global emission pool

Validators vs. Miners

Detailed Explanation of Validators vs. Miners in Bittensor

The Bittensor network distinguishes between two primary types of participants in subnets: validators and miners. Understanding their distinct roles is crucial for subnet owners and participants.

Validators:

  1. Role and Responsibilities:
    • Validators evaluate and score the quality of outputs produced by miners
    • They set the standards and criteria for what constitutes valuable contributions
    • They maintain the integrity of the subnet by identifying and rewarding high-quality participants
    • They run the consensus mechanism that determines how rewards are distributed
  2. Technical Implementation:
    • Validators run specialized code that implements the subnet's scoring mechanism
    • They typically have higher computational and bandwidth requirements
    • They maintain connections to multiple miners and continuously evaluate their outputs
    • They submit weights to the blockchain that determine how emissions are distributed
  3. Economic Position:
    • Validators receive direct TAO emissions based on their rank in the subnet
    • They typically require more stake to be competitive
    • Their earnings are directly tied to the subnet's overall ranking in the network
    • They can earn through both emissions and by running high-quality validation services

Miners:

  1. Role and Responsibilities:
    • Miners produce the digital commodities or services that the subnet is designed to incentivize
    • They respond to requests from validators with their best outputs
    • They compete with other miners to provide the highest quality responses
    • They specialize in optimizing for the specific tasks valued by the subnet
  2. Technical Implementation:
    • Miners run specialized code that implements the subnet's production mechanism
    • They focus on optimizing for quality of output rather than evaluation
    • They typically require more specialized resources (e.g., GPUs for ML models)
    • They respond to forward requests from validators
  3. Economic Position:
    • Miners receive incentives through the incentives field in the subnet state
    • Their earnings are based on the quality of their outputs as judged by validators
    • They can often operate with less stake than validators
    • Their earnings are tied to their individual performance rather than subnet governance

Key Differences:

AspectValidatorsMiners
Primary FunctionEvaluation & ScoringProduction & Response
Network RoleGovernance & ConsensusService Provision
Earnings SourceDirect TAO EmissionsIncentives Based on Performance
Stake RequirementsTypically HigherCan be Lower
Resource FocusBandwidth & ConnectionsSpecialized Computation
Number per SubnetLimited (max_validators parameter)Unlimited

Subnet Ranking and Performance

Subnet Ranking and Performance Metrics

Based on the Bittensor codebase, subnet ranking is a complex process that involves several factors:

  1. Stake-Based Factors:
    • Total Stake: The total amount of TAO staked in the subnet (both directly and via alpha tokens)
    • Stake Distribution: How widely distributed the stake is across validators
    • Stake Stability: How long stake remains in the subnet without being withdrawn
  2. Activity Metrics:
    • Validator Activity: Measured by the last_update field in the subnet state
    • Activity Cutoff: Defined by the activity_cutoff parameter (in your subnet, it's set to 5000 blocks)
    • Blocks Since Epoch: Tracked in the blocks_since_epoch field
  3. Performance Metrics:
    • Trust Scores: Calculated based on the consistency and reliability of validators
    • Consensus: Measures how well validators agree with each other on weights
    • Pruning Score: Indicates how well validators are performing relative to expectations
  4. Economic Metrics:
    • Emission Value: The emission_value field in SubnetInfo
    • Subnet Volume: The amount of TAO flowing through the subnet
    • Moving Price: The price trend of the subnet's alpha token
  5. Root Network Relationship:
    • The root network (netuid=0) plays a key role in ranking subnets
    • Root network validators set weights for subnets, affecting their ranking
    • These weights influence how much of the global emission pool each subnet receives

Owner Responsibilities

What do I need to do as the owner?

As the subnet owner, you need to:

  1. Set and maintain subnet identity using set_subnet_identity_extrinsic function (subnet name, GitHub repository, contact information, website URL, Discord, description)
  2. Monitor and potentially adjust subnet hyperparameters (though this may require chain governance)
  3. Ensure the subnet remains active and validators are performing as expected

Key Scripts and Functions

What scripts does an owner need?

Key functions an owner would need:

  1. register_subnet_extrinsic - To create a new subnet
  2. set_subnet_identity_extrinsic - To set/update subnet identity information
  3. get_subnet_info - To retrieve information about the subnet
  4. get_subnet_hyperparameters - To view the current hyperparameters
  5. get_subnet_state - To monitor the state of the subnet including validators and emissions
  6. get_metagraph - To get a comprehensive view of the subnet's network structure
  7. get_balance - To check TAO balances
  8. transfer_stake and related functions - To manage stake
  9. add_stake - To add stake to validators
  10. unstake - To remove stake from validators

Frequently Asked Questions

How much do I earn as the owner?

As an owner, you earn through:

  1. Dividends - The dividends field in SubnetState suggests owners receive dividends
  2. Emissions - If you're also running a validator on your subnet
  3. Alpha token value appreciation - As the subnet grows in value

The exact amount is determined by the subnet's performance, total stake, and the emission algorithm implemented on the chain.

How much do I earn as a validator?

As a validator, earnings are determined by:

  1. Your validator's rank in the subnet
  2. Your trust score
  3. Your consensus value
  4. Your stake amount (alpha_stake and tao_stake)
  5. The total emissions allocated to validators

Your earnings would be proportional to your performance metrics and stake relative to other validators.

How much do I earn as a miner?

The code doesn't explicitly distinguish between validators and miners, but non-validator nodes can earn through the incentives field in SubnetState. The earnings would be based on their performance metrics and stake, with the exact amount depending on the subnet's specific implementation and reward structure.

What decides emissions?

Emissions are decided by:

  1. The subnet's emission_value field in SubnetInfo
  2. The network's global emission parameters
  3. The subnet's performance and utility to the network
  4. The total stake in the subnet
  5. The rho parameter in subnet hyperparameters, which appears to be related to the rate of decay

What decides the value of alpha token?

The value of the alpha token is determined by:

  1. The alpha_stake and related fields in SubnetState
  2. The alpha_high and alpha_low parameters in SubnetHyperparameters
  3. The liquid_alpha_enabled flag which determines if alpha can be traded
  4. The total TAO staked in the subnet
  5. The subnet's performance and utility

Initially my subnet price is 283.4458 τ/ - how does that change?

The subnet price changes based on:

  1. The total stake in the subnet
  2. The performance of the subnet
  3. The emission value
  4. Market dynamics (if liquid alpha is enabled)

The price can increase as more TAO is staked in the subnet and as the subnet demonstrates utility and performance.

When should I buy my alpha token?

Optimal times to buy alpha tokens would be:

  1. Early in the subnet's lifecycle, before significant appreciation
  2. When the subnet demonstrates strong performance but hasn't yet been widely recognized
  3. When the alpha_stake to tao_stake ratio suggests the alpha is undervalued

How much should I stake?

The code doesn't provide direct guidance on stake amounts, but based on the parameters:

  1. As an owner, stake enough to maintain significant influence in your subnet
  2. As a validator, stake enough to be competitive with other validators
  3. The min_allowed_weights parameter in SubnetHyperparameters suggests a minimum threshold for participation

The optimal amount depends on your role, the subnet's current state, and your risk tolerance.

Monitoring Your Subnet

Setting Up Monitoring Tools

Monitoring your subnet's performance is crucial for optimizing its operation and tracking when emissions begin. Below is a bash script that can be used to monitor key subnet metrics and send updates to Slack:

#!/bin/bash

# Set absolute paths
VENV_PATH="/path/to/your/venv"
LOG_FILE="/path/to/your/log_file.log"
SLACK_WEBHOOK_URL="your_slack_webhook_url"
NETUID=90  # Replace with your subnet ID

# Set up environment
export PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:$PATH"

# Activate virtual environment
source "$VENV_PATH/bin/activate"

# Get current block height
BLOCK_INFO=$(btcli root get_block --subtensor.network finney)
BLOCK_HEIGHT=$(echo "$BLOCK_INFO" | grep "block_number" | awk '{print $2}')

# Get subnet stats
SUBNET_INFO=$(btcli subnets show --netuid $NETUID)

# Extract key metrics
RATE=$(echo "$SUBNET_INFO" | grep "Rate:" | awk '{print $2}')
EMISSION=$(echo "$SUBNET_INFO" | grep "Emission:" | awk '{print $2" "$3}')
TAO_POOL=$(echo "$SUBNET_INFO" | grep "TAO Pool:" | awk '{print $3" "$4}')
ALPHA_POOL=$(echo "$SUBNET_INFO" | grep "Alpha Pool:" | awk '{print $3}')
TEMPO=$(echo "$SUBNET_INFO" | grep "Tempo:" | awk '{print $2}')
VALIDATOR_COUNT=$(echo "$SUBNET_INFO" | grep -A 100 "UID ┃" | grep -v "UID ┃" | grep -v "─────┼" | grep -v "^$" | wc -l | xargs)

# Prepare and send message to Slack
MESSAGE="*Subnet Stats Update*
*Rate*: $RATE τ/∞
*Emission*: $EMISSION
*TAO Pool*: $TAO_POOL
*Alpha Pool*: $ALPHA_POOL
*Tempo*: $TEMPO
*Active Validators*: $VALIDATOR_COUNT
*Current Block*: $BLOCK_HEIGHT"

curl -s -X POST -H 'Content-type: application/json'   --data "{\"text\":\"$MESSAGE\"}"   "$SLACK_WEBHOOK_URL"

# Deactivate virtual environment
deactivate

This script can be scheduled to run regularly using cron:

# Run every hour
0 * * * * /path/to/your/monitoring_script.sh

Key Metrics to Monitor

  1. Emissions: The most important metric, showing when your subnet starts receiving TAO tokens
  2. Rate: The exchange rate between TAO and alpha tokens
  3. TAO Pool: The reserve of TAO tokens allocated to your subnet
  4. Alpha Pool: The total supply of alpha tokens in your subnet
  5. Validator Count: The number of active validators
  6. Block Height: Current blockchain height, useful for tracking immunity period progress

Interpreting Results

  • Zero Emissions: During the immunity period (first 10000 blocks or ~1.4 days), emissions will show as zero
  • Emission Increases: After immunity period, emissions should begin flowing based on subnet ranking
  • TAO Pool Growth: Indicates your subnet is receiving its share of the global emission pool
  • Alpha Pool Changes: Reflects the internal economy of your subnet

Common Challenges and Solutions

Emissions Not Starting

If your subnet has passed the immunity period but emissions haven't started:

  1. Check Validator Activity: Ensure validators are active and properly registered
  2. Verify Stake: Confirm there is sufficient stake in the subnet
  3. Review Hyperparameters: Some parameters may need adjustment through governance
  4. Network Conditions: The Finney network may have temporary limitations

Low Subnet Ranking

If your subnet is receiving lower emissions than expected:

  1. Increase Stake: Attract more validators with significant stake
  2. Improve Utility: Develop real-world applications that use your subnet
  3. Boost Activity: Ensure consistent validator participation
  4. Promote Your Subnet: Make your subnet's value proposition known to root validators

Technical Issues

For technical problems:

  1. Check Logs: Review validator logs for errors
  2. Update Software: Ensure you're running the latest Bittensor version
  3. Network Connectivity: Verify validators have stable connections
  4. Resource Allocation: Confirm validators have sufficient computational resources

Bittensor Terminology Dictionary

A

  • Alpha: A subnet-specific token that represents ownership in a subnet. Alpha tokens are distinct from TAO and operate within the subnet's internal economy.
  • Alpha Pool: The total reserve of alpha tokens in a subnet, which can be exchanged for TAO under certain conditions.
  • Alpha High/Low: Parameters that define the upper and lower bounds for alpha token value in a subnet's hyperparameters.
  • Axon: The server component in the Bittensor network that receives and processes requests. Validators and miners run axons to communicate with each other.

B

  • Block: A unit of the blockchain that contains transactions and state changes. In Bittensor, blocks are produced approximately every 12 seconds.
  • Bonds: Connections between neurons in the network that represent trust relationships. Bonds influence the flow of incentives.

C

  • Coldkey: A secure wallet key used for storing TAO and performing sensitive operations like staking. Should be kept in cold storage for security.
  • Consensus: The mechanism by which validators agree on the quality and ranking of miners. Also refers to a metric that measures how much a validator's rankings align with the overall network.

D

  • Dendrite: The client component in Bittensor that sends requests to axons across the network.
  • Difficulty: A parameter that controls how challenging it is to register on a subnet, typically implemented as a proof-of-work requirement.
  • Dividends: A portion of subnet emissions allocated to the subnet owner.

E

  • Emissions: The TAO tokens distributed to participants in the network. Emissions flow from the global emission pool to subnets based on their ranking.
  • Epoch: A period of time (measured in blocks) after which the network updates weights, ranks, and emissions.

F

  • Finney: The main production network of Bittensor, named after Hal Finney. (Contrasted with test networks like Noble)
  • Forward: The process of sending a request from a validator to a miner for processing.

H

  • Hotkey: A wallet key used for regular network operations like running validators or miners. More frequently used than coldkeys and typically has a smaller balance.
  • Hyperparameters: Configuration settings that control a subnet's behavior, including emission rates, immunity periods, and other economic factors.

I

  • Immunity Period: A protection timeframe (measured in blocks) during which newly registered neurons are shielded from the competitive ranking system.
  • Incentive: Rewards allocated to miners based on their performance as judged by validators.

K

  • Kappa: A hyperparameter that influences the distribution of emissions within a subnet.

M

  • Metagraph: A data structure that represents the state of a subnet, including all neurons, their weights, stakes, and relationships.
  • Miner: A network participant that produces digital commodities or services in response to validator requests. Miners compete to provide the highest quality responses.

N

  • Netuid: Network Unique Identifier. A numeric ID that uniquely identifies a subnet on the Bittensor network.
  • Neuron: A general term for any participant in the Bittensor network, which could be either a validator or a miner.

R

  • Rank: A measure of a neuron's performance and value to the network, which determines its share of emissions.
  • Registration: The process of joining a subnet as either a validator or a miner, which may require a registration fee and/or proof-of-work.
  • Rho: A hyperparameter related to the rate of emission decay in a subnet.

S-W

  • Stake: TAO tokens locked to a neuron to increase its influence and potential rewards. Higher stake generally leads to higher emissions.
  • Subnet: A specialized network built on Bittensor that focuses on a specific type of digital commodity or service.
  • TAO: The native token of the Bittensor network, used for staking, governance, and rewards.
  • Validator: A network participant that evaluates and scores the quality of outputs produced by miners. Validators determine how rewards are distributed within a subnet.
  • Weights: Values assigned by validators to miners that determine the distribution of incentives. Higher weights indicate higher quality contributions.