MinDifficulty

Storage Map v101 → v411

Minimum POW difficulty .

Explore chain
Queried by: minersvalidatorsdevelopersanalytics

The Big Picture

Even during low demand, difficulty won't drop below MinDifficulty. This maintains a baseline computational barrier to prevent spam registration via trivially easy POW.

Why This Matters

What's the easiest POW can get? MinDifficulty. Even during quiet periods, you'll need to solve at least this level of computation.

Example Scenario

Query MinDifficulty(netuid=1) returns the difficulty floor. POW will never be easier than this, ensuring minimum computational commitment.

Common Questions

Why have a minimum?
Prevents spam. Without a floor, POW during quiet times would be trivially easy, enabling cheap mass registration attacks.
How low does difficulty actually go?
After sustained low demand, difficulty approaches MinDifficulty. Check current Difficulty vs MinDifficulty to see how close you are.

Use Cases

  • Check best-case POW requirements
  • Plan hardware during low-demand periods
  • Research registration economics
  • Design subnet difficulty parameters
  • Build difficulty displays with bounds

From Chain Metadata

MAP ( netuid ) --> MinDifficulty

Purpose & Usage

Purpose

Floor on difficulty - ensures minimum computational barrier.

Common Query Patterns

  • Query by netuid
  • Check easiest POW requirements
  • Plan POW registration

Query Keys

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

Stored Value

MinDifficulty (u64)

RAO -> TAO (/ 10^9)

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

const result = await api.query.SubtensorModule.MinDifficulty.getValue(netuid);
console.log("MinDifficulty:", 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