Stacks 2.1: Unlock tokens that aren't eligible for reward slots
In the current implementation, stackers will continue to see their tokens locked even if they don't qualify for a reward slot. This could happen on various occasions, for instance:
- user locks up a fraction of a reward slot, eg 200K STX
- min threshold increased over the course of the lockup
- stacked enough to commit but not enough to get a reward slot
It would be great if tokens were not locked up if they are not eligible for rewards
If you lock your tokens for, lets say, three cycles. You lock 100k yet only 70k was needed for a slot in the first cycle. If 30k unlocks and the thresshold goes up on the next cycle does that mean you will miss the next one because the excess was unlocked?
I think it would be more logical to set a maximum number of stx in a wallet that may be locked for x cycles (for example 200k stx). Then in the prep cycle after calculation of the requirement for a slot (say 80k) the commitment is set to the maximum number of slots that can be occupied (160k stx in the example).
I think it would be more logical to set a maximum number of stx in a wallet that may be locked for x cycles (for example 200k stx). Then in the prep cycle after calculation of the requirement for a slot (say 80k) the commitment is set to the maximum number of slots that can be occupied (160k stx in the example).
I think this is a great idea
This would require a hard fork to implement. Per SIP-011, this does not meet the criteria for a hard fork. Also, I think this might be illegal -- I think there was a reason Hiro engineers had to make it so people have to explicitly lock their tokens and keep them locked.
But, what if you did the following instead (which could be done right now)?
- Create a "futures" contract that Stacks your STX for you, but when you do so, it mints you a
stx-futurefungible token. The contract Stacks your STX and locks them up, but you get one of these tokens for each micro-STX you Stack. - When the Stacked STX unlock, you can send your
stx-futuretokens to the smart contract and redeem them for your STX.
This way, you can continue to trade your STX (in the form of a future) while they remain locked up. The bearer of the stx-future gets to redeem the STX, so you could sell them on a secondary market while they're locked up.
I went ahead and wrote up a prototype stx-future contract here: https://github.com/jcnelson/stx-future