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:
- Validators become subject to the full ranking and incentive mechanisms
- Emissions start flowing according to the stake, rank, and consensus metrics
- 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:
- Global Emission Pool: The Bittensor network has a global emission pool of TAO tokens that are distributed across all subnets.
- 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.
- 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 poolalpha_out_emission
: Alpha tokens distributed to participants
- TAO Emissions (
- 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:
- Global Allocation: Your subnet might receive approximately 10% of the global emission pool (percentages vary based on actual ranking algorithm).
- 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
- 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
- Alpha Token Value:
- As more TAO is staked in the subnet, the value of alpha tokens increases
- The ratio between
alpha_in
(reserves) andalpha_out
(circulating) affects the token price - Alpha tokens can be converted to TAO based on the current exchange rate
- 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:
- 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
- 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
- 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:
- 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
- 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
- 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
- Miners receive incentives through the
Key Differences:
Aspect | Validators | Miners |
---|---|---|
Primary Function | Evaluation & Scoring | Production & Response |
Network Role | Governance & Consensus | Service Provision |
Earnings Source | Direct TAO Emissions | Incentives Based on Performance |
Stake Requirements | Typically Higher | Can be Lower |
Resource Focus | Bandwidth & Connections | Specialized Computation |
Number per Subnet | Limited (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:
- 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
- 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
- Validator Activity: Measured by the
- 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
- 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
- Emission Value: The
- 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:
- Set and maintain subnet identity using
set_subnet_identity_extrinsic
function (subnet name, GitHub repository, contact information, website URL, Discord, description) - Monitor and potentially adjust subnet hyperparameters (though this may require chain governance)
- 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:
register_subnet_extrinsic
- To create a new subnetset_subnet_identity_extrinsic
- To set/update subnet identity informationget_subnet_info
- To retrieve information about the subnetget_subnet_hyperparameters
- To view the current hyperparametersget_subnet_state
- To monitor the state of the subnet including validators and emissionsget_metagraph
- To get a comprehensive view of the subnet's network structureget_balance
- To check TAO balancestransfer_stake
and related functions - To manage stakeadd_stake
- To add stake to validatorsunstake
- To remove stake from validators
Frequently Asked Questions
How much do I earn as the owner?
As an owner, you earn through:
- Dividends - The
dividends
field inSubnetState
suggests owners receive dividends - Emissions - If you're also running a validator on your subnet
- 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:
- Your validator's rank in the subnet
- Your trust score
- Your consensus value
- Your stake amount (alpha_stake and tao_stake)
- 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:
- The subnet's
emission_value
field inSubnetInfo
- The network's global emission parameters
- The subnet's performance and utility to the network
- The total stake in the subnet
- 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:
- The
alpha_stake
and related fields inSubnetState
- The
alpha_high
andalpha_low
parameters inSubnetHyperparameters
- The
liquid_alpha_enabled
flag which determines if alpha can be traded - The total TAO staked in the subnet
- The subnet's performance and utility
Initially my subnet price is 283.4458 τ/ - how does that change?
The subnet price changes based on:
- The total stake in the subnet
- The performance of the subnet
- The emission value
- 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:
- Early in the subnet's lifecycle, before significant appreciation
- When the subnet demonstrates strong performance but hasn't yet been widely recognized
- When the
alpha_stake
totao_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:
- As an owner, stake enough to maintain significant influence in your subnet
- As a validator, stake enough to be competitive with other validators
- The
min_allowed_weights
parameter inSubnetHyperparameters
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
- Emissions: The most important metric, showing when your subnet starts receiving TAO tokens
- Rate: The exchange rate between TAO and alpha tokens
- TAO Pool: The reserve of TAO tokens allocated to your subnet
- Alpha Pool: The total supply of alpha tokens in your subnet
- Validator Count: The number of active validators
- 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:
- Check Validator Activity: Ensure validators are active and properly registered
- Verify Stake: Confirm there is sufficient stake in the subnet
- Review Hyperparameters: Some parameters may need adjustment through governance
- Network Conditions: The Finney network may have temporary limitations
Low Subnet Ranking
If your subnet is receiving lower emissions than expected:
- Increase Stake: Attract more validators with significant stake
- Improve Utility: Develop real-world applications that use your subnet
- Boost Activity: Ensure consistent validator participation
- Promote Your Subnet: Make your subnet's value proposition known to root validators
Technical Issues
For technical problems:
- Check Logs: Review validator logs for errors
- Update Software: Ensure you're running the latest Bittensor version
- Network Connectivity: Verify validators have stable connections
- 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.