This storage item was removed in v393

This storage item is no longer available in the current runtime. Existed from v101 to v393. Shown here for historical reference.

PruningScores

Storage Removed Map v101 → v411

REMOVED. Pruning scores for neurons.

Queried by: minersvalidatorsdevelopersanalytics

The Big Picture

Subnets have limited slots (MaxAllowedUids). When full, new registrations must replace existing neurons. PruningScore determines who gets replaced - the lowest score gets pruned. This creates constant competition: perform or lose your slot. It's network Darwinism in action.

Why This Matters

Your registration isn't permanent. If your PruningScore drops too low, someone else can take your slot. This score tells you how safe you are - and who else might be vulnerable.

Example Scenario

Query PruningScores(netuid=1, uid=47) returns 0.15 (normalized). Compare to others on the subnet. If you're in the bottom 10%, you're at risk when new registrations arrive. Score of 0.001 = imminent danger.

Common Questions

What's a safe pruning score?
Relative to others on the subnet. Being in the top 50% is generally safe. Bottom 10% is danger zone.
How do I improve my pruning score?
Pruning score is derived from your performance metrics (incentive/dividends). Better performance = higher score = safer.
What about immunity period?
New neurons have an immunity period during which they can't be pruned. Check ImmunityPeriod and BlockAtRegistration to see if you're still protected.
Can I see who might be pruned?
Iterate PruningScores for all UIDs and sort ascending. The lowest scores are next to go.

Use Cases

  • Check if your neuron is at risk of being pruned
  • Monitor competition - who might lose their slot
  • Build alerts for low pruning scores
  • Analyze subnet health and competition dynamics
  • Plan registration timing based on weak slots

From Chain Metadata

MAP ( netuid ) --> pruning_scores

Purpose & Usage

Purpose

Track neurons at risk of deregistration - lower scores mean higher pruning risk.

Common Query Patterns

  • Query by netuid-uid for a specific neuron
  • Iterate all to find neurons at risk
  • Monitor score changes to predict pruning

Query Keys

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

Stored Value

pruning_scores (Vec<u16>)

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

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

Version History

v101 block 1 Added
v120 block 315,568 Internal re-bind
v123 block 720,235 Internal re-bind
v128–v132 · runtime versions skipped on chain (never deployed)
v133 block 1,404,224 Internal re-bind
v136 block 1,756,781 Internal re-bind
v138 block 1,907,363 Internal re-bind
v140 block 1,929,216 Internal re-bind
v146 block 2,848,978 Internal re-bind
v149 block 3,014,339 Internal re-bind
v151 block 3,157,274 Internal re-bind
v154 block 3,308,611 Internal re-bind
v166–v194 · runtime versions skipped on chain (never deployed)
v195 block 3,791,350 Internal re-bind
v202 block 3,848,823 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
v220–v232 · runtime versions skipped on chain (never deployed)
v233 block 4,920,350 Internal re-bind
v235–v237 · runtime versions skipped on chain (never deployed)
v238 block 4,936,550 Internal re-bind
v241–v243 · runtime versions skipped on chain (never deployed)
v244 block 4,999,897 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
v363–v364 · runtime versions skipped on chain (never deployed)
v365 block 7,135,419 Internal re-bind
v386–v390 · runtime versions skipped on chain (never deployed)
v391 block 7,782,857 Internal re-bind
v393 Removed

Runtime Info

View Source
Pallet
SubtensorModule
Storage Kind
Map
First Version
v101
Removed In
v393