Decreasing STX stacked in pox-2

If you have a bunch of STX stacked in pox-2, can you take out a part of them? And if so, when? Is that during the last 100 blocks (burn period)?

E.g. let’s say our contract has 1M STX stacked and 100K needs to go out (resulting in 900K STX for next cycle), how would that work?

In other words… We use stack-stx now with 1 cycle and then just do extend or increase (forgot the exact method names), but what if a part of the stacked STX tokens need to leave? Can they just be taken out at some point in the cycle while keeping the rest stacked?

I don’t think it’s possible to decrease a stacked amount from a single stacker address in pox-2. You’d have to stack from multiple addresses.

For example:

A -> stacks 100k to PoX address 1
B -> stacks 100k to PoX address 1
C -> stacks 100k to PoX address 1 
... 

And then, if you want to decrease by 100k, you extend all but one of the lockups

If a non-quantized amount (e.g. 150k) needs to be unstacked, then you have to unstack 200k for the next cycle (unstacking 50k more than desired).

This is because pox-2 only added increase and extend functionality: ultimately, there wasn’t time for decrease in the pox-2 release.

1 Like

Thanks for the quick reply Aaron! Very helpful :slight_smile:

That is unfortunately not great for Arkadiko though, since this way we will lose yield (almost?) every cycle. We have 4 stacker contracts and I assume each cycle we will have at least one vault owner who wants to unstack their STX and withdraw the tokens. This way we will have to unstack at least one of the contracts, and potentially more if we divided the STX tokens wrong :confused:

IMHO a missed opportunity to get Stacks yield on the same level as other ecosystems who have truly continuous yield (through staking usually), where you can unstake all or just a part. I think we need a liquid staking solution (e.g. one that pays out in sBTC) which would reduce complexity a lot.