Delegation

Staking

Mechanism allowing TAO holders to delegate stake to validators, who earn a configurable commission (take).

Click items to navigate to their reference pages.

The Big Picture

Delegation lets TAO holders earn staking rewards without running a validator. You stake to a delegate (validator who accepts external stake), and they keep a commission (take) from the emissions your stake helps earn. The rest flows to you proportional to your share of the total delegated stake.

Why This Matters

Most TAO holders delegate rather than run their own validator. Choosing a delegate with good performance and reasonable take directly affects your earnings.

Example Scenario

Validator V has 10% take and 1000 TAO total delegated stake. Alice delegates 100 TAO (10% of total). The validator earns 10 Alpha in dividends. V keeps 1 Alpha (10% take). The remaining 9 Alpha is split: Alice gets 0.9 Alpha (10% of pool).

Common Questions

Can a delegate steal my TAO?
No. Delegates can only take their commission (take) from emissions. Your principal stake is always yours to unstake.
Why is take capped at 18%?
To protect delegators from excessive commission. Validators compete on take rate — lower take attracts more delegation.

Use Cases

  • Earning passive yield on TAO
  • Comparing validator performance and take rates
  • Building delegation dashboards
  • Running a validator accepting delegation

Delegation enables TAO holders to participate in staking without running validator infrastructure. Validators (delegates) set a "take" rate (stored as u16 where 65535 = 100%, default max ~18% via MaxDelegateTake) of emissions they keep as commission. Delegators receive the remaining emissions proportional to their stake.

Delegation happens automatically when someone stakes to a non-owner hotkey (via maybe_become_delegate internal function). Take changes have cooldown periods to prevent manipulation.

Triggers

  • User stakes to a delegate hotkey
  • Validator adjusts take percentage

Inputs (2)

ItemTypeRole
increase_take SubtensorModulecallIncrease delegate commission
decrease_take SubtensorModulecallDecrease delegate commission

Outputs (2)

ItemTypeRole
DelegateAdded SubtensorModuleeventEmitted when delegate registered
Delegates SubtensorModulestorageDelegate registry with take rates

Source Files

pallets/subtensor/src/staking/helpers.rs
delegate_hotkey()maybe_become_delegate()
pallets/subtensor/src/staking/increase_take.rs
do_increase_take()
pallets/subtensor/src/staking/decrease_take.rs
do_decrease_take()

Formulas

Delegate Take Calculation

The delegate keeps a percentage (take) of all emissions earned on delegated stake.

delegate_earnings = total_dividends * take_rate
delegator_pool = total_dividends * (1 - take_rate)
per_delegator = delegator_pool * (delegator_stake / total_delegated)

Related Workflows

become-delegate

Version History

v101 Initial delegation system
v200 Delegate take percentage made configurable
v290 Delegation earnings paid in Alpha tokens
v320 Take capped at 18%, cooldown periods added
v360 Take decrease effective immediately, increase requires cooldown