[RFC] Staking of BAL for Economic and Governance Benefits

Hi @DavisRamsey @Andrea81 @bakamoto20 @neo-renaissance @icinsight thanks a lot for your thoughtful feedback on this RFC and apologies for the late reaction due to medical leave.

Let me synthesize the key feedback provided and our proposed approach to take this forward. I will also update the original RFC post to reflect these changes. Looking forward to getting further input on this and then later discuss how can we take this forward.

KEY POINTS OF FEEDBACK

1. Lock up of BPT (BAL/WETH LP token) vs. BAL
Agreed on this one. To take this forward, I will update the RFC to reflect that the token that you can stake is the BAL/WETH BPT instead of the BAL. This will solve for ensuring that there is continued liquidity in the BAL pools. At the same time, we think choosing one pool, e.g. the BAL/WETH as the most “crypto-native” would work best (at least to begin with), rather than choosing more than one BAL/XXX pool, including stable coin pools (to not favor a particular stable coin). But happy to take further feedback on this. An option could be to keep this proposal to BAL/WETH and then in the future if other BAL/XXX pools are to be added they can be done so through a separate proposal

2. Locking period & mechanism
We understand the concerns around the proposed 4 year locking period. However, keep in mind this is the maximum period we are proposing. In practice and in the UI/UX, we would propose a “slider” option whereby the token holder can choose from the minimum period (e.g. 1 week) to the maximum period (e.g. 4 years) in weekly increments, to make it very flexible. Ultimately, this then becomes the token holder’s decision on how long to stake for. The key is to make the interface as simple and intuitive as possible, with some warning signs for those locking up above a certain period

3. Deployment on L2s
Our thinking on this one is let’s first solve for a staking mechanism on L1 through this proposal. Depending on how things go on L2, a separate proposal can be made to extend the staking mechanism and governance to L2s

4. Voting power
A couple of thoughts on this one:

(a) As @bakamoto20 pointed out, the locking period and the boost to voting power is designed precisely to align with those token holders, large or small that take the long-view. One scenario is a small token holder can lock up for 4 years while a large token holder can lock up for 4 weeks, but the boost to voting power to the small token holder would balance this out. Another scenario is in which both the small and large token holders lock up for 4 years, and as Bakamoto said the token holder would be incentivized to behave in a way that is beneficial for the protocol

(b) We can also include in the proposal the adoption of quadratic voting (e.g. adopted by Synthetix) which kills two birds with one stone: (i) it addresses concentration of power (ii) it addresses voter apathy (from small token holders)

5. Fee distribution
We had originally included this as one of the economic benefits of staking, but given protocol fees are still turned off for V2 and the proportion that gets distributed is a big topic in itself, we thought better to first decide on the staking mechanism as a pre-requisite to then have a separate proposal on protocol fee distribution

I hope the above is a good synthesis of the feedback and our response to each. Looking forward to further input. In parallel I will update the proposal and post it below later on. Thanks!

4 Likes

I think the slider (depending on the boost rate) is probably one of the better ideas. I worry that we have a situation like synthetix, where it is cheaper for people to aggregate all of their SNX together due to gas cost of claiming rewards. Is it possible to use some gas-less mechanism to claim fees, or to have them re-staked into the pool?

1 Like

Following up on the message above, just to make it easier to follow, I have updated the proposal to reflect some of the feedback, primarily the staking of BAL/WETH LPT vs. BAL.

I think one of the next major topics to address will be the rewards boosting formula. Additionally, one other element I thought I had earlier removed is the decaying over time of voting and rewards boosting, e.g. the closer it gets to the end of the staking period, the lower the boost. However, I think this both complicates the mechanics and is not necessarily fairer.


SUMMARY

We propose a program for BAL/WETH LP token (“BPT” throughout this doc) 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 and boosting their voting power. 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, additional 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

Governance token staking has been adopted by AMM 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 additional 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).

Protocol fee distribution

Once the protocol fees are turned on for V2, a portion of these fees could be allocated to those who have staked their BPT tokens. However, given protocol fees and their distribution is a major topic for discussion in itself, for the purpose of this proposal we will not consider this as a feature or economic benefit. Rather, this proposal should be a pre-requisite mechanism to a separate proposal addressing distribution of protocol fees.

GOVERNANCE BENEFITS OF STAKING BPT

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.

There are two governance benefits that BPT staking could give BPT holders:

  • The ability to vote on protocol proposals
  • Boosting of voter power based on the period of time the tokens are staked for

Voting 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.

Boosting of voter power

The voting power of the staked tokens can be boosted by giving higher voting power to token holders who stake their BPT tokens for longer.

FEATURES OF BPT STAKING

Staking BPT

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 should be fairly intuitive for less experienced users, potentially with a “slider” feature with monthly increments, from 1 month to 48 months.

In return, BPT token holders who stake their BPT, receive vBPT, a token that enables them to claim economic and governance benefits outlined below. The number of vBPT received is outlined in the table below, and the exchange rate between BPT and vBPT is directly proportional to the length of the locking period. This simplifies the calculation for voting power boost in the “Boosting voting power” section further below.

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.

Draft - For discussion

BPT staking locking period vBPT received
1 month 1 BPT : 1 vBPT
2 months 1 BPT : 2 vBPT
1 year 1 BPT : 12 vBPT
2 years 1 BPT : 24 vBPT
3 years 1 BPT : 36 vBPT
4 years 1 BPT : 48 vBPT

Boosting BAL rewards for Liquidity Mining

vBPT token holders would be able to boost their BAL rewards from liquidity mining up to 2.4x depending on how long they stake their BPT tokens for. The table below shows the BAL rewards boost they can earn for different locking periods:

Draft - For discussion

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

The actual formula for boosting rewards still needs to be worked out. Additional information on how Curve (the inspiration for this RfC) does rewards boosting can be found here: Boosting your CRV Rewards - Curve Finance and the formula can be found at the bottom of the page.

Voting on proposals

vBPT token holders have the power to vote on proposals once they have staked their BPT and received their vBPT. Voting power can be boosted depending on how long BPT token holders stake their tokens.

Boosting of voting power

vBPT token holders can boost their power to vote on proposals based on how long they have staked BPT for. Voting power is determined by the number of vBPT tokens a community member has. The table in the section “Staking BPT” illustrates how the longer you stake for, the higher vBPT you receive, the more voting power you have.

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
  • Staking mechanism for L2s
4 Likes

Do you have any thoughts for how we handle BAL rewards for the 80/20 pool, when staking is introduced? I see some complexity here in terms of how we balance things with this. E.g. do stakers earn BAL?

1 Like

Just wanted to say thanks so much for all the time and effort you put into this RFC Stefano! Really appreciate it. Also, I love the idea of lockups boosting voting power. I think it nicely aligns incentives between token holders and the protocol, which is key for the success of Balancer.

I’m also a fan of quadratic voting but wonder how you could get around sybil attacks (wallets splitting their tokens into many others). How does Synthetix deal with this @StefanoBury_LongHash? If some sort of identification/doxxing is necessary then I would probably think it’s not worth it.

1 Like

@bakamoto20 yes, stakers would earn BAL rewards, and it would get boosted depending on how long they stake for. I am working on drafting a formula for this this week. Conceptually you’d take the pot of BAL rewards for the pool and would then need to allocate it not just based on the proportion of liquidity provided, but then on (1) whether the LP has staked their BPT and (2) the duration for which they have staked. I will come back towards the end of the week with a proposed formula we can discuss.

@Fernando it’s our pleasure to work on this and we’re super excited to have the opportunity to take a hands-on approach to support the future success of Balancer. On the quadratic voting, in our recent Web 3 Governance Roundtable, what we heard from some of the experts such as Jordan from Synthetix and Arthur from DeFiance Capital was that while there is a risk of sybil attacks, they are actually very very minimal. Having said that, I wonder if we should park the discussion on quadratic voting to a separate proposal which could address other features of voting, such as delegation. WDYT?

1 Like

Hi @StefanoBury_LongHash, this is a great place to start as mentioned already and I’m sure the community is pretty much aligned with the proposal. But I would like to bring into the discussion @bakamoto20 and the idea that is gaining ground in giving the committee more and more powers in the location of BAL rewards. This initiative, which also generally sees me in agreement, sees a reduction in the distribution of BAL for the BAL/WETH 80/20 pool.

My proposal is therefore the following:
Define the BAL allocation for the BAL/WETH once and for all.
This allocation can only be changed if the vast majority of the committee agrees and if there is a clear evidence market conditions have changed. Ideally, a medium-long time horizon should still be respected to give potential LPs the certainty of knowing that their BAL distribution will not change during the vested period. At the moment BAL/WETH receives 25,000BAL (1 tier 1 + 2 tier 2) per week. I would like to have a temperature check on this allocation and if anyone is happy with the current state.

This connects to the scheme used to allocate the remaining rewards:
I realize that this forum specifically discusses the staking program, but I still notice a system that is not streamlined yet, creating potential confusion.

For me, therefore, we should create a specific allocation scheme for the BAL/WETH pool (taking as an example the current issue of 25K BAL) to give a clear idea of ​​what kind of rewards can be expected and then constitute sub-tiers for L1, L2s with the remaining 120k for limited time periods (ie 8 weeks)

This would create a system that is easy to understand, accessible to all and better aligned with market opportunities and specific conditions.

2 Likes

Thanks @StefanoBury_LongHash!

Even though I love the idea of staking and locking BPT for some time, this would require a very important technical upgrade of the staking contract that is already almost ready and being audited (@Greg please correct me if I’m wrong). My suggestion would be that we first change from the current off-chain calculations + merkle distribution to this multi-token staking contract (which will make the process a lot more decentralized and streamlined, allowing also for joint liquidity mining incentives with other projects) and wait a couple of months until things settle down. Then a next iteration of that contract would be to add lock up periods that give the boosts proposed.

Independently from that, I think we could discuss locking BAL for a boost in voting power similarly to what Curve does. This does get alignment of incentives which we need more of. Would you have a concrete proposal for this Stefano?

I would also not try quadratic voting until we see how it goes with the other projects doing it. IMO sybil attacks are so obvious and cheap to do that I can’t see how it could have very very minimal risks.

4 Likes

I worry we don’t have a whole lot to vote on that would be worth locking BAL for. Curve lets you vote on CRV allocations and you get admin fees, which are the primary reasons people lock as opposed to general DAO votes which most CRV lockers are not too concerned with imo

3 Likes

Thanks everyone - just catching up on this proposal - there are a lot of interesting ideas here!

As @fernando pointed out, we’ve adapted the SNX/CRV staking contracts to allow LPs to stake bpt and receive multiple rewards, including BAL - and it’s almost ready. These contracts will soon go to audit, and they will enable additional use cases, like reward reinvestment (reinvest your BAL rewards into the BAL-WETH pool in a single transaction, for example).

If a proposal like this one passes, then we’ll likely want to reaudit/redeploy that staking contract to split rewards between BAL-WETH BPT, and BAL-WETH vBPT (BPT locked in a vesting contract).

My personal opinion - balancer already rewards the BAL-WETH pool heavily, and it’s one of the largest pools on the platform, with a great APY (largely due to that 25k BAL distribution), and low slippage.
The primary way to encourage people to hold their BAL and participate in governance should be to build a great protocol that will continue to be an attractive place to provide liquidity and trade.

There’s a tradeoff here between incentivizing long term participation, UX simplicity and attracting LPs who prefer to keep their investments liquid. I am eager to see how the staking contract for liquidity mining changes platform dynamics and I think that letting it settle for a few months as Fer suggested will provide us with important insight to consider future changes.

4 Likes

Hi guys, I have been an LP and BAL holder since launch, but haven’t been active on the forum here so far. I’m very much in favor of the proposal and have recently shared an article on why long-term alignment is important with looking into Curve as well as Sovryn staking models. It might be an interesting read regarding the proposal https://twitter.com/felix_macht/status/1410668006716411911?s=20 One interesting aspect in Sovryn’s model is that they allow stakers to exit early against paying a penalty fee, which should lower the psychological barriers to exit in the first place amongst some other effects.

4 Likes

Thanks a lot for the feedback and also for the technical context @Fernando & @Greg

I also agree with @DavisRamsey & @felix_macht that (1) unless there’s some clear incentive to stake BAL, BAL holders won’t stake for the purpose of staking and (2) staking is really about aligning long-term incentives of BAL holders and the development of the protocol.

Maybe a couple of clarification questions and comments from my end:

(1) @Fernando are you suggesting we park both BAL rewards boosting and voting power boosting for a separate proposal? Or only voting boosting (e.g. keeping BAL rewards boosting in this proposal)?

(2) @Greg I think with regards to the boosting of BAL rewards, this doesn’t necessarily mean we need to increase the overall amount of BAL allocated / rewarded to the BAL-WETH pool, but rather within that pot of rewards, LPs that stake BPT would get a higher share vs. those that do not stake. So it’s a zero sum game. You would still have the same 25k BAL weekly rewards, but the allocation would change based on whether you stake and how long you stake for. The formula for this is what I am working on this week.

One question I have for @Greg is what will the staking contract you and team have been working on do? You mentioned it allows LPs to stake BPT to earn BAL rewards, but don’t they already earn BAL rewards from providing liquidity?

@StefanoBury_LongHash here’s the in-progress code for the staking contract - it is based on the synthetix/curve staking contracts

This will replace the current off-chain calculation for rewards (LPs will continue to earn BAL rewards for providing liquidity)

1 Like

Thanks for following up @StefanoBury_LongHash!

My suggestion would be to keep things simple and summarize this RFC discussion with a new proposal for BAL staking that is very similar to Curve’s successful model. Maybe add the early sale penalty like @felix_macht mentioned if that’s easy to implement technically (I guess it’s all open source so we would just copy the battle tested contracts and avoid reinventing the wheel).

Then we would have vBAL (or whatever we want to call the token) when BAL is staked. That would have a boost proportional to how long its staked/locked.

Another very interesting aspect of Curve’s model is the gauge where vBAL holders can signal which pool they want to get BAL Liquidity Mining rewards create a positive feedback loop and further incentive alignment to hold your liquidity in the pool you vote for in the gauge. Maybe we could have a portion of the 145k BAL being distributed according to that vBAL allocation (similar to Curve’s gauge) and the rest by Ballers as is being currently done.

Quite a few projects are adopting this model:

I believe we would highly benefit from it too.

Curious to hear more opinions on this.

3 Likes

I thought about this too. Only potential issue is gaming of the system somehow, like 98/2 DAI/WETH 10% fee pool or smthin and a whale votes to give big rewards to it. Maybe it’s less of a concern today than it was in the past though.

I’d like this idea of locking BAL a lot more if we implement the gauge voting - anyone can make a pool and vote using locked BAL for it to get rewards. I’m just a bit concerned there may be some edge cases where whales point a ton of BAL rewards to really “bad” pools.

I can imagine when we have investment smart pools, a community might start one and collectively lock BAL to vote rewards in for it. DAO Treasury could do the same thing. Tons of possibilities here that could be quite interesting imo.

3 Likes

My concern with it is that LPs will only think about what works for them as an LP, not necessarily what’s best for the wider protocol. I can imagine pools being designed to maximise BAL with minimum impermanent loss, etc.

With Curve it’s much simpler, as they pretty much only have stablepools. I think it’d take an awful lot of thought to work out how you could get to a place where BAL stakers decide what gets incentivised/not, and how we ensure that the result is aligned with what’s best for the protocol.

5 Likes

Great points. I think I had an idea that could address your concerns.

Instead of defining the amount of BAL a pool gets just using the vBAL voting power it has, why don’t we make a correction with the utilization ratio of the pool (defined by average_daily_volume/average_tvl). This would ensure that bad pools (e.g. controlled by a whale) would not get as much BAL as legit pools. What that formula would look like exactly would require some more detailed discussion but is certainly a solvable problem.

There are still ways to attack this, for example: a whale creates a pool with a risky token so that they have 100% of the liquidity, then they can wash trade as much as they want for free. These cases would be quite obvious to spot: we could simply entitle Ballers to decide on invalidating a pool for the gauge voting if anything like this happens.

The gauge has the big advantage of making the LM process more community driven and creating interesting incentives like what @solarcurve mentioned:

I can imagine when we have investment smart pools, a community might start one and collectively lock BAL to vote rewards in for it. DAO Treasury could do the same thing. Tons of possibilities here that could be quite interesting imo.

4 Likes

Great comments and feedback. Before moving on to summarizing the discussion in a Proposal, I want to clarify whether we are still on the track to create a mechanism to stake BPT from the BAL-WETH pool and obtain vBPT, or whether we are circling back to staking BAL? Initial concerns around the latter was taking BAL out of circulation and specifically out of the BAL-WETH pool.

I would propose going forward with a proposal for staking BPT for the BAL-WETH pool in exchange for vBPT that gives you governance voting power + boosting of BAL rewards (total pool rewards don’t change but who earns what within the pool changes based on how long they stake BPT for) with option to un-stake for a penalty to keep things simple, then additional proposals can be written that add additional features, such as vote boosting, quadratic voting, etc.

WDYT?

1 Like

We’ve spent a bit of time researching the rewards boost approach and formula from various other protocols and there’s a few decisions to be made around four design choices. Wanted to get your input on these prior to proceeding to proposal stage:

1. TOKEN VS. MULTIPLIER

There are two options to design the BAL rewards boost:

1. Token-based approach: With this approach, LPs would receive a number of staked tokens (i.e. vBPT) based on how long they stake for. For example (the numbers are purely illustrative): 1 vBPT if they stake for the min period of 1 week and 10 vBPT if they stake for the max period of 4 years, with a linear increase. The BAL rewards earned would be proportional to the number of vBPT the LP holds

2. Multiplier-based approach: With this approach, LPs would receive vBPT on a 1:1 basis to their BPTs. The rewards boosting would be, for example, 1.05x for the min period of 1 week and e.g. 3.5x for the max period of 4 years

Our perspective: The multiplier approach is more common and less confusing than having different ratio of vBPT tokens to BPT tokens, and the curve for vote boosting and rewards boosting is likely to be different so there isn’t a major need to link the two

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.1%
LP B 20% Yes 4 years 3.5 0.7 40.0%
LP C 50% Yes 1 year 1.5 0.75 42.9%

2. UPFRONT VS. FLEXIBLE LOCK UP AND BOOST

There are two options for the staking mechanism:

1. Upfront lock-up: This is what we have discussed so far and is basically the Curve mechanism, in which you choose the lock up period up front, and then you lock up your tokens. This could have the option to unstake, with a penalty

2. Flexible lock-up: With this model, there would be no upfront lock up. LPs can stake on an open-ended basis and the rewards boost would increase linearly over time (up to a point / limit, e.g. 4 years). In this model, let’s say there are two LPs, A and B. A and B begin staking at the same time, and their boost is the same at the beginning. A unstakes after 1 year, after which A stops receiving the rewards boost, while B keeps their BPT staked, and their rewards boost continues to increase (up to a limit)

Our perspective: The flexible lock-up addresses the points made earlier in the discussion about having an exit mechanism with a penalty, as well as the concerns about small token holders not willing to lock up for 4 years upfront. This option provides the most flexibility to LPs

3. REWARDS BOOST RANGE

What we have seen with other protocols, including Curve, Idle Finance, Pickle Finance, Badger DAO, and Cream Finance is from ~0.5x boost (i.e. multiplier of 1.05x) up to ~2.5-3x (i.e. multiplier of ~3.5-4x). If we are comfortable with this we will draft up a table for the Proposal as we did in the original post of this thread

4. Naming of staking token

There seems to be a bit of confusing on the naming of the staking token. Perhaps vBPT is a bit confusing, so maybe we just go back to calling it vBAL, i.e. those LPs who stake their BPT get vBAL

Looking forward to your comments, then will summarize and synthesize into a Proposal. Thanks!

2 Likes

Hello @StefanoBury_LongHash,

thanks for the great work you are doing!

TOKEN VS. MULTIPLIER
I very much prefer the approach that involves the Multiplier-based approach with a Flexible lock-up. It seems to me an innovative idea that at the same time encourages BPT staking.

Personally, I see the 4-year lockup period to be decided in advance as too restrictive and inflexible. In my humble opinion, it could drive away potential LPs.

REWARDS BOOST RANGE
No comments on this. Seems acceptable to me.

Naming of staking token
Regarding the naming, I would tend more towards vBPT since the staking is related to BPT and not BAL. If we call it vBAL the risk is to confuse the community even more.

1 Like