Per-Delegator Choice: Redelegate or Unstake (Testnet Development Approval)
TL;DR
Too much stake sits on inactive (jailed/tombstoned) validators earning 0% and weakening decentralization.
I’m proposing we develop and test on testnet an automatic failover system where every delegation must choose:
- Auto-Redelegate (spread to low-power active validators; smallest get most), or
- Auto-Unstake (start the normal 21-day unbond).
Each delegator also sets a Jail Threshold (e.g., 7–90 days) for when the action triggers.
Why now?
- Idle stake = 0% rewards and lower real security.
- Abandoned wallets can trap stake for months/years.
- This makes the set self-healing and nudges stake toward smaller, reliable validators.
What’s being proposed (for TESTNET first)
- Per-delegator settings (stored on-chain):
- Failover Action (required): Redelegate or Unstake
- Jail Threshold (required): N consecutive jailed days (between min/max set by governance)
- Trigger:
- Tombstone: immediate failover
- Jailed ≥ threshold: failover at next block
- Redelegate rule: pick K lowest-voting-power active validators that meet filters (uptime ≥ 99% over last 10k blocks; commission ≤ 10%; not recently slashed), allocate by inverse voting power (smallest receive proportionally more).
- Scope: This proposal authorizes design + testnet rollout only. Mainnet would require a separate upgrade vote after results.
Initial testnet parameters (tunable):
min_threshold_days = 7,max_threshold_days = 90auto_failover_k = 4auto_failover_min_uptime = 99%auto_failover_max_commission = 10%
Benefits
- No idle stake: every delegation either redelegates or unstakes after the chosen threshold.
- Decentralization: flow toward smaller active validators.
- User control: delegators choose both how and when.
- Security: higher effective active stake.
Safeguards & anti-churn
- Threshold floor/ceiling (e.g., 7–90 days) to avoid hyper-reactive churn.
- K kept small (e.g., 4) to limit state bloat.
- Per-block processing caps to handle very large validators safely.
- Event logs so explorers/wallets show exactly what happened and why.
What this is not
- Not an immediate mainnet change.
- Not custody of user funds by a contract.
- Not forcing everyone to redelegate—Unstake is equally available.
Open questions for feedback
- Preferred min/max for jail threshold? (e.g., 7–90 vs. 14–60)
- K destinations = 3, 4, or 5?
- Filters: uptime window (10k blocks OK?) and commission cap (10% OK?)
- Weighting: inverse voting power vs. simple cap-fill to median?
- Any exclusions (e.g., recent governance abuse) validators want considered?
Proposed timeline
- Week 0–2: Community feedback on parameters & design
- Week 3–6: Implement staking module changes, wallet/CLI hooks
- Week 7–10: Public testnet: run scenarios (tombstone, long jail, mass failover)
- Week 11–12: Publish report + recommended parameters
- After: Separate mainnet software upgrade proposal if community is satisfied
Ask
Please share:
- Whether you support testnet development of mandatory failover (choose Redelegate or Unstake)
- Your preferred parameters (threshold range, K, filters, weighting)
- Any red flags we should address before coding
If there’s broad support, I’ll open a PR draft and coordinate with wallet devs for a basic UI (dropdown for action + numeric threshold when staking).
Thanks for reading—looking forward to your feedback!