MaxDelegateTake

Storage Plain v195 → current

Maximum allowed delegate take rate.

Explore chain
Queried by: validatorsdelegatorsdevelopersanalytics

The Big Picture

The protocol limits validator commissions. MaxDelegateTake prevents validators from charging unreasonable fees. This protects the delegation market - without caps, validators could charge 99% leaving almost nothing for delegators.

Why This Matters

Starting a validator? Your take rate can't exceed this maximum. Protects delegators from predatory fees and ensures competitive delegation market.

Example Scenario

Query MaxDelegateTake() returns 1800 (18%). No validator can charge more than 18% take. Attempting to set higher will fail.

Common Questions

Can this change?
It's a protocol parameter. Changes would require governance approval as it affects all validators and delegators.
Why 18% (or whatever the current value)?
Balances validator compensation with delegator returns. Low enough to attract delegators, high enough to compensate validator operations.

Use Cases

  • Check maximum allowed take when becoming a delegate
  • Build UI sliders with correct max bounds
  • Verify validator take rates are within protocol limits
  • Compare take rate headroom for validators
  • Research delegation economics

Purpose & Usage

Purpose

Cap on how much delegates can charge - protects delegators from excessive fees.

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

value (u16)

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 MaxDelegateTake storage (no keys - plain value)
const result = await api.query
  [stringCamelCase("SubtensorModule")]
  [stringCamelCase("MaxDelegateTake")]();
console.log("MaxDelegateTake:", result.toHuman());

Runtime Info

View Source
Pallet
SubtensorModule
Storage Kind
Plain
First Version
v195
Current Version
v393