[Proposal] Staking of BPT for Economic and Governance Benefits

Couldn’t you just claim your BAL and then unstake with a negligible penalty?

Curious to hear @bakamoto20’s thoughts here.

2 Likes

At that point, it doesn’t sound much like a locking mechanism to me? In terms of unclaimed BAL, isn’t BAL claimed each week? So you lose half a week’s rewards at the max?

I understand people’s concerns about not being able to unlock, but the whole point of introducing a locking mechanism is that it is difficult to unlock. So that during difficult periods, participants are encouraged to work within the community (rather than sell everything), and to facilitate alignment between LPs and BAL holders.

As far as I’m aware, Curve for example has no unlocking mechanism. So the “unlock early and forfeit half your BAL” is more flexible than their mechanism in that regard.

I don’t support the proposal on the basis proposed, I think it’s a lot of development effort for something that won’t actually achieve the objectives of facilitating alignment. To work, locked has to mean locked.

2 Likes

Agreed - I think the above point makes sense. Totally recognize the loophole here.

For one, the 7 day cooldown adds to the difficulty of unstaking. I think this a basic mechanism to disincentivize withdrawals/make users think twice about it.

Wonder if the penalty should shift to 100% of pending rewards makes more sense? Would be a small fee but this + a cooldown definitely makes it harder to unstake than no unlocking mechanism.

A 7 day cooldown is a minimal level of friction though, you can lock for the full 4 years, get your max boost which you enjoy for many months, see BAL price drop by X%, trigger the unlock and then sell all your BAL a few days later.

With the mechanism designed this way, I’m not sure how it helps to achieve the goals set out. An early unlock with something like a 90 day period where you forfeit all BAL rewards by comparison would serve as a deterrent.

I.e. at least someone that wants to break the lock early then has to consider if forfeiting that return on their BAL for so long, to only be able to sell at an unknown price 90 days down the road is worthwhile. It’s enough of a hurdle that it facilitates alignment better, I’d say. Perhaps that’s a good compromise between the 50% penalty / no unlocking mechanism vs. the 7 day forfeit.

1 Like

I’d be in favor of this. Just so we’re on the same page, you’re proposing a 90 day cooldown period with 100% penalty on rewards throughout the duration of the cooldown?

@StefanoBury_LongHash what do you think?

1 Like

Only kicker I’d add is that it should probably be 90 days or however many days are left to their scheduled unlock (whichever is smaller, so someone doesn’t end up locked beyond their unlock period). Other alternative is that if there’s less than 90 days until someone’s locking period is over, they just can’t do an early unlock.

I assume yall are talkin about forfeiting bal/weth LM rewards, since ppl can just send LP tokens from other pools to another address to avoid the reward penalty. bal/weth LM rewards likely to be lower than today by the time this passes. course 90 days of havin your money earn 0 is pretty painful but just wanted to clarify this point.

1 Like

My understanding was that at this stage we’re only locking BAL/WETH for a boost on BAL/WETH APY, not other pools. Locking in order to get a boost on other pools was then to be further thought out later?

I agree that it’s a bit weak as a single mechanism if the BAL/WETH BPT locking is for boosting on all pools. You’d probably need to deduct the last X weeks of boosted BAL earned from the other pools from their BAL/WETH BPT or something as well.

The other solution is to just eliminate the unlocking option entirely and just make staking BPT a one-way street (as we’ve seen with other protocols).

LP’s just need to be very conscious/committed to how long they’re staking for and their BPT will not be accessible until their unlock is finished. If you want to unlock, tough luck lol.

This would minimize a lot of the complexities here (and allow for boosted rewards across all pools) and may be the solution we should lean towards to get this over the finish line. Thoughts?

4 Likes

Yep, I think this will also mean that we’ll get a more varied usage of the locking mechanism, with people locking for various periods rather than just the maximum. I think introducing any early unlock mechanism is always going to create challenging dynamics, which only get more complicated when you are boosting not just the BAL/WETH pool.

1 Like

I too like the idea of no unlocking and making the locking a permanent decision at point in time. If you are uncomfortable with locking your BPT away for a longer period of time you shouldn’t get the same boost as someone that is. If you are someone that is likely to pull your token for liquidity reasons you will have that option to choose a smaller time frame. People should be given something where they can commit to the platform long term vs. having some people trying game the system (bakamoto’s points around BAL dropping x%).

1 Like

In the end the nature of DeFi is that if there is profit to be made, and some trader/traders see +EV, they’ll do it. A perfect example is Adamant had a 50% penalty on early withdrawals of rewards from their vault, but lots of people just accepted the haircut and dumped the Adamant anyway, as the rewards were still greater than they could get elsewhere and they didn’t have to speculate on Adamant that way.

So I don’t so much see it as preventing gaming of the system, but designing it to maximise alignment from the outset. In the end, if we allow an option, the option will be used in circumstances where it is profitable by some % of stakers.

Hey @0xLucas thanks a lot for putting forward some alternatives to the unlocking mechanism, and thanks to @gerg @bakamoto20 for thinking of the obvious that we missed out on.

I would like to echo the comments made by @zekraken which is that our proposal puts forward a mechanism that allows for staking in durations of monthly increments, which is very flexible. In the original draft proposal in the RFC discussion we did not have an unstaking/unlocking mechanism, and the majority of community members who participated in the discussion did not seem to have an issue with this.

Furthermore, I think if we introduce a cooling period, it seems like we need to debate how long should it be, what to do in cases in which the cooling period is longer than the remaining duration of the locking period, etc., which could really complicate things.

Lastly, we did a fair bit of benchmarking of other protocols’ staking features, and few of them have exit options. As mentioned above, Curve does not have an exit option, for example, and is one of the models widely used.

So, I would propose that we remove the exit option from the proposal so we can move forward. Thoughts?

7 Likes

Totally agree that having no early unlock would avoid so many complexities. For example, if we had a cooldown period than intuitively it would have to be proportional to the total length locked, because otherwise there would be a strong bias to just always lock for 4 years and get the most benefit. People would think “I would have to wait the same 90 days if I staked for 1 year anyways”.

And this is not to mention all the other second order effects that could arise from this (which I’m sure we haven’t anticipated or discussed here yet).

So yes, I’m in favor of us moving on without this early exit mechanism.

4 Likes

Thanks @Fernando and everyone else for your input. Let me quickly re-write the proposal without the exit clause below so we can move to Snapshot. Excited to take this forward!

Summary

LongHash Ventures proposes a program for BAL/WETH LP token (“BPT” throughout this proposal) holders to stake their BPT for different periods of time in order to get economic benefits, such as boosting their Liquidity Mining rewards, and governance benefits, such as having the ability to vote on proposals. This staking feature is beneficial for the Balancer protocol as it rewards BAL holders who take a long-term view through staking of their BPT, while still ensuring BAL is not sitting idly staked but within a BAL pool.

For the purpose of focusing on the staking and governance mechanisms, this document will only propose staking of BPT from the BAL/WETH pool. In the future, proposals can be made to include BPTs from other BAL pools. Additionally, this proposal will only propose staking on L1. Staking on L2s such as Polygon should be addressed in a separate proposal.

Background

LongHash Ventures is a Web 3 investment fund and accelerator actively collaborating with founders to navigate the crypto landscape in Asia and build their Web 3 model. In January 2021, we launched a DeFi-focused fund and invested in projects such as Balancer. We also invited Balancer to join our Asia DeFi Network initiative, as part of which we worked together with Balancer Labs over the course of 12 weeks through our venture building program to support them with the development of a decentralized governance model, liquidity mining for Balancer V2, and community building in China. We wrote this proposal as a follow on to the work we did on governance as a natural first step and enabler towards a decentralized governance model.

This proposal builds on the forum discussion “[RFC] Staking of BAL for Economic and Governance Benefits” that can be found here: [RFC] Staking of BAL for Economic and Governance Benefits - #12 by StefanoBury_LongHash for which we got very valuable feedback and input to help shape this proposal from DavisRamsey, Andrea81, bakamoto20, Greg, felix_macht, iyvy, delitzer, Coopahtroopa and 0xLucas from FireEyes DAO, and Fernando, whom we would like to thank for their contributions.

Governance token staking has been adopted by DeFi protocols, such as Uniswap and Curve. It is a way to provide an incentive mechanism for token holders to actively participate in the governance of the protocol. It is also beneficial for the protocol as it rewards BAL holders that take a long-term view, and incentivizes them to actively participate in the governance and future development of the protocol.

As the governance of Balancer begins to shift from Balancer Labs to a more decentralized model that is led by the community, staking of BPT from the BAL/WETH pool can act as a mechanism to incentivize token holders to actively participate in the governance of the protocol.

We have taken inspiration from the staking model of Curve, Idle Finance, and Pickle Finance for this proposal.

Proposal

We propose a staking program and mechanism for the BPT of the BAL/WETH pool to have economic and governance benefits, as part of a broader effort to formalize the decentralized governance framework that will govern the Balancer protocol.

Economic benefits of staking BPT

Boosting of BAL rewards for Liquidity Mining

In Balancer V2, Liquidity Providers can earn BAL tokens from the liquidity provided into specific pools eligible, based on their proportional share of liquidity of those pools.

Liquidity Providers could stake BPT from the BAL/WETH pool to boost their Liquidity Mining rewards, based on the period of time the tokens are staked for. For example, Liquidity Mining rewards could be boosted by X (multiplier) if BPT tokens are staked for Y (time period). Note that this staking mechanism does not change or impact the amount of weekly BAL allocated to the pool, but rather changes the proportion of the allocation of those BAL rewards to the LPs depending on their share of the pool and whether they have staked their BPT and the duration of staking.

Governance benefits of staking BPT

Voting on proposals

As Balancer embarks on a journey towards decentralization of how the protocol is run, a key enabler of this will be for the ability of BPT holders to vote on proposals. Staking of BPT would allow addresses that staked to vote on Balancer protocol governance proposals as long as the BPT remains staked/locked.

Features of BPT staking

BPT token holders would have the option to stake their BPT into a smart contract and lock it in for a period of between 1 month and up to 4 years, in monthly increments, e.g. 1 month, 2 months, …, and 48 months. The UI/UX would be intuitive for less experienced users, for example with a “slider” feature with monthly increments, from 1 month to 48 months, that can also show the LP what the rewards booster is for each lock up period.

In return, BPT token holders who stake their BPT receive vBPT, a token that enables them to claim economic and governance benefits outlined above. Those who stake BPT would receive vBPT on a 1:1 basis regardless of the locking period. The boost to liquidity mining rewards depending on the locking period is outlined in the table below:

BPT staking locking period Boost to liquidity mining rewards
1 month Up to 0.05x boost
2 months Up to 0.1x boost
1 year Up to 0.6x boost
2 years Up to 1.2x boost
3 years Up to 1.8x boost
4 years Up to 2.4x boost

Note that BPT holders who stake their BPT will not be able to withdraw BAL from the BAL/WETH pool for the staking period of BPT, e.g. if a BPT holder stakes BPT for 12 months, they will not be able to withdraw BAL or WETH from the BAL/WETH pool for 12 months.

The formula for rewards boosting would work, conceptually, as follows:

[LP’s share of pool] x [Multiplier] / [Sumproduct of LP’s share of pool and multiplier] = [Share of BAL rewards]

Simple example:

LP Share of pool Staking Duration Boost Boost x share Share of rewards
LP A 30% No N/A 1 0.3 17%
LP B 20% Yes 4 years 3.4 0.7 39%
LP C 50% Yes 1 year 1.6 0.8 46%

Conclusion

This proposal for a staking mechanism to give economic and governance benefits to BAL holders can be a benefit for Balancer on two fronts:

  • It provides a rewards mechanism for BAL holders who take the long-term view
  • It is a starting point for Balancer to shift to a decentralized governance model

We think it is best to start with the features outlined above for the staking mechanism. In the future, additional features or modifications / scope can be proposed and added to it, such as:

  • Staking BPT from BAL pools other than BAL/WETH
  • Distribution of protocol fees to vBPT holders
  • Vote boosting feature to provide additional voting power to BPT holders who stake for longer periods of time
  • Staking mechanism for L2s

Voting

Voting will be up on Snapshot shortly and will be open to all BAL and BPT token holders. We will have three options for the vote:

  1. Implement staking of BPT from BAL/WETH pool as articulated in this proposal
  2. Implement a different version of staking of BPT (go back to the drawing board)
  3. Do not implement staking of BPT
2 Likes

So what do you mean by this? that in the future other pools will be able to stake their BPT for boosting rewards ? Or other pools will be available for boosting by staking directly in BAL/WETH ?

Generally speaking about the proposal, I like this mechanism to stake BAL for 4 years.

1 Like

Yeah, this proposal is only about staking the BPT from the BAL/WETH pool and in the future other BAL pools’ BPT tokens can be staked.

I understand @DavisRamsey will be helping us to put this on Snapshot by Friday. Thanks a lot!

2 Likes

Let me give an update on where things are for this proposal.

First of all I’d like to say that this proposal has been discussed for a long time and is very well written, however it’s not detailed enough (nor do I think it could be) to be used as a technical specification of how everything will be implemented at the smart contract level.

Balancer Labs is extremely busy (with a small team) working on projects that we believe will improve our #1 goal of increasing volume and useful TVL on Balancer protocol. Working from scratch in this project of staking BPT to get veBPT is a major task that would mean delaying other important projects if this is done by Balancer Labs right now.

I have been talking to other projects that were also interested in a similar staking solution. Most of them just used Curve’s contracts, the others like us who want to do small changes are pretty much waiting for another team to implement a version in solidity (Curve’s is in vyper).

I see two practical options for how this proposal could be implemented:

  1. We just use Curve’s smart contracts: Even though Curve is a direct competitor to Balancer I think this is something we should consider given their contracts have been battle tested for a long time and have lots of integrations on top of them (like Convex and other farming protocols). Another advantage would be that if/when a protocol-level fee is activated on Balancer, this system would already be a way to direct these fees (stakers would get them like on Curve). A downside would be to have a mix of vyper and solidity code in our core smart contracts.

  2. We set up a grant/bounty for a third party team to implement this project from scratch. There would be other teams that probably would be interested in contributing, but we should not count on that. In this case we would need to work on a technical specification with clear/exact technical requirements, desired roadmap and how the grant would be disbursed over time.

This vote has been great to show that BAL token holders are massively in favor of this change, however it’s a hard-to-implement one.

Please let me know your thoughts!

5 Likes

Using Curve’s seems to make sense to me, although it’d be good to have feedback from more technically minded members of the community about implications of having vyper code within our core smart contracts. I don’t really have much of a sense of how much of a downside this is.