OwnedHotkeys

Storage Map v156 → v411

List of hotkeys owned by a coldkey .

Explore chain
Queried by: walletsvalidatorsminersanalyticsdevelopers

The Big Picture

One coldkey can own many hotkeys. Each hotkey might be a different validator or miner on different subnets. OwnedHotkeys lets you enumerate all of them - essential for portfolio views and understanding the full scope of a coldkey's operations.

Why This Matters

How many validators do you run? Which hotkeys are yours? This gives you the complete list. Essential for any wallet or dashboard showing your operations.

Example Scenario

Query OwnedHotkeys(coldkey=your_address) returns [hotkey_A, hotkey_B, hotkey_C]. You own 3 hotkeys. Query each one's registrations to see which subnets you're active on.

Common Questions

Can I transfer hotkey ownership?
Hotkey ownership is typically permanent. The hotkey is bound to its creating coldkey. To 'transfer', you'd need to use coldkey swap which transfers everything.
How do I get more hotkeys?
Register new hotkeys. Each registration can use a new or existing hotkey. New hotkeys are automatically added to OwnedHotkeys.
Is there a limit?
No hard protocol limit, but practical limits exist - each hotkey requires management and registration costs.

Use Cases

  • Display all hotkeys in a wallet portfolio view
  • Enumerate validator/miner operations for a user
  • Build ownership graphs and analytics
  • Calculate total earnings across all hotkeys
  • Verify you own a hotkey before operations

From Chain Metadata

MAP ( cold ) --> Vec<hot> | Returns the vector of hotkeys controlled by this coldkey.

Purpose & Usage

Purpose

Track hotkey ownership for a wallet - enumerate all operations this coldkey controls.

Common Query Patterns

  • List all hotkeys for a coldkey
  • Iterate owner relationships
  • Count hotkeys per coldkey

Query Keys

#NameTypeDescription
1
cold
[u8; 32] [32] cold ([u8; 32], hashed key component)

Stored Value

Vec<hot> (Vec<AccountId>)

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 OwnedHotkeys storage
const cold = "0x0000000000000000000000000000000000000000000000000000000000000000";

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

On-Chain Activity

Write Frequency
●●●●●○ High 1M–10M est. writes

1M–10M estimated writes

#13 most written storage item

Write Source User Extrinsics

Modified via user-submitted extrinsics

As of block 7,429,232

Version History

v156 block 3,321,841 Added
v166–v194 · runtime versions skipped on chain (never deployed)
v195 block 3,791,350 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
v266–v272 · runtime versions skipped on chain (never deployed)
v273 block 5,659,032 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
v156
Current Version
v411