Emission
Emission is the economic heartbeat of Bittensor—the process that continuously distributes newly created TAO and subnet-specific alpha tokens to network participants who contribute value through mining, validation, staking, and subnet creation.
As of November 2025: Bittensor has transitioned to a flow-based model for determining how TAO emissions are distributed across subnets. Emissions are now based on net TAO inflows due to staking activity, rather than token prices as previously.
See:
Injection and Distribution: Two-Stages of the Emissions Process
Bittensor's emission system operates through two stages, reflecting the system's hierarchical, competitive nature:
-
Injection: Every block, new liquidity flows into each subnet's liquidity pools, based on subnet performance.
-
Distribution: At the end of each tempo (waiting period of ~360 blocks, ~72 minutes), accumulated rewards within each subnet are distributed to the subnet's participants through Yuma Consensus, which evaluates individual performance and determines who deserves what share.
See also:
- Coinbase Implementation in the Subtensor codebase
- Yuma Consensus
- Dynamic TAO White Paper
Injection
The first stage of emissions is injection of liquidity into the subnet pools. Liquidity is injected to each subnet based on either price (legacy model) or net TAO flows (new model), or a weighted combination during the transition period.
Each block:
- TAO is injected into the subnet's TAO reserve — the amount for each subnet is determined by the emission distribution formula (see below)
- Alpha is injected into the subnet's alpha reserve — proportional to TAO injection to maintain price stability
- Alpha is allocated to alpha outstanding — set aside to be distributed by participants (miners, validators, stakers, subnet owner)
Distribution across Subnets
TAO emissions across subnets are now determined by a flow-based model:
Flow-Based Model (Active as of November 2025)
- Emissions based on net TAO inflows, i.e. TAO that has flowed into the subnet minus TAO that has flowed out, from staking/unstaking activity
- Rewards subnets that attract genuine user engagement
- Subnets with negative net flows (more unstaking than staking) receive zero emissions
- More dynamic and responsive than the previous price-based approach
Previous Price-Based Model (No Longer Active)
- Emissions were proportional to smoothed subnet token prices
- Created "price inertia" effects where established subnets maintained high emissions even during mass unstaking
- Was vulnerable to "TAO treasury" gaming strategies
TAO reserve injection
A subnet's TAO reserve injection is determined by its emission share, calculated based on net flow of TAO in and out of the subnet's TAO liquidity pool due to staking/unstaking.
How it's calculated
The flow-based model uses an Exponential Moving Average (EMA) of net TAO flows (staking minus unstaking):
-
Track net flows: Each block, record TAO inflows from staking and outflows from unstaking:
-
Calculate EMA: Update the 30-day EMA of net flows (smoothing factor ):
The EMA smooths out short-term fluctuations. With a very small α (~0.000003209), the EMA changes slowly—99.9997% comes from the previous EMA value and only 0.0003% from the current block's flow. This creates a 30-day half-life, meaning it takes about 30 days for the EMA to move halfway toward a new sustained flow level. This results in an EMA window (duration over which old values still affect the running EMA) of approximately ~86.8 days.
-
Apply offset and clipping: Calculate offset flows by subtracting the lower limit : where
This step ensures subnets with negative net flows get zero emissions. The lower limit is set to the most negative EMA across all subnets (or FlowCutoff if higher). By subtracting this from each subnet's EMA, we "lift" all values so the worst-performing subnet gets 0.
-
Power normalization: Apply power to adjust distribution characteristics:
This converts the offset flows into proportions that sum to 1 (100%). With (default), this is just dividing each subnet's offset flow by the total across all subnets, creating a linear relationship. Higher values favor subnets with stronger flows.
-
Final TAO injection: Multiply the share by total block emission to get actual TAO amount:
This converts the proportions into actual TAO amounts. The total block emission is 1 TAO per block.
With the default (source), this creates linear/proportional distribution: a subnet with 2× the flow receives exactly 2× the emissions. The parameter can be adjusted to create winner-takes-more dynamics if desired (e.g., with , a subnet with 2× flow would get 2.83× emissions).
Key Parameters:
- EMA smoothing factor: 30-day half-life (results in ~86.8 day EMA window) (source)
- Power exponent: (linear/proportional) (source)
- Flow cutoff: 0 (only negative flows clipped) (source)
- EMA Initialization: New subnets start with EMA = min(moving_price, current_price) (code)
Implementation:
- Flow tracking:
record_tao_inflow()andrecord_tao_outflow(), called during stake/unstake - Share calculation:
get_shares()→get_shares_flow()
Flow tracking does not include root proportion.
While stake/unstake operations are recorded as inflows or outflows, swaps like the burned_register (UID registration) and the root claim are excluded.
Alpha reserve injection
Alpha is then injected in proportion to the price of the token, so that growth of a subnet's liquidity pools does not not change the price of the alpha token.
See how it's calculated!
Recall that token price for a subnet is its TAO in reserve divided by its alpha reserve:
So in order to inject alpha without changing the price, it should follow:
When we fill in this equation with the previous formula for , the price is cancelled out of the equation, yielding:
However, alpha injection is also capped at 1 by the algorithm, to prevent runaway inflation. Therefore, with cap or alpha emission rate , emission to subnet is:
The cap or alpha emission rate for subnet , starts at 1 and follows a halving schedule identical to that of TAO, beginning when subnet is created.
Alpha outstanding injection
Each block, liquidity is also set aside to be emitted to participants (validators, miners, stakers, and subnet creator). The quantity per block is equal to the alpha emission rate for subnet .
Under the new flow-based model, subnets that have negative net TAO flows (more unstaking than staking) for sufficiently long will receive zero TAO emissions and consequently zero alpha injection. This means:
- No liquidity growth for the subnet pool
- Higher slippage for users trying to stake
- Difficulty attracting new participants
To maintain positive emissions, subnet owners should focus on:
- Building genuine utility that attracts long-term stakers
- Creating sustainable value that encourages TAO inflows
Distribution
At the end of each tempo (~360 blocks), the quantity of alpha accumulated over each block of the tempo is distributed network participants in the following proportions:
-
18% by subnet owner
-
41% of emissions go to miners. The allocation to particular miners is determined by Yuma Consensus: Miner emissions#miner-emissions.
-
41% by validators and their stakers.
-
First, the allocation to validators miners is determined by Yuma Consensus: Validator Emissions.
-
Then, validators receive their take from that allocation.
-
Then, TAO and alpha are emitted to stakers in proportion to the validators' holdings in each token. TAO emissions are sourced by swapping a portion of alpha emissions to TAO through the subnet's liquidity pool.
See how it's calculated!
For validator x's TAO stake , and alpha stake , and the global TAO weight :
-
TAO is emitted to stakers on the root subnet (i.e. stakers in TAO) in proportion to the validator's stake weight's proportion of TAO.
-
Alpha is emitted to stakers on the mining subnet (i.e. stakers in alpha) in proportion to the validator's stake weight's proportion of alpha:
Validators who hold both root TAO and subnet alphas will receive both types of token.
-
-
Rationale for Flow-Based Emissions
The shift from price-based to flow-based emissions addressed several fundamental issues with the original model, as explained by Bittensor co-founder Jacob Steeves (a.k.a., Const) in the October 30, 2025 episode of Novelty Search:
Leveling the Playing Field
The new model measures emissions contribution "per unit liquidity" to eliminate structural advantages:
- Old model problem: Small subnets with low liquidity are devastated by minor sell pressure, while large subnets with high liquidity can absorb massive selling with minimal emission impact
- New model solution: All subnets are evaluated by their net TAO flow. Because this is the difference between in-flow and out-flow of TAO, it is scale-invariant and does not favor subnets with larger total liquidity pools, leveling the playing field.
Preventing "TAO Treasury" Gaming
The price-based model enabled a specific exploit pattern:
- Projects artificially pump their token price by building "TAO treasuries"
- They pay for initial liquidity buildup using emissions from the inflated price
- They let the price "slow burn" downward while collecting emissions the entire time
Under the new model, injection favors subnets that are actively being staked into, rather than just holding accumulated liquidity.
Anti-Manipulation by Design
The flow-based system is designed to be manipulation-resistant:
- Net flows reflect actual user behavior (staking/unstaking decisions)
- ~86.8 day EMA prevents short-term gaming
- Neuron registrations are excluded from inflows
- Power normalization amplifies sustained positive flows over temporary spikes
Note: De-registration Remains Price-Based
Emissions and de-registration are intentionally decoupled:
- De-registration continues to be based on lowest token price
- Subnets with zero emissions (due to negative net flows) are not automatically de-registered
Note on evolution of Bittensor token economy
At the initialization of Dynamic TAO, there was no alpha in circulation, so validator's stake weights were initially determined by their share of TAO stake.
But far more alpha than TAO is emitted into circulation every block. As a result, over time there will be more alpha relative to TAO in overall circulation, and the relative weight of a validator in a given subnet will depend more on their alpha stake share relative to their share of the TAO stake on Subnet Zero.
In order to hasten the process of alpha gaining the majority of stake power in the network, the contribution of TAO stake to a validator's stake weight is reduced by a global parameter called TAO weight. Currently, this is planned to be 18%, in order to achieve a weight parity between TAO and total alpha in approximately 100 days.

