MinAllowedWeights

Storage Map v101 → v411

Minimum weights a validator must set.

Explore chain
Queried by: validatorsdeveloperssubnet owners

The Big Picture

Validators must evaluate a minimum number of neurons. This prevents validators from focusing on only a few favorites and ensures broader consensus participation. Sparse weight matrices would undermine the distributed evaluation system.

Why This Matters

Setting weights? You must weight at least this many neurons. Too few weights = rejected submission. Ensures validators actually evaluate the network.

Example Scenario

Query MinAllowedWeights(netuid=1) returns 100. Your set_weights call must include at least 100 UIDs. Setting weights on only 50 neurons will fail.

Common Questions

What if there aren't enough neurons?
If SubnetworkN < MinAllowedWeights, you weight all neurons. The minimum is capped by actual neuron count.
Can I weight UIDs with zero weight?
Typically yes - zero weight still counts toward the minimum. You're evaluating them as 'not worthy' rather than ignoring them.

Use Cases

  • Check minimum weights required before setting
  • Build weight validation in validator software
  • Understand consensus participation requirements
  • Debug weight rejection errors
  • Design subnet weight parameters

From Chain Metadata

MAP ( netuid ) --> min_allowed_weights

Purpose & Usage

Purpose

Prevent sparse weight matrices - validators must evaluate at least this many neurons.

Common Query Patterns

  • Query by netuid
  • Validate weight submissions
  • Plan weight-setting strategy

Query Keys

#NameTypeDescription
1
netuid
u16 netuid (u16, hashed key component)

Stored Value

min_allowed_weights (u16)

Relationships

Modified By

Related Events

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 MinAllowedWeights storage
const netuid = 1;

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

Version History

v101 block 1 Added
v123 block 720,235 Internal re-bind
v149 block 3,014,339 Internal re-bind
v166–v194 · runtime versions skipped on chain (never deployed)
v195 block 3,791,350 Internal re-bind
v278–v289 · runtime versions skipped on chain (never deployed)
v290 block 5,947,548 Internal re-bind Current

Runtime Info

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