TotalHotkeyAlpha

Storage Map v233 → v411

Total alpha stake delegated to a hotkey .

Explore chain
Queried by: validatorsdelegatorsstakersanalytics

The Big Picture

Like TotalHotkeyStake but in alpha terms. When evaluating a validator on a specific subnet, TotalHotkeyAlpha shows their total backing in that subnet's native staking unit. This is the denominator for calculating delegator shares of emissions.

Why This Matters

How much alpha backs this validator? Your share of their emissions depends on (your alpha / TotalHotkeyAlpha). More alpha = more dilution but also indicates trust.

Example Scenario

Query TotalHotkeyAlpha(hotkey=validator_X) returns 50000000000000 (50T alpha). If you have 5T alpha staked to them, you own 10% of their alpha and receive ~10% of their emissions.

Common Questions

How does this differ from TotalHotkeyStake?
TotalHotkeyStake is in TAO across all subnets. TotalHotkeyAlpha is in alpha for the specific subnet - the unit that determines emission shares on that subnet.
Does higher alpha mean higher returns?
Higher TotalHotkeyAlpha means the validator has more backing (trusted) but your share is more diluted. Returns depend on your percentage share, not absolute amounts.

Use Cases

  • Check a validator's total alpha backing on a subnet
  • Compare validators by their alpha stake
  • Calculate your share of a validator's alpha
  • Build validator ranking by alpha
  • Track validator growth in subnet-specific terms

From Chain Metadata

DMAP ( hot, netuid ) --> alpha | Returns the total amount of alpha a hotkey owns.

Purpose & Usage

Purpose

Track aggregate alpha from all delegators - the validator's total backing in subnet terms.

Common Query Patterns

  • Query by hotkey
  • Rank validators by alpha backing
  • Calculate stake concentration
Part of: Yuma ConsensusStake Operations

Query Keys

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

Stored Value

alpha (u64)

RAO -> TAO (/ 10^9)

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

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

On-Chain Activity

Write Frequency
●●●●●● Ultra-High >10M est. writes

>10M estimated writes

#4 most written storage item

Write Source User Extrinsics

Modified via user-submitted extrinsics

As of block 7,429,232

Version History

v233 block 4,920,350 Added
v235–v237 · runtime versions skipped on chain (never deployed)
v238 block 4,936,550 Internal re-bind
v266–v272 · runtime versions skipped on chain (never deployed)
v273 block 5,659,032 Internal re-bind
v275–v275 · runtime versions skipped on chain (never deployed)
v276 block 5,781,672 Internal re-bind
v278–v289 · runtime versions skipped on chain (never deployed)
v290 block 5,947,548 Internal re-bind
v307–v314 · runtime versions skipped on chain (never deployed)
v315 block 6,414,634 Internal re-bind
v316–v319 · runtime versions skipped on chain (never deployed)
v320 block 6,523,566 Internal re-bind
v327–v333 · runtime versions skipped on chain (never deployed)
v334 block 6,811,690 Internal re-bind
v353–v360 · runtime versions skipped on chain (never deployed)
v361 block 7,063,679 Internal re-bind
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
v233
Current Version
v411