Emission

Storage Map v101 → v411

Emission amounts for neurons on a subnet .

Explore chain
Queried by: minersvalidatorsanalyticsdelegators

The Big Picture

Emission is the final payout - the TAO actually earned by each neuron. While Incentive and Dividends show proportional shares, Emission shows the actual token amounts. This is the bottom line that miners and validators care about - real earnings, not percentages.

Why This Matters

Forget percentages - how much TAO did you actually earn? Emission is the real number. This tells you exactly what each neuron received in the last distribution cycle.

Example Scenario

Query Emission(netuid=1, uid=47) returns 5000000000 (5 TAO in RAO). Your neuron earned 5 TAO in the last epoch. Multiply by epochs per day to estimate daily earnings.

Common Questions

How often do emissions update?
Every tempo (emission interval) for the subnet. Check Tempo(netuid) for the interval in blocks.
Is this cumulative or per-epoch?
This is the emission for the most recent epoch. For historical totals, you need to track over time or use an indexer.
Why is my emission lower than expected from my incentive?
Emission = incentive × subnet_emission_allocation × various factors. The subnet's total emission pool varies based on its performance.

Use Cases

  • Check how much TAO your neuron earned in the last epoch
  • Build emission tracking dashboards and leaderboards
  • Calculate ROI and compare neurons by earnings
  • Verify emission distribution is working correctly
  • Track historical earnings patterns

From Chain Metadata

MAP ( netuid ) --> emission

Purpose & Usage

Purpose

Track actual emissions received by each neuron.

Common Query Patterns

  • Query by netuid-uid for specific neuron
  • Iterate all neurons to get emission distribution
  • Compare emissions across neurons for analysis
Part of: Yuma ConsensusBlock EmissionEpoch ProcessingNeuron Pruning

Query Keys

#NameTypeDescription
1
netuid
u16 netuid (u16, hashed key component)

Stored Value

emission (Vec<u64>)

Relationships

Code Examples

import { createClient, Binary } from "polkadot-api";
import { getWsProvider } from "polkadot-api/ws";
import { sub } from "@polkadot-api/descriptors"; // generated by: npx papi add sub -w wss://entrypoint-finney.opentensor.ai:443

const client = createClient(getWsProvider("wss://entrypoint-finney.opentensor.ai:443"));
const api = client.getTypedApi(sub);

// Query Emission storage
const netuid = 1;

const result = await api.query.SubtensorModule.Emission.getValue(netuid);
console.log("Emission:", result);

On-Chain Activity

Write Frequency
●●●●○○ Medium 100K–1M est. writes

100K–1M estimated writes

#36 most written storage item

Write Source Calls + Hooks

Modified by both user extrinsics and runtime hooks

As of block 7,429,232

Version History

v101 block 1 Added
v120 block 315,568 Internal re-bind
v123 block 720,235 Internal re-bind
v128–v132 · runtime versions skipped on chain (never deployed)
v133 block 1,404,224 Internal re-bind
v136 block 1,756,781 Internal re-bind
v138 block 1,907,363 Internal re-bind
v140 block 1,929,216 Internal re-bind
v146 block 2,848,978 Internal re-bind
v149 block 3,014,339 Internal re-bind
v151 block 3,157,274 Internal re-bind
v154 block 3,308,611 Internal re-bind
v166–v194 · runtime versions skipped on chain (never deployed)
v195 block 3,791,350 Internal re-bind
v202 block 3,848,823 Internal re-bind
v207–v209 · runtime versions skipped on chain (never deployed)
v210 block 4,345,556 Internal re-bind
v213–v215 · runtime versions skipped on chain (never deployed)
v216 block 4,510,996 Internal re-bind
v235–v237 · runtime versions skipped on chain (never deployed)
v238 block 4,936,550 Internal re-bind
v278–v289 · runtime versions skipped on chain (never deployed)
v290 block 5,947,548 Internal re-bind
v293–v296 · runtime versions skipped on chain (never deployed)
v297 block 6,067,943 Internal re-bind
v307–v314 · runtime versions skipped on chain (never deployed)
v315 block 6,414,634 Internal re-bind
v327–v333 · runtime versions skipped on chain (never deployed)
v334 block 6,811,690 Internal re-bind Current

Runtime Info

View Source
Pallet
SubtensorModule
Storage Kind
Map
First Version
v101
Current Version
v411