BlockEmission

Storage Plain v101 → current

TAO emitted per block .

Explore chain
Queried by: validatorsminersanalyticsdevelopersstakers

The Big Picture

Every block mints new TAO (unless at cap). BlockEmission tells you how much. This determines the inflation rate and the total rewards available to the network. The emission rate may change over time following the halving schedule.

Why This Matters

How much TAO is being minted? BlockEmission × blocks per day = daily emission. This is the source of all staking and mining rewards - the pie everyone competes for.

Example Scenario

Query BlockEmission() returns 1000000000 (1 TAO in RAO per block). At ~43200 blocks/day, daily emission ≈ 43,200 TAO. This gets distributed across all subnets.

Common Questions

Does this change?
Yes, following the halving schedule. Emission rate decreases over time, similar to Bitcoin. Check protocol parameters for the schedule.
How is this distributed?
Block emissions go to subnets based on root network weights. Each subnet then distributes to its neurons based on consensus.
What happens at max supply?
When total issuance reaches the cap, block emission goes to zero. Network then relies on fees for rewards (if applicable).

Use Cases

  • Calculate expected rewards per epoch
  • Estimate APY for staking
  • Track emission schedule progress
  • Build reward calculators
  • Research tokenomics and inflation

Purpose & Usage

Purpose

Track current emission rate for reward calculations - the inflation rate.

Common Query Patterns

  • Query current block reward
  • Calculate daily/yearly emissions
  • Track emission rate changes
Part of: Block Emission

Stored Value

Value in RAO (÷10⁹ for TAO)

RAO -> TAO (/ 10^9)

Code Examples

import { ApiPromise, WsProvider } from "@polkadot/api";
import { stringCamelCase } from "@polkadot/util";

const provider = new WsProvider("wss://entrypoint-finney.opentensor.ai:443");
const api = await ApiPromise.create({ provider });

// Query BlockEmission storage (no keys - plain value)
const result = await api.query
  [stringCamelCase("SubtensorModule")]
  [stringCamelCase("BlockEmission")]();
console.log("BlockEmission:", result.toHuman());

Runtime Info

View Source
Pallet
SubtensorModule
Storage Kind
Plain
First Version
v101
Current Version
v393