RootAlphaDividendsPerSubnet

Storage Map Event-driven v361 → v411

Root network alpha dividends per subnet at the last tempo firing.

Explore chain
Queried by: validatorsanalyticsdevelopers

The Big Picture

Root network validators (netuid 0) set weights on subnets and earn dividends from those subnets' performance. This tracks how much each root validator earned from each subnet - the economic link between metagovernance and subnet success.

Why This Matters

Root validators govern which subnets get emissions. In return, they earn dividends from subnet success. This creates economic incentive to weight good subnets.

Example Scenario

Query RootAlphaDividendsPerSubnet(netuid=1, hotkey=root_validator) shows how much this root validator earned from subnet 1's operations.

Common Questions

Why do root validators earn from subnets?
Root validators allocate emissions to subnets. They're rewarded for good allocation - weighting successful subnets means higher dividends.
Is this different from AlphaDividendsPerSubnet?
Yes. AlphaDividendsPerSubnet is for validators ON a subnet. This is for ROOT validators earning FROM a subnet through their governance role.

Use Cases

  • Check root validator earnings from specific subnets
  • Analyze how subnet performance affects root dividends
  • Build root network economics dashboards
  • Research metagovernance incentives
  • Track capital flows from subnets to root

From Chain Metadata

DMAP ( netuid, hotkey ) --> u64 | Last root alpha dividend this hotkey got on tempo.

Purpose & Usage

Purpose

Track root network dividend allocation - special dividends for root network validators. Same persist-then-overwrite semantics as AlphaDividendsPerSubnet.

Common Query Patterns

  • Query by (netuid, hotkey)
  • Calculate root validator earnings per subnet
  • Track root-level dividend flows

Query Keys

#NameTypeDescription
1
netuid
u16 netuid (u16, hashed key component)
2
hotkey
AccountId hotkey (AccountId, hashed key component) (hex -> SS58)

Stored Value

u64 (u64)

Decoding the value

AlphaBalance (u64)

Plain u64 alpha amount. Not a SafeFloat / FixedU128 wrapper.

value as bigint

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 RootAlphaDividendsPerSubnet storage
const netuid = 1;
const hotkey = "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY";

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

Version History

v361 block 7,063,679 Added
v386–v390 · runtime versions skipped on chain (never deployed)
v391 block 7,782,857 Internal re-bind
v394–v400 · runtime versions skipped on chain (never deployed)
v401 block 8,036,576 Internal re-bind Current

Runtime Info

View Source
Pallet
SubtensorModule
Storage Kind
Map
First Version
v361
Current Version
v411
Update Pattern
overwritten-at-event (subnet tempo fires for `netuid`)
Population
sparse-by-value (~36,122 entries)