Decide on Gauge Unexpected Behavior

Introduction

On Monday afternoon, during a knowledge-sharing session between Balancer Labs’s engineers, we realized that the veCRV smart contracts that form the basis of the veBAL system operate differently from our initial expectations.

No user funds are at stake, nor is any immediate action from Liquidity Providers required. The veBAL contract also remains safe and will continue to allow current and future holders to vote on the allocation of weekly BAL emissions for Balancer pools.

Our initial understanding was that the gauge type weights (_get_type_weight) in the Gauge Controller contract would allow us to implement classes of gauges, such that the share of emissions directed to each class (a “gauge type”) would be controlled by Balancer governance (see the Gauge types section of the veBAL Tokenomics proposal[1]).

The intended outcome was for BAL emissions to be allocated as follows:

  • 10% to veBAL holders
  • 56% to Ethereum Pools
  • 7% to Arbitrum Pools
  • 17% to Polygon Pools
  • 10% to the Liquidity Mining Committee, for partnerships

veBAL holders would then vote on-chain on how to distribute the 56/17/7% allocations among Liquidity Pools in those networks.

In reality, such implementation is not possible in the original veCRV system. Implementing this would require substantially changing the system, reducing compatibility with apps built on top of Curve’s ecosystem - one of the key expected benefits outlined in the veBAL proposal.

What this means for the veBAL system as currently deployed is that:

  1. mainnet gauges have been minting ~100% of weekly emissions instead of 56%; and
  2. contrary to our original intent/expectations, no other gauges will be able to mint any significant amounts of BAL on April 14th.

We’ll be conducting a thorough post-mortem to identify what we could have done differently, and make changes to our internal processes so as to prevent this from happening again. In the meantime, the Balancer community must now make a decision.

Specification

This proposal provides two options below for how governance can proceed. In both options the LM committee is proposed to be eliminated as everyone showed support for this (even the LM committee itself).

Option 1: keep the system as it is

This means that through the on-chain gauge voting mechanism, veBAL holders have full control over the allocation of weekly BAL emissions. Gauges would be created so that veBAL holders would be able to direct incentives to themselves (that is, to all veBAL holders) or to pools on Polygon and Arbitrum, in addition to the existing gauges on Ethereum mainnet.

A 10% cap would be imposed on weekly emissions to veBAL holders, with any excess being sent to the Balancer DAO treasury.

Pros:

  • No redeployment or migration necessary: LPs wouldn’t have to take any action.
  • The system would become more similar to Curve’s, which has no weekly allocation to veCRV holders. Balancer would still have this options available, but the amount would be defined directly by veBAL voting (up to the 10% cap) instead of being fixed at 10% as initially proposed.

Cons / Risks:

  • The original fixed weight distribution to veBAL holders won’t be possible. It will still be possible to achieve this through veBAL votes, but the outcome would no longer be predictable. The veBAL gauge may get less than 10% of the votes, leading to fewer tokens being allocated to veBAL holders, or more than 10%, reducing the size of liquidity incentives for Pools (funding the DAO treasury in the process).

Option 2: deploy a new version of the gauge system

This is the closest we can get to a system that behaves as described in the veBAL proposal without significant changes to the veCRV system.

  1. The current BAL Minter contract would have its minting permission revoked.
  2. Three new BAL Minter contracts would be deployed, enforcing that 10% of emissions are allocated to veBAL holders, and 90% are controlled by veBAL holders through the on-chain gauge voting mechanism.
  3. A new GaugeController and a new GaugeFactory for mainnet pools would be deployed.
  4. The existing veBAL contract would have voting power over this new GaugeController: no migration is needed on the part of veBAL holders.

It would still not be possible to implement the 56/17/7% split between mainnet/Polygon/Arbitrum as outlined in the veBAL proposal. The distribution across the 3 networks (and any additional network Balancer may be deployed to in the future) will be fully defined by veBAL voting power (this is also true in option 1).

Pros:

  • The original fixed allocation to veBAL holders in the veBAL proposal would be achieved: veBAL holders would get 10% of weekly emissions.

Cons / Risks:

  • This will require a migration of staking positions. New gauges would be deployed on mainnet to replace the existing ones. Liquidity providers would be required to unstake from the current gauges and stake into the new ones in order to continue to receive incentives (as part of this proposal, the Balancer treasury would reimburse the gas costs of these operations).
    Liquidity providers that don’t migrate before a transition period finishes would not get BAL until they do so.
  • Current votes would be lost and veBAL holders would have to recast their votes to mainnet gauges (the impact of this could be low, assuming most would recast anyway when L2 gauges were to be released).
  • The gauge for the wstETH/WETH pool is also receiving LDO on top of BAL from the veBAL program. As LPs unstake from this gauge to stake in the new one, they would lose any potential LDO for the remainder of the week.

An airdrop of BAL through a Merkle Orchard (the legacy LM distribution system) would happen for those who did not claim their BAL from LM in the current system before the migration, along with a reimbursement for migration gas costs. LPs that migrate to the new gauges will be accounted for as if they had not unstaked from the current gauges.

Implementation

The governance multisig needs to call the authorizer[2] with the following inputs: authorizer.grantRole(0x0000000000000000000000000000000000000000000000000000000000000000, coordinator) , which means it will grant full admin powers to the coordinator smart contract.

Since the coordinator hasn’t been deployed yet, its address is not known. However, the Balancer community will be able to verify the coordinator address by that date on Balancer’s github in the deployment output folder[3]. This link will point to a json file with entry veBALGaugeFixCoordinator followed by the coordinator’s address on mainnet:
{ veBALGaugeFixCoordinator: 0xabced...., }

After applying the necessary changes voted, the coordinator will renounce all given permissions and will not be usable anymore.

Coordinator Actions

The actions to be performed by the coordinator depend on the option chosen by the community.

Option 1

The coordinator will mint the missing 98.6k BAL meant for veBAL holders, as well as Polygon and Arbitrum LPs. These tokens will be sent to the recipient contracts of the gauges, resulting in the same outcome as if the gauges had minted the tokens.

Then, the gauge type weights for all types will be set to the same value, making votes for all gauge types have the same relative weight. veBAL holders will need to vote for the veBAL gauge in order for it to receive tokens.

The coordinator will also set the gauge type weight for the Liquidity Mining Commmittee type to 0 and kill the gauge.

Option 2

The coordinator will mint the missing 98.6k BAL meant for veBAL holders, as well as Polygon and Arbitrum LPs. These tokens will be sent to the recipient contracts of the gauges, resulting in the same outcome as if the gauges had minted the tokens.

Additionally, it will mint all unminted BAL tokens that correspond to L1 LPs in order to airdrop them as part of the migration. Then, it will revoke minting permission from the current Balancer Minter contract, effectively disabling the Liquidity Mining program in its current configuration and preventing any further minting from the existing gauges.

With the old minter contract disabled, it will grant minting permissions to three new contracts: one that will always mint 10% of weekly emissions for veBAL holders, one that will always mint 10% of weekly emissions for the Liquidity Mining Committee (unless the community decides to not continue with this initiative), and one that will distribute the remaining percentage to liquidity gauges. A new GaugeController will be connected to this minter, meaning veBAL holders will need to recast their votes, and new liquidity gauges will in turn be connected to the GaugeController, meaning LPs will need to unstake from the old gauges and stake in the new one (this gas cost would be later reimbursed).

The coordinator will also set the gauge type weight for the Liquidity Mining Commmittee type to 0 and kill the gauge.

Keeping promises

Liquidity providers on Polygon and Arbitrum have been expecting to receive 24650 BAL and 10150 BAL per week for liquidity provided between April 4 and April 17. Similarly, veBAL holders have been expecting 14500 BAL per week starting on April 7.

Until this proposal has been discussed and voted on, those amounts would be honored. Governance would mint 98.6k BAL to be retroactively distributed to veBAL holders and liquidity providers on Polygon and Arbitrum, covering the period between April 4th and April 21st.

No minting would be required to cover the Liquidity Mining Committee’s share of emissions for the week between April 7 and April 13, as no commitments were made regarding distributions for that week. If needed, 14.5k BAL could be minted if there’s a need to allocate BAL through the committee for the week between April 14 and April 20, but given that a gauge migration is one of the possible outcomes of this proposal it would be best to avoid allocating additional reward tokens to the existing gauges.

References

[1] Introducing veBAL Tokenomics


EDIT: I swapped the LM percentages of Polygon and Arbritrum by accident, now they are correct.

EDIT 2: Added “Implementation” section. LM committee is now eliminated in both options.

14 Likes

If all things are equal time wise I’d suggest going with option 2. Option 1 allows for less than the intended amounts going towards their original allocation and also has implications that some users would need to vote for veBAL and the committee, hence burning that veBAL vote weight instead of using it for what they’d like to influence.

Thank you Fernando and the rest of the Balancer Labs team for acting quickly on this.

I personally am for option 1.

To start, I believe there are positive effects of getting rid of the 10% Liquidity Mining Committee allocation. It gives veBAL holders more emissions to direct and it means that if you want to get BAL emissions directed to your pool, there is only one means of doing so–by having your gauge voted for by veBAL lockers. It also increases voting power for veBAL lockers by letting veBAL lockers direct the 10% of emissions that was reserved for the liquidity mining committee.

I also don’t believe that the removal of the strict 10% emissions to veBAL holders will affect the long term incentives of locking veBAL. The value proposition of LP boosts, directing BAL emissions (and the bribes to be collecting from doing so), and the 75% of protocol fees that go directly to veBAL lockers is still strong. I will note that curve does not direct any emissions to vecrv holders and in my mind this was something to help people transition over from a system in which they were used to receiving BAL rewards for their bal/weth BPT.
Additionally, Tom made a proposal to distribute BAL earned from protocol fees directly to veBAL lockers [Proposal] Distribute protocol fees in BAL where appropriate Should this pass, veBAL lockers would still be getting a steady stream of BAL directly from the protocol fees earned.

I was never a fan of the hardcoded L2 emission amounts and I think it levels the playing field for all networks so that veBAL lockers can direct emissions to wherever they desire to, regardless of network. It also makes things easier should Balancer ever launch on another chain.

The team at Balancer Labs is one of the best teams in defi and this is a relatively minor issue in the grand scheme of things. I encourage community members to speak up and have their voices heard.

13 Likes

The biggest problem with Option 1 is the lack of a dedicated veBAL gauge. I imagine this might’ve been a big consideration for those who locked their BAL. I personally thought it made the case for BAL very strong. This guarantee is especially important because Balancer chose to make users lock BAL BPT and not just BAL. So, if BAL does well, then veBAL holders are constantly selling their BAL; this is more digestible if they’re guaranteed 10% of emissions that could offset the IL.

LMC gauge wasn’t a great idea to begin with. It continues the backdoor deals and favoritism; it also makes veBAL as a whole less effective since projects can fight over that allocation instead of buying BAL and locking it. Let LMC committee be handled through delegations, it won’t even need a gauge. If veBAL holders think the committee is to make better decision then, they can delegate voting power instead of voting to point emissions.

In the grand scheme of things, cons of 2 aren’t massive – people need to stake and vote again. Whereas cons of 1 is to reshape a promise made to those who already locked their BAL.
I’m an advocate of 2 but only having 2 gauges, one for veBAL and one for everything else – no LMC gauge.

8 Likes

All things considered neither option is too bad. I’m assuming a move from 1 to 2 is possible in the future but not vice versa?

If that is the case, I’d lean towards sticking with 1 for at least a couple months and seeing how it plays out.

WRT liquidity mining committee, it would be good to consider having a policy that those rewards are strictly for “public goods” such as ETH, wBTC, and boosted stable pools so projects need to acquire veBAL or some derivative exposure to get their share of the rewards. That is still a bit tricky, is stETH/ETH a public good? what about bb-a-usd and bb-f-usd?

Kudos to Balancer team for identifying this issue and responding with solutions on such a short timescale. These are extraordinarily complex systems.

7 Likes

I’m not sure I follow what you mean by ‘lack of a dedicated veBAL gauge’. Option 1 indeed involves the creation of such a gauge that would mint BAL for veBAL holders: the big difference between options 1 and 2 is that in option 1 veBAL holders need to vote how much BAL is allocated to them (up to the 10% cap, with excess going to the DAO), whereas in option 2 that value is fixed at 10%.

Roughly speaking migrating both from 1 to 2 or from 2 to 1 would involve a similarly sized migration, so I don’t see much of a difference in that regard.

However, the bigger the system gets (and it’s about to grow greatly with the addition of L2 gauges) the harder it’ll be to migrate, so its hard to imagine a potential future migration. On top of that, we’re wrapping up development on a timelock system that if enabled would enforce minimum delays for any such action, providing guarantees and committing to the stability of the gauge system, making these kind of changes slower.

1 Like

My opinion here lies with option 2 mainly due to those who locked their BPT with expectations of implications surrounding incentives who now are at the mercy of this change. I do view both of these options as upgrading our system, and long term better than what we planned on implementing. If possible the Liquidity Mining portion should be removed, it most likely will not be utilized regardless so perhaps a moot point. A hybrid which encompasses 90% BAL for all chains to be positioned by voters and 10% for veBAL holders I think would cover all the bases best here.

With the point of upgrading the system the previous proposal stated for the minter to point somewhere different a 1 year time delay would be required for the purpose of not putting lockers in this type of predicament. Lockers will need to decide between participating in BALbattles or receiving BAL, before this was a given duality. This circumstance is unprecedented, however maintaining our promises, as best we can, I think is paramount here.

Ultimately, I personally want to tip my hat to the teams at Balancer for being transparent, proactive, and handling this as best as it possibly can be done. I stand with what the community decides and will support BAL through the outcome. Look forward to more discussion on this.

4 Likes

Aren’t we currently pretty much at 1? Could be easier to wait in that case.

This is a good argument for evaluating 2 with more urgency. I’d bias towards whichever reduces the long term implementation complexity

2 Likes

Aren’t we currently pretty much at 1? Could be easier to wait in that case.

I think moving from 1 to 2 requires restaking. So, if we need to go to 2 now it’s much less of a deal than needing to go to 2 at a later point.

I’m not sure I follow what you mean by ‘lack of a dedicated veBAL gauge’.

I guess the word I’m missing is a gauge ‘type’? i.e. a guaranteed emission to the veBAL holders.

My points are:

  • Lack of that guarantee in option 1 is its biggest downside as it changes the economics of veBAL post hoc; after the users already locked their BAL but those who did so are still minority so, even if united couldn’t swing this vote one way.
  • The argument of riding 1 out ‘because we’re already here’ downplays the consequences of it. Staying at 1 should be a conscious decision not an absence of decision.
  • Lack of guaranteed emission at the disposal of LMC is not a big downside of 1 and in my opinion it’s an upside and should be removed from option 2 as well.
  • Joey’s suggestions of restricting LMC’s emissions on public goods is indeed an improvement but still prone to the same politics for the reasons he mentioned: liquidity in which stablecoin is needed? which version of staked ETH? which version of tokenized BTC? Yet, if the LMC emissions are to remain guaranteed via inclusion in 2, I do suggest that we impose a set of guidelines as suggested. These guidelines could be proposed by LMC and voted on separately.

Question for @nventuro and @Fernando, what’s the mechanism that enforces only 10% of emissions going to veBAL in option 1? How will this be imposed if we’re leaving things unchanged and the contracts are immutable?

Option 1 could have this funky backdoor possibility of veBAL holders pointing emissions to veBAL which then ends up in the Treasury which is then controlled by veBAL holders who are at least theoretically in charge of the Treasury.

5 Likes

That is why option 1 is called ‘keep the system as is’, yes. However, some changes need to be made (critically, changing the weights of the gauge types).

There’s an argument to be made against waiting however: with each passing week we’re missing BAL for veBAL holders and L2 gauges (since it’s going towards the L1 gauges).

Correct - moving to 2 after say L2 gauges are out would require also unstaking from those gauges, for example. And external projects adding their own tokens to gauges further complicates things (this is currently only true for the stETH gauge).

edit: I was wrong: the L2 gauges would not require unstaking as that staking happens in the L2s, but the L1 votes would need to be recast.

We’re still figuring out the best approach, but broadly speaking the funds would be either held or minted by a contract that sends any excess of the weekly 10% to the Treasury.

1 Like

I’d first start off by saying that in either case we should eliminate the LM committee (LMC) allocation which will be an added benefit for both options (more LM for voting). I think this decision is unanimous across the LM committee themselves. One of the reasons that the 10% for the LMC was devised was that we wanted to be sure that core pools, ones with major trading pairs, didn’t lose their liquidity from the jump. What we saw happen was quite the opposite, so I think we are comfortable with not having this allocation and letting the market fully decide. Another reason was to bootstrap new projects, but i think there are other solutions that I won’t get into here.

For an opinion about 1 or 2 I lean slightly towards 1. I’d like to hear from others how important the static 10% is to them because that is the core difference between the two (implementation aside).

I guess it comes down to if you want to set aside a certain percentage of your 100% voting power to the veBAL gauge and roll that forward every month, but you would lose out on that percentage for bribes. On the flip side, if nobody votes for veBAL there is another 10% to be allocated overall (add extra juice to the platform) so gains can be made elsewhere such as the potential to bring in additional TVL and increase protocol fees which you get 75% of. Mike B made a great point above, if Tom’s proposal gets passed veBAL lockers will get BAL distributed via protocol fees so if you were wanted to grow your veBAL position you’ll still have a way to do that.

I look forward to seeing additional comments centered around the static 10% distribution for lockers topic. I do hope that the final implementation is either 100% up for vote or 90% up for vote, 10% for lockers.

Option 1 could have this funky backdoor possibility of veBAL holders pointing emissions to veBAL which then ends up in the Treasury which is then controlled by veBAL holders who are at least theoretically in charge of the Treasury.

I thought about something like this too where you could see veBAL holders purposely taking the veBAL gauge to 20% because they know the extra 10% goes the the treasury and if the general rule was to have the treasury send the extra to veBAL holders you’d have a way to bypass the 10% limit. However if veBAL holders kept ramping up emissions to the veBAL gauge eventually liquidity would leave in other pools and veBAL holders would ultimately be harming themselves (BAL price goes down). I guess the question is would people realize that before it was too late.

4 Likes

veBal lockers initially expected to direct 80% of emissions, with 10% kickback and a 10% LMC. Now they control 100% of emissions, and they retain the option to send 10% of emissions to veBAL stakers.
Besides this and the LMC, the only real change will take place for LPs on Arbitrum and Polygon. Collectively they expected to earn a minimum of 7% and 17% of total emissions, and now they collectively may earn less, although that comes with the opportunity to earn even more.

There are benefits and drawbacks to each implementation, although one might argue that flexibility of total emissions %s between different chains is actually beneficial in the long run.

I will say that I was more willing to lock veBAL because of the 10% guarantee, however, I welcome the added control of being able to vote for that 10% or not. Ultimately, the point of the 10% for veBAL was to defray IL for lockers, yet since only around a third of veBAL is locked, this 10% emission goes to LPs and lockers. Eliminating the 10% for veBAL ultimately is a transfer of BAL from 80/20 LPs to veBAL holders, who theoretically are have a longer term outlook anyway.

All in all, the flexibility across chains (and the potential to vote in new gauges on new chains?), the elimination of the opaque LMC, and the switch of incentives from short term LPs to longer term lockers seems to push the balance in favor of 1.

5 Likes

Thanks Fernando - quick check though. Would it be feasible for the Treasury to lock for veBAL and vote for the BAL/ETH gauge to get the 10% BAL emissions? That way, we can continue as is (Option 1) and leave the rest of the voting to the veBAL holders.

2 Likes

Note that in both options there’s flexibility accross chains. The 56/17/7% split would not happen in either.

2 Likes

Thank you @Fernando and Balancer Labs for being transparent and acting quickly on proposing solutions on handling this.

Personally, I prefer Option 2 as keeping promise to veBAL holders is the first priority here, imo. The cons for guage voting controlling 100% LM over 3 chains is not really a big issue. We can see this as natural competition.

Even though LPs need to restake and voters need to re-vote, it’s worth to do so.

2 Likes

I’m an advocate of Option 2, but only having 2 gauges, one for veBAL and one for everything else – no LMC gauge.

4 Likes

thanks @Fernando,

I can say that the very early signs of how the various teams approach the LMC are not in line with the initial idea of how we wanted to allocate the 10% given to us (the LMC).

In general, there is an tendency to request LMC allocations and trying to avoid the buy and lock of veBAL (again, just early signs).
This trend, which can clearly be fixed by structuring a clear and unambiguous procedure could, in any case, bring some misunderstandings. I don’t think it’s a big issue, but I believe it’s important to make it public and maybe use this occasion to ratify BAL allocations.

For the rest I would be in favour of a hybrid system: 10% that goes to the veBAL holders (I would consider that people locked with this clear expectation, there is a “contract” to be honoured there imo) and the remainder (90%) distributed via the gauge system.

If that is not possible, then I would vote for option 1.

Thanks again to you, @nventuro and the rest of the team for the hard work.

6 Likes

For what it’s worth, I’d lean more for Option 1

The LMC allocation does not seem required anymore, the gauge system seems to have taken over smoothly. It’s important to not discourage projects to vote-lock their own veBAL.

I think leaving this as much as possible to free market is healthy, and creates new opportunities. For instance, new projects could request large veBAL holders to vote for them for a few cycles to help bootstrap their liquidity, this creates new partnership opportunities and is one more reason for DAOs to hold veBAL (that’s what happened for RocketPool & Tetranode’s CVX).

I also think the veBAL BAL allocation shouldn’t be capped to 10% and be left to free market. Reasoning for that is that maybe the opportunity cost of holding veBAL early is higher than 10% APR, and veBAL voters will give their gauge a higher weight (I don’t think so), but anyway over time, holding veBAL will be more and more valuable (price appreciation, protocol fees, bribes), and the APR will naturally decrease, because BAL are better allocated to drive value inside the ecosystem than diluting unlocked holders.

7 Likes

I personally am for option 1

Thanks for your suggestion @0xAnon! This is an interesting idea but it would require a lot of constant coordination and overhead on governance. To achieve the 10% the treasury would have to constantly adapt to different amounts of veBAL holders and ever changing gauge votes. Also, we would need a bunch of ETH to pair with the BAL in the treasury so we could lock it. For these reasons I think it’s not viable.

3 Likes