[Proposal] Empower BalancerDAO to Add Approved Gauges to veBAL Voting

Introduction

The launch of veBAL has introduced the gauge voting system where veBAL lockers determine BAL emissions by voting for specific pool gauges. A flow has been created on the forum to facilitate approval of new gauges with several votes already passing in just the first three weeks. This proposal aims to streamline this process by delegating the power to add approved gauges to the voting list to the Balancer DAO.

It is important to make clear that no gauge will be added by BalancerDAO without going through the forum process for approving a new gauge and successfully completing a snapshot vote in favor.

Motivation

To alleviate the workload from the DAO Multisig, I am proposing to delegate the power to add approved gauges to this gnosis safe: 0xc38c5f97B34E175FFd35407fc91a937300E33860. This safe already has the power to add new gauges for token rewards other than BAL so it makes sense to keep all gauge activities in the same place. Signers include myself, Mike B, Andrea, Xeonus, Zekraken, Luuk, and Markus who are some of the longest serving and most reliable members of Balancer DAO.

This group of signers will be responsible for ensuring that only approved gauges and gauges which have been correctly set up are added to the voting list. In practice this means the following:

  • Ensuring that each forum proposal for a gauge gets adequate attention and that only pools with legitimate tokens are allowed to go for a vote (we don’t want to give BAL emissions to a pool with Uniswap LP tokens or an obvious scam token)
  • For L2 gauges, checking that the root gauge has been correctly set up
    • Checking that the root gauge’s recipient getRecipient() is the address of the streamer contract on L2
    • Checking that the L2 gauge contract comes from the L2 factory (factory.isGaugeFromFactory(streamer))
    • Checking that the L2 gauge’s reward_contract is the streamer
    • Checking that the recipient reward_reciever() is a gauge with the LP token matching the pool from the approved vote

For reference:

Specification

The DAO Multisig 0x10A19e7eE7d7F8a52822f6817de8ea18204F2e4f will initiate a transaction to the Authorizer 0xA331D84eC860Bf466b4CdCcFb4aC09a1B43F3aE6 calling the function grantRoles with the following arguments:

roles: [0x5dce9596402d216d8b1fa2b9f8e18b0dc1b5c81f96e0827c6cc83eba6e2205d4,0xeb223764963bceacbb06d72a3697801c2460ddf95b2ec410d2641d69249d466f,0x72c4c054ad03b4f5f0ba716c30d74c6f27fafb105c850cb59e2b6fec32a42f2f]

account: 0xc38c5f97B34E175FFd35407fc91a937300E33860

Immediately following a gauge approval vote that passed successfully, the signers of this multisig 0xc38c5f97B34E175FFd35407fc91a937300E33860 will perform the checks outlined above then initiate a transaction to the Gauge Adder 0xEd5ba579bB5D516263ff6E1C10fcAc1040075Fe2 calling the relevant function depending on the network to add the gauge to the voting list.

Let’s do it. This will help streamline the gauge onboarding process which is a positive for both our partners and Balancer.

https://snapshot.org/#/balancer.eth/proposal/0xafc1f94a4a4e3179f18b95fbd096a84b27ea84c66cbc0c21c88687309883c449