Queried by: validatorsdelegatorsdevelopersanalytics
The Big Picture
Validators can't charge below this rate. This prevents a race to bottom where validators undercut each other to zero, making validation unsustainable. Ensures all validators have minimum compensation for their work.
Why This Matters
Want to attract delegators with 0% take? You can't go that low. The minimum ensures validators are compensated and can sustain operations.
Example Scenario
Query MinDelegateTake() returns 500 (5%). All validators must charge at least 5% take. Setting lower will fail.
Common Questions
- Why have a minimum?
- Prevents unsustainable validator operations. Running a validator costs money - hardware, bandwidth, monitoring. Zero take would attract delegators but bankrupt validators.
- Does this hurt delegators?
- Slightly higher fees, but ensures validators remain operational. A collapsed validator benefits no one.
Use Cases
- Check minimum required take when becoming a delegate
- Build UI sliders with correct min bounds
- Understand validator compensation floors
- Research delegation market dynamics
- Analyze validator economics
From Chain Metadata
ITEM ( min_delegate_take )
Purpose & Usage
Purpose
Floor on delegate fees to prevent race to bottom - ensures validator sustainability.
Common Query Patterns
- Single value query
- Verify take rate is within bounds
- Build take rate pickers with correct limits
Notes
- Value is in basis points
Stored Value
min_delegate_take (u16)
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 MinDelegateTake storage (no keys - plain value)
const result = await api.query.SubtensorModule.MinDelegateTake.getValue();
console.log("MinDelegateTake:", result);Version History
v195 block 3,791,350 Added
v220–v232 · runtime versions skipped on chain (never deployed)
v233 block 4,920,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
- Plain
- First Version
- v195
- Current Version
- v411