Block Emission
EmissionPer-block emission of new TAO, split between subnets based on root network weights and subnet stake.
dTAO Emission Flow
dTAO Emission Flow (per block)
Example: Who Gets What (one block, one subnet)
Click items to navigate to their reference pages.
The Big Picture
Block emission is the "money printer" of Bittensor. Every ~12 seconds a new block mints TAO from a 21M supply cap, and distributes it across all active subnets through their Alpha token pools. As more TAO has been minted, the emission rate decays logarithmically — like Bitcoin halving but smoother.
Why This Matters
Block emission determines the total new TAO entering the economy each day. It directly affects validator and miner earnings, Alpha token prices, and overall network inflation.
Example Scenario
At current issuance (~7.5M TAO of 21M cap), each block emits ~0.5 TAO. A subnet with 20% TAO Flow share receives 0.1 TAO per block. After 10% owner cut, the remaining 0.09 TAO worth of Alpha splits 50/50 between miners and validators — then distributed by Yuma Consensus at epoch.
Common Questions
- When does emission stop?
- Never fully — it decays asymptotically. Emission approaches zero as total issuance nears 21M TAO, similar to Bitcoin but with smoother logarithmic decay rather than discrete halvings.
- How is emission split between subnets?
- Via TAO Flow shares — an EMA of stake/unstake activity combined with root network validator weights. Subnets attracting more stake get more emission.
Use Cases
- Estimating validator/miner daily earnings
- Understanding network inflation rate
- Modeling subnet economics
- Planning long-term stake strategies
Every block, the Subtensor runtime mints new TAO and distributes it across subnets. The total emission per block is determined by the halving schedule (total issuance vs. max supply). Each subnet receives a share proportional to its TAO Flow allocation. Within each subnet, emissions are further split between validators and miners via Yuma Consensus results.
Since dTAO, emissions flow through Alpha token pools rather than being distributed as raw TAO.
Triggers
- Every block (on_initialize hook)
Inputs (3)
| Item | Type | Role |
|---|---|---|
| BlockEmission SubtensorModule | storage | TAO emitted per block (from halving schedule) |
| TotalIssuance SubtensorModule | storage | Current total TAO supply for halving calculation |
| NetworksAdded SubtensorModule | storage | Active subnet registry |
Outputs (4)
| Item | Type | Role |
|---|---|---|
| SubnetTAO SubtensorModule | storage | TAO injected into subnet Alpha pools each block via run_coinbase |
| SubnetAlphaIn SubtensorModule | storage | Alpha minted into subnet pools from emission injection |
| TotalIssuance SubtensorModule | storage | Updated total supply after minting |
| Emission SubtensorModule | storage | Per-UID emission amounts after epoch processing |
Source Files
pallets/subtensor/src/coinbase/block_step.rs pallets/subtensor/src/coinbase/block_emission.rs Formulas
Halving Schedule
Block emission decreases as total issuance approaches max supply (21M TAO), following a log2-based decay that halves emission at each issuance threshold.
residual = floor(log2(1 / (1 - total_issuance / (2 * 10_500_000_000_000_000)))) block_emission = DefaultBlockEmission / 2^residual // DefaultBlockEmission = 1_000_000_000 RAO (1 TAO) // Emission halves at each residual step as issuance grows
TypeScript: computeBlockEmission() in yuma-formulas.ts
Emission Calculator
Emission Calculator
See how block emission flows through subnets to participants
Subnet Configuration
| Subnet | TAO Flow % | Owner Cut % | Pool TAO | Pool Alpha | α Price | Actions |
|---|---|---|---|---|---|---|
| SN1 | 1.200τ | |||||
| SN2 | 0.800τ | |||||
| SN3 | 1.000τ |
α Price auto-calculates from Pool TAO / Pool Alpha
Emission Breakdown (per block)
| Subnet | TAO In | α Minted | Owner | Miners | Validators |
|---|---|---|---|---|---|
| SN1 | 0.2500τ | 0.2083α | 0.0208α (0.0250τ) | 0.0938α (0.1125τ) | 0.0938α (0.1125τ) |
| SN2 | 0.1500τ | 0.1875α | 0.009375α (0.007500τ) | 0.0891α (0.0712τ) | 0.0891α (0.0712τ) |
| SN3 | 0.1000τ | 0.1000α | 0.00e+0α (0.00e+0τ) | 0.0500α (0.0500τ) | 0.0500α (0.0500τ) |
| Total | 0.5000τ | ~0.0325τ | ~0.2337τ | ~0.2337τ |
Your Position
Flow: Block emission → divided by TAO Flow % → converted to Alpha at pool price → owner cut taken first → remainder split 50/50 between miners/validators.
Try: Change pool TAO to see how Alpha price affects the TAO-equivalent value. Higher-priced Alpha means each token is worth more TAO.