HIP-9: Institute Last Out, First In Redelegations for Staking

TLDR:
-Current staking process is set up for First Out, First In when undelegating and redelegating One to stake with Validators.
-This creates delays if you undelegate One with the intent of removing them from the staking portal, and have undelegated multiple times over multiple epochs, but need to redelegate before the 7 epoch wait time is over.
-New proposal to reverse this, so last out is the first in for redelegation of One.

Example:
Current set up:

  1. Undelegate 10k One on epoch 625 with intent to wait the 7 epochs and use the One for farming.
  2. Undelegate 10k more One on epoch 627 with intent to restake with a different validator for any reason.
  3. Redelegate 10K one to a different Validator on epoch 628.
    Result: The system redelegates the 10k from epoch 625, leaving you with 6 epochs remaining to receive your 10K one instead of 4 epochs remaining.

Proposed Last Out / First In Example:

  1. Undelegate 10k One on epoch 625 with intent to wait the 7 epochs and use the One for farming.
  2. Undelegate 10k more One on epoch 627 with intent to restake with a different validator for any reason.
  3. Redelegate 10K one to a different Validator on epoch 628.
    Result: The system redelegates the 10k one from epoch 627, leaving you with 4 epochs remaining. Last Out / First In

This has been a problem for me multiple times. I think it is fair to allow people to redelegate the Last Out coins and preserve their undelegation 7 epoch wait timeline instead of starting over.

12 Likes

I think this a great idea. Good quality of life improvement!

1 Like

Need this feature, it will improve compounding gains :grinning:

I like the idea. And it doesn’t appear it would effect slashing.

I think this is an excellent idea and it should be implemented. I’m sure that it perfectly embodies the true purpose of every delegator that is undelegating a certain amount

Very good idea. To be implemented :ok_hand:

Interesting idea - and I totally get your use case.

In terms of avoiding “bad actors”, wouldn’t that allow someone to:

  1. Undelegate 100 million ONE on epoch 625 “with intent to wait 7 epochs”
  2. Undelegate 100 million more ONE on epoch 627 w/ 30 seconds remaining
  3. Redelegate 100 million 30 seconds later in a potentially malicious manner?

Playing devil’s advocate and trying to learn more. It may be that the proposal is totally fine. Just worried about potential stability and large amounts of money moving all over the place in small amounts of time for malicious reasons.

I think we should just go for the full monty and take the undelegation period back to 1 epoch. In the beginning it was only 1 epoch and it was awesome. Liquidity is King!

1 Like

Sounds great to me, I was not aware this had become an issue.

In your example, the system would redelegate the 100 million one from epoch 627 on epoch 628, preserving the epoch 625 undelegation timeline. That is the entire intent of this.