Subnet emission
Subnet 51 receives a share of Bittensor's per-tempo (~72 minutes) TAO emission. Validators split that share across three pools — rented, unrented, and burn — and pay the result to providers as alpha.
Bittensor protocol layer (general context)
Every 72 minutes (~360 blocks), Bittensor emits new TAO to the network:
- 41% to providers (the protocol's "miner" role)
- 41% to validators and stakers
- 18% to subnet owners
Subnet 51 competes for the provider share alongside other subnets, then distributes its slice via Yuma Consensus. See Bittensor Emissions and Yuma Consensus.
Subnet 51 layer​
Each epoch the validator splits the SN51 provider emission into three pools.
The three pools​
| Pool | Share | Who earns | Live source of truth |
|---|---|---|---|
| Rented | 9% — fixed | Nodes whose GPU is currently rented | Grafana — GPU model rate (per-model gpu_portion) |
| Unrented | 0 – 91% — dynamic | Unrented nodes of eligible GPU models | Lium rewards calculator (per-model USD/epoch) |
| Burn | 91% minus the unrented share | Designated burner UIDs only | — |
The unrented and burn pools share a 91% ceiling. When unrented activity grows, burn shrinks toward zero; when unrented activity is sparse, burn absorbs the slack.
Rented pool​
Distributed across rented nodes in proportion to a live per-model gpu_portion, which the validator updates from rental revenue every time the Lium platform reports a new figure. The current values are on the Grafana dashboard — treat that as the live truth.
Unrented pool​
Distributed across unrented nodes of eligible GPU models. The eligible models, the per-(model, gpu_count) USD/hr prices, and the per-bucket supply caps all change over time as Lium tunes the validator's incentive parameters — so use the rewards calculator rather than memorizing a list. See Rewards calculator for a walkthrough.
Eligibility is four things: your GPU is not currently rented, it is not running your own Default Job (running your own Default Job forfeits the unrented incentive for that node), its base model has a positive bucket cap (a per-model limit on how many unrented GPUs can earn from this pool), and your validator-assigned score is > 0.
Burn pool (ordinary providers do not earn from this pool)
The residual: burn share = total burn ceiling − unrented share. Distributed equally across designated burner UIDs.
Sysbox is required​
Sysbox is a hard precondition. Without sysbox-runc running on your node, your sysbox_multiplier is 0 and you earn nothing — from any pool. The legacy partial penalty (a 0.8× multiplier for non-sysbox rented nodes) only applied to rentals created before the cutoff at 2026-04-03 12:00 UTC, which has now passed. See Sysbox setup.
Discord is required for extra incentives​
Providers must keep Discord connected in the Provider Portal to remain eligible for extra subnet incentives. Nodes from providers without connected Discord are treated like spot nodes for incentives: they do not earn from the rented or unrented incentive pools until Discord is connected again.
This does not change rental fees paid by renters for active GPU usage. See Connect Discord.
What about my score? (math details)
The math depends on which pool your node is earning from. The formulas below assume sysbox-runc is running on your node (without it, every score is 0) and the provider account meets the current incentive eligibility requirements.
Rented pool (your GPU is currently rented):
mining_score = score × gpu_portion × gpu_count / total_gpu_count_of_model
incentive = mining_share × mining_score / total_mining_score
gpu_portion is the live per-model value on the Grafana dashboard. total_gpu_count_of_model is the total count of your GPU model across all rented nodes in the epoch — so your slice shrinks as more competitors of the same model come online.
Unrented pool (your GPU is unrented and its base model is eligible):
effective_rate = hourly_rate × unrented_cap_multiplier
incentive = rental_share × gpu_count × effective_rate / total_rental_cost
unrented_cap_multiplier = min(unrented_count_in_bucket, max_cap) / unrented_count_in_bucket — cap dilution per (base_model, gpu_count_bucket). If your bucket already has more unrented GPUs than its cap, every node in it scales down proportionally.
How emissions arrive​
Subnet 51 emission lands as alpha tokens in the subnet pool on-chain. You don't receive alpha directly — the billing system tracks earnings off-chain and transfers them to your coldkey via a stake-transfer transaction once per day. See Getting Paid.
Where to monitor​
- Grafana — GPU model rate (live rented-pool portion per model)
- Lium rewards calculator (live unrented-pool USD/epoch per model)
- TAO Market Cap — Subnet 51
- Subnet Alpha — Lium
- TAO Stats — Subnets
On-chain weights update at the end of each tempo (~72 minutes). The Grafana dashboard updates continuously as the validator processes new rental-revenue messages.