ValidatorPermit

Storage Map v101 → current

Whether a neuron has validator permit .

Explore chain
Queried by: validatorsminersdelegatorsdevelopersanalytics

The Big Picture

Not everyone can be a validator. ValidatorPermit determines who can set weights and participate in consensus as a validator. Without a permit, you're a miner only - you receive weights but can't set them.

Why This Matters

Can this neuron validate? ValidatorPermit answers definitively. If false, they can't set weights and earn dividends. If true, they're a validator.

Example Scenario

Query ValidatorPermit(netuid=1, uid=5) returns true. UID 5 on subnet 1 can set weights and participate as a validator. Query for UID 47 returns false - they're a miner only.

Common Questions

How do you get a validator permit?
Based on stake. Top MaxAllowedValidators by stake on the subnet get permits. Permits are dynamic - gain enough stake and you get one, lose stake and you might lose it.
Can miners become validators?
Yes, if they accumulate enough stake to enter the top MaxAllowedValidators. The same neuron can transition between roles based on stake.
What if I have a permit but don't set weights?
You might lose dividends and could eventually lose your permit to more active validators. Permits come with responsibility.

Use Cases

  • Check if a neuron can act as validator
  • Verify validator status before delegating
  • Build validator-only listings
  • Debug weight-setting failures
  • Research validator distribution on subnet

Purpose & Usage

Purpose

Track validator authorization - only neurons with permits can set weights.

Common Query Patterns

  • Query by netuid-uid
  • Check validator eligibility
  • Build validator listings
Part of: Yuma Consensus

Query Keys

#NameTypeDescription
1
key1
u16 key1 (u16)

Stored Value

value (Vec<bool>)

Relationships

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 ValidatorPermit storage
const key1 = 0;

const result = await api.query
  [stringCamelCase("SubtensorModule")]
  [stringCamelCase("ValidatorPermit")](
  key1
);

console.log("ValidatorPermit:", result.toHuman());

On-Chain Activity

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

100K–1M estimated writes

#38 most written storage item

Write Source Calls + Hooks

Modified by both user extrinsics and runtime hooks

As of block 7,429,232

Runtime Info

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