Penalty-free BNT staking re-allocation

Currently: To move BNT from one pool to another, I’d need to first un-stake it, then re-stake it, resulting in two transactions (gas). The act of un-staking it would reset the reward multiplier across all positions and pools. Not only that, but if the re-stake is within the first 100 days, it’d fail full IL coverage.

Proposal: Make an option to re-stake BNT into another pool in one transaction, with no reset penalty on reward multiplier. (It’s probable that code optimization would make this cost less than the two contract executions individually combined.) The “current coverage” for IL should carry over exactly as is.

Reasoning: Re-allocating BNT to another pool does not remove any liquidity from the system overall, so it shouldn’t be penalized. If there’s a concern for excessive pool-jumping, the solution would be to restrict such re-staking to once per 30/60/90 days.

Bonus: The 2-in-1 operation should allow a third optional operation to be included, which is to include the accumulated rewards when moving to the new BNT/TKN pool. This just further cuts down on unnecessary actions, waiting time, and gas.

6 Likes

Great idea! And to transfer BNT between pools you’ll no need vBNT =)

This would be incredibly useful. You got my vote

1 Like

Definitely voting for this. I believe this could make Bancor more appealing for yield aggregators like Yearn.

1 Like

I’m all for this, especially the staking of rewards, since many LPs are doing it anyway. We should do everything possible to prevent the TVL from declining, since there is a lot of good momentum right now. Like from capturing LINK transactions, for example. ETH gas is only going to get worse, let’s get ahead of this problem.