osmosis icon indicating copy to clipboard operation
osmosis copied to clipboard

Implement auto-staking of some percentage of LP pool-incentives

Open ValarDragon opened this issue 4 years ago • 2 comments

Due to high OSMO LP incentives, we should implement a feature where {X} % of LP incentives get automatically staked.

The structure of a first pass at this should be as follows in my opinion:

  • Make a governance parameter for what is the percentage of LP pool-incentives that get automatically staked. (Lets just make a default of 50%)
  • Make the bonding tx specify an optional validator address field, where all (if any) of your OSMO pool-incentives rewards will get staked to.
  • Update pool incentives to have X% of the rewards directly put into your account, and 1-X% get delegated to your validator of choice. (This will require some changes to the Distribute API to make this possible)
    • Unfortunately this is going to cause a lot of F1 overhead. We will need to benchmark how it is, and consider implementing some batched F1 logic. This is something I worked out the math of before, will rederive if benchmarks show its important.
  • If the validator address is unspecified (e.g. all existing bonds), have those funds put those OSMO into an unbonding day lockup.

Then in a future pass, we can:

  • update the optional validator address field to instead be a weighted list of validators
  • allow editing the validator address for an existing bond

ValarDragon avatar Jul 13 '21 07:07 ValarDragon

  • Make a governance parameter for what is the percentage of LP pool-incentives that get automatically staked. (Lets just make a default of 50%)

It shouldn't be done by address? For myself, to avoid too many actions, while I am busy for few weeks, I would like to just auto stake for all the rewards.

  • Make the bonding tx specify an optional validator address field, where all (if any) of your OSMO pool-incentives rewards will get staked to.

I think it will be enough than forcefully letting all the people to auto-restake.

  • If the validator address is unspecified (e.g. all existing bonds), have those funds put those OSMO into an unbonding day lockup.

It would make things complex I think

  • update the optional validator address field to instead be a weighted list of validators

Delegation to several validators would make a person's finance complex I guess.

  • allow editing the validator address for an existing bond

I will be good to add.

antstalepresh avatar Jul 14 '21 02:07 antstalepresh

The idea here is that the chain governance would be forcing this, similar to how curve works. Hence its not a percent chosen by address.

    If the validator address is unspecified (e.g. all existing bonds), have those funds put those OSMO into an unbonding day lockup.

It would make things complex I think

We have to do it unfortunately.

Delegation to several validators would make a person's finance complex I guess.

I don;t see why for this one, many folks already delegate to multiple validators, and wallets / UI's support it pretty well.

We just had a call and you brought up two other nice features we can re-asses adding on after the initial impl is done:

  • Allow converting a lock of OSMO for duration <= unbonding period to be staking
  • Allow a user to elect to auto-stake more than X%. (Seems quite complex to implement, especially as we need to speed things up though)

ValarDragon avatar Jul 14 '21 03:07 ValarDragon

This is issue is obsoleted for newer issues

ValarDragon avatar Feb 19 '24 17:02 ValarDragon