Delegation
StakingMechanism allowing TAO holders to delegate stake to validators, who earn a configurable commission (take).
Delegation Flow
Delegation
- User stakes to a delegate hotkey
- Validator adjusts take percentage
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)
| Item | Type | Role |
|---|---|---|
| increase_take SubtensorModule | call | Increase delegate commission |
| decrease_take SubtensorModule | call | Decrease delegate commission |
Outputs (2)
| Item | Type | Role |
|---|---|---|
| DelegateAdded SubtensorModule | event | Emitted when delegate registered |
| Delegates SubtensorModule | storage | Delegate registry with take rates |
Source Files
pallets/subtensor/src/staking/helpers.rs pallets/subtensor/src/staking/increase_take.rs pallets/subtensor/src/staking/decrease_take.rs 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)