Weights

Storage Map v101 → current

Weight matrix set by validators on a subnet .

Explore chain
Queried by: validatorsminersanalytics

The Big Picture

This is where validators record their judgments. Each validator sets weights on other neurons - higher weight means 'I think this neuron is doing good work.' These weights feed into Yuma Consensus to determine emissions. It's the core of Bittensor's incentive mechanism.

Why This Matters

Want to know why miner X is earning so much? Check what weights validators gave them. This storage is the raw input to consensus - understanding it reveals network dynamics.

Example Scenario

Query Weights(netuid=1, uid=5) returns [(12, 3500), (47, 2100), (8, 1800), ...]. Validator UID 5 gave weight 3500 to UID 12, 2100 to UID 47, etc. Higher values = more favorable scoring.

Common Questions

What are the weight values?
Weights are u16 values (0-65535) representing relative importance. They're normalized during consensus calculation.
Do all neurons set weights?
Only validators with ValidatorPermit can set weights. Miners typically don't set weights (or set empty weights).

Use Cases

  • Understand how a validator is scoring miners
  • Reconstruct the full weight matrix for analysis
  • Debug why certain neurons receive emissions
  • Build transparency tools showing validator behavior

Purpose & Usage

Purpose

Store validator judgments used for incentive calculation.

Common Query Patterns

  • Query weights set by a specific UID
  • Build weight matrix for consensus
Part of: Yuma ConsensusWeight ManagementCommit-Reveal Weights (CRV3)

Query Keys

#NameTypeDescription
1
key1
→ netuid
u16 Subnet ID
2
key2
→ uid
u16 Neuron UID setting weights

Stored Value

Weight vector (uid, weight) pairs

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

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

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

On-Chain Activity

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

>10M estimated writes

#1 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