How Unstaking works on our Platform
What happens when you Unstake
When you decide to unstake and confirm the unstake, you will enter in the Unstake Queue. We parse the Unstake queue on a hourly basis and we check each unstake and see if we can pay out the unstake or not. The unstakes from the queue are being processed in a FIFO (First In First Out) model. This means that the first unstake from the queue needs to be payed out before we move to the next unstake.
Note: When you confirm the unstake and the unstake enters the Unstake Queue, you will get no rewards for that amount of HNT.
What is the Unstake Queue (UQ)
The Unstake Queue is a queueing mechanism that allows us to know the exact order the unstakes took place. We rely on this mechanism to process the unstakes in the same order they entered the queue. This is useful when the LP is below 0 and longer period of times may be needed in order to pay out the unstakes.
There are 4 statuses that a unstake can have while in the UQ. These are as follows:
- Queued: This is the initial status an unstake will take when it was added to the queue.
- Pending: Each hour, we parse the unstake queue and check the available liquidity in the LP. All unstakes that can be payed out will be marked as "pending".
- Completed: Every day at 1:00 UTC we parse all "pending" unstakes from the queue and we check again the LP. If this check passes, we pay out the pending unstakes and new payment transactions will be sent to the blockchain in order to be processed. Once the transactions are processed and added to the blockchain, we check the blockchain transactions and if they went through we mark the unstakes as completed.
- Declined: If some of the checks that we have in place will not pass or if the transaction we sent to the blockchain didn't go through, we mark the unstake as declined and we manually check all these transactions and provide a solution for each case.
Why don't I get any rewards while the unstake is in the Unstake Queue (UQ)
There are a couple of reasons why. The first one would be that we follow the same rules that Helium Inc are applying to the Validators. Once you unstake a validator on the Helium Network, your 10000 HNT is still locked for a period of 6 months and you don't get any rewards for that period of time. Because of this, we don't split the pool rewards with the users that unstaked.
Another reason you don't get rewards is that it would not be fair for the rest of the users in the pool that decided not to unstake. Basically you will get rewards away from those users.
Also, this is a way to disincentivize users to unstake and thus create havoc to the platform. This is the same reason why Helium Inc added such a long waiting period to unlock HNT that are locked on the Validators.
Note: Even if there are cases where we could offer rewards to users that unstaked and are in the UQ we decided not to do that as it is a really complicated implementation and it is really hard to automate. For example, if more and more people unstake and we will need to unstake a couple of validators, our pool will earn no rewards for those validators and it doesn't seem fair that people that lead to the unstake of the validators will get rewards in the mean time while the entire pool will suffer of lower rewards because of that.