Authors: philjfry, solarcurve
Motivation
Recently Balancer has seen an influx of projects asking for gauge approvals, many of them with a relatively small market capitalization. The vast majority of Balancer’s revenue today is generated from a small handful of pools containing tokens with a relatively high market capitalization. There is a growing need to strike a balance between optimizing for revenue generation and being supportive of small cap or newer projects which might one day grow to become significant revenue generators themselves.
This “Gauge Framework v1” aims to deliver a simple and objective rating criteria that the Balancer community can use to filter all current and future gauges. There are two phases of analysis - first using a “weight” factor with a “market cap” factor to derive an “overall” factor. All gauges scoring below a certain threshold would proceed to the second phase which would apply a “revenue” factor, helping those small pools which are generating significant revenue reach the threshold. If a pool remains below the threshold after phase 2 it will undergo a mandatory migration to a new gauge with a 2% or 5% maximum cap on the emissions it can receive.
Phase 1
Weighting Factor
We’ll be borrowing the old weight factor from v1 liquidity mining. You can copy this spreadsheet and play around to see the results of various pool configurations.
Market cap Factor
Based on depth of pool assets and taking into consideration that assets weighting in the pool.
Each asset in the pool is analyzed individually, and the lowest score from the pool is taken into account.
token mcap factor = mcap (in USD millions) / % weighting
mcapFactor = square root (min(token mcap factor))
Source for market cap information is Coingecko.
Note: For the purposes of this calculation any asset that can be freely minted is assumed to have the market cap of whatever asset is used to mint it. auraBAL is minted with BAL, graviAURA is minted with AURA, maticX is minted with MATIC, etc.
Overall Factor
mcapFactor^weightFactor = overall factor
The proposed threshold for an uncapped gauge is an overall factor of 5 or higher.
Sample Calculation
Aura/WETH 50/50
Weighting Factor: 1
Aura mcap factor: $28M market cap / 0.5 weighting = 57
WETH mcap factor: $809B mcap / 0.5 weighting = 1,619
Lowest mcap factor: square root(57) = 7.53
Overall factor: 7.53^1 = 7.53
Phase 2
Revenue Factor
An average of the percentage of total revenue a pool contributed during the most recent two protocol fee distribution periods. This factor is bounded by 1 to 100 and is multiplied by the overall factor from Phase 1.
Total Revenue source is the core pools worksheet.
Pool revenue source is this dune dashboard.
Sample Calculations
Aura/WETH
July 11th → July 25th
Total Revenue = $489,308 * 2 = $978,616
Aura/WETH 50/50 Revenue: $24,060
Percentage of total: 2.45
July 25th → August 8th
Total Revenue = $686,997 * 2 = $1,373,994
Aura/WETH 50/50 Revenue: $34,504
Percentage of total: 2.51
Average of both periods percentage of total: 2.48
Overall factor of 7.53 * 2.48 = 18.67
Conclusion
You can find a mostly complete spreadsheet here that shows the relevant factors for each gauge Balancer has. The proposed threshold for imposing a 2% or 5% cap is a factor of 5, after the revenue factor is applied. This effectively means a 50/50 token/weth pool with token having a market cap of $12.5M would have a factor of 5 and be right on the cut-off line. All gauges below this threshold would migrate to a new gauge with a max_weight
modifier. Governance can adjust this in the future so if a gauge becomes a strong revenue generator or the market cap of tokens increases significantly there is no migration required to remove the cap.
What defines how a gauge moves between being capped and uncapped and vice versa? The crypto market can change rapidly as we all know. If a gauge crosses the threshold in either direction the community can put forth a proposal to adjust that gauge’s status and voters will decide if it is justified or not based on the data.
Most new gauges won’t have a revenue factor so they will only be assessed on the overall factor - any new gauge with less than a 5 would be introduced with a cap. As it earns a revenue factor if that pushes it above a 5 a proposal can be made to remove the cap.
A complete list of gauges which will undergo a migration to a capped gauge:
TEMPLE/DAI (Ethereum)
USDC/TEL/DFX (Polygon)
RBW/WETH (Polygon)
BADGER/wBTC (Ethereum)
NOTE/WETH (Ethereum)
DFX/WETH (Ethereum)
VSTA/WETH (Arbitrum)
TCR/DAI (Ethereum)
VITA/WETH 80/20 (Ethereum)
wBTC/DIGG/graviAURA (Ethereum)
WNCG/WETH (Ethereum)
NOTE/WETH 80/20 (Ethereum)
HAUS/WETH (Ethereum)
PAL/USDC (Ethereum)
FDT/WETH (Ethereum)
D2D/USDC (Ethereum)
D2D/BAL (Ethereum)
PICKLE/WETH (Arbitrum)
CRE8R/WETH (Arbitrum)
Specification
#1
If approved, the DAO Multisig 0x10A19e7eE7d7F8a52822f6817de8ea18204F2e4f
will initiate a transaction to the Authorizer 0xA331D84eC860Bf466b4CdCcFb4aC09a1B43F3aE6
calling grantRole
with the following arguments:
role: 0xaf9696666cd7f5e2ffb6abcf1a60f195cf8c7a99e7c63db98d14948fd4855f06
This corresponds with the role for calling addGaugeFactory
on the gaugeAdder v2
as seen here.
account: 0x10A19e7eE7d7F8a52822f6817de8ea18204F2e4f
This gives the DAO Multisig the ability to call the above function.
#2
The DAO Multisig 0x10A19e7eE7d7F8a52822f6817de8ea18204F2e4f
will initiate a transaction to the gaugeAdder 0x2fFB7B215Ae7F088eC2530C7aa8E1B24E398f26a
calling addGaugeFactory
with the following arguments:
factory: 0xf1665E19bc105BE4EDD3739F88315cC699cc5b65
This corresponds to the mainnet gauge factory v2
as seen here.
gaugeType: 2
This corresponds to the Ethereum gauge factory, which can be confirmed by calling gauge_type_names
with the argument of 2
on the gaugeController.
#3
The DAO Multisig 0x10A19e7eE7d7F8a52822f6817de8ea18204F2e4f
will initiate a transaction to the gaugeAdder 0x2fFB7B215Ae7F088eC2530C7aa8E1B24E398f26a
calling addGaugeFactory
with the following arguments:
factory: 0x1c99324EDC771c82A0DCCB780CC7DDA0045E50e7
This corresponds to the arbitrum root gauge factory v2
as seen here.
gaugeType: 4
This corresponds to the Arbitrum gauge factory, which can be confirmed by calling gauge_type_names
with the argument of 4
on the gaugeController.
#4
The DAO Multisig 0x10A19e7eE7d7F8a52822f6817de8ea18204F2e4f
will initiate a transaction to the gaugeAdder 0x2fFB7B215Ae7F088eC2530C7aa8E1B24E398f26a
calling addGaugeFactory
with the following arguments:
factory: 0x866D4B65694c66fbFD15Dd6fa933D0A6b3940A36
This corresponds to the optimism root gauge factory v2
as seen here.
gaugeType: 5
This corresponds to the Optimism gauge factory, which can be confirmed by calling gauge_type_names
with the argument of 5
on the gaugeController.
#5
The DAO Multisig 0x10A19e7eE7d7F8a52822f6817de8ea18204F2e4f
will initiate a transaction to the gaugeAdder 0x2fFB7B215Ae7F088eC2530C7aa8E1B24E398f26a
calling addGaugeFactory
with the following arguments:
factory: 0xa98Bce70c92aD2ef3288dbcd659bC0d6b62f8F13
This corresponds to the polygon root gauge factory v2
as seen here.
gaugeType: 3
This corresponds to the Polygon gauge factory, which can be confirmed by calling gauge_type_names
with the argument of 3
on the gaugeController.
#6
The DAO Multisig 0x10A19e7eE7d7F8a52822f6817de8ea18204F2e4f
will initiate a transaction to the Authorizer 0xA331D84eC860Bf466b4CdCcFb4aC09a1B43F3aE6
calling renounceRole
with the following arguments:
role: 0xaf9696666cd7f5e2ffb6abcf1a60f195cf8c7a99e7c63db98d14948fd4855f06
This corresponds with the role for calling addGaugeFactory
on the gaugeAdder
as seen here.
account: 0x10A19e7eE7d7F8a52822f6817de8ea18204F2e4f
This removes the DAO Multisig’s ability to call the above function.
Then to add the gauges to the voting list:
#7
The DAO Multisig 0x10A19e7eE7d7F8a52822f6817de8ea18204F2e4f
will initiate a transaction to the Authorizer 0xA331D84eC860Bf466b4CdCcFb4aC09a1B43F3aE6
calling grantRole
with the following arguments:
role: 0xf49d7ffb5922642adc9f29cfb52b2214e81e0b0e54e9cd1e9f70439f0011f368
This corresponds with the role for calling add_gauge
on the gaugeController
as seen here.
account: 0x10A19e7eE7d7F8a52822f6817de8ea18204F2e4f
This allows the DAO Multisig to directly add gauges to the controller.
#8
The DAO Multisig
0x10A19e7eE7d7F8a52822f6817de8ea18204F2e4f
will interact with theAuthorizerAdaptor
at0x8F42aDBbA1B16EaAE3BB5754915E0D06059aDd75
and callperformAction
with theGaugeController
at0xC128468b7Ce63eA702C1f104D55A2566b13D3ABD
for thetarget(address)
argument and using0x3a04f900
followed by each one of the gauge addresses listed below and their corresponding gauge types for thedata(bytes)
argument. Each gauge will be its own transaction, thus there will be a total of 19 transactions.
List of contracts
0xb0FB3e031224bd449974AB02cae369E81db58Fa6
0xb61014De55A7AB12e53C285d88706dca2A1B7625
0xa3E3B2C9C7A04894067F106938cA81e279bC3831
0x3F29e69955E5202759208DD0C5E0BA55ff934814
0x96d7e549eA1d810725e4Cd1f51ed6b4AE8496338
0x27Fd581E9D0b2690C2f808cd40f7fe667714b575
0xd863DA50435D9FCf75008f00e49fFd0722291d94
0xf46FD013Acc2c6988BB2f773bd879101eB5d4573
0xAde9C0054f051f5051c4751563C7364765Bf52f5
0xc2D343E2C9498E905F53C818B88eB8064B42D036
0xE5f24cD43f77fadF4dB33Dab44EB25774159AC66
0x47c56A900295df5224EC5e6751dC31eb900321D5
0x09AFEc27F5A6201617aAd014CeEa8deb572B0608
0x00Ab79a3bE3AacDD6f85C623f63222A07d3463DB
0xe2b680A8d02fbf48C7D9465398C4225d7b7A7f87
0x59E7DBfF74B2B76957E6a3f25cCEe40b2f3421D0
0x1249c510e066731FF14422500466A7102603da9e
0x231B05F3a92d578EFf772f2Ddf6DacFFB3609749
0x077794c30AFECcdF5ad2Abc0588E8CEE7197b71a
#9
The DAO Multisig 0x10A19e7eE7d7F8a52822f6817de8ea18204F2e4f
will initiate a transaction to the Authorizer 0xA331D84eC860Bf466b4CdCcFb4aC09a1B43F3aE6
calling renounceRole
with the following arguments:
role: 0xf49d7ffb5922642adc9f29cfb52b2214e81e0b0e54e9cd1e9f70439f0011f368
This corresponds with the role for calling add_gauge
on the gaugeController
as seen here.
account: 0x10A19e7eE7d7F8a52822f6817de8ea18204F2e4f
This removes the ability for the DAO Multisig to directly add gauges to the controller.
Transaction json for #7, 8, and 9
Transaction json
{"version":"1.0","chainId":"1","createdAt":1661868407382,"meta":{"name":"Transactions Batch","description":"","txBuilderVersion":"1.9.0","createdFromSafeAddress":"0x10A19e7eE7d7F8a52822f6817de8ea18204F2e4f","createdFromOwnerAddress":"","checksum":"0x948dc5b0b328579096c0c1ef4458efc048b725b93e64d186ae58db5ed2069247"},"transactions":[{"to":"0xA331D84eC860Bf466b4CdCcFb4aC09a1B43F3aE6","value":"0","data":null,"contractMethod":{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","payable":false},"contractInputsValues":{"role":"0xf49d7ffb5922642adc9f29cfb52b2214e81e0b0e54e9cd1e9f70439f0011f368","account":"0x10A19e7eE7d7F8a52822f6817de8ea18204F2e4f"}},{"to":"0x8F42aDBbA1B16EaAE3BB5754915E0D06059aDd75","value":"0","data":null,"contractMethod":{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"performAction","payable":true},"contractInputsValues":{"target":"0xC128468b7Ce63eA702C1f104D55A2566b13D3ABD","data":"0x3a04f900000000000000000000000000b0FB3e031224bd449974AB02cae369E81db58Fa60000000000000000000000000000000000000000000000000000000000000002"}},{"to":"0x8F42aDBbA1B16EaAE3BB5754915E0D06059aDd75","value":"0","data":null,"contractMethod":{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"performAction","payable":true},"contractInputsValues":{"target":"0xC128468b7Ce63eA702C1f104D55A2566b13D3ABD","data":"0x3a04f900000000000000000000000000b61014De55A7AB12e53C285d88706dca2A1B76250000000000000000000000000000000000000000000000000000000000000003"}},{"to":"0x8F42aDBbA1B16EaAE3BB5754915E0D06059aDd75","value":"0","data":null,"contractMethod":{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"performAction","payable":true},"contractInputsValues":{"target":"0xC128468b7Ce63eA702C1f104D55A2566b13D3ABD","data":"0x3a04f900000000000000000000000000a3E3B2C9C7A04894067F106938cA81e279bC38310000000000000000000000000000000000000000000000000000000000000003"}},{"to":"0x8F42aDBbA1B16EaAE3BB5754915E0D06059aDd75","value":"0","data":null,"contractMethod":{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"performAction","payable":true},"contractInputsValues":{"target":"0xC128468b7Ce63eA702C1f104D55A2566b13D3ABD","data":"0x3a04f9000000000000000000000000003F29e69955E5202759208DD0C5E0BA55ff9348140000000000000000000000000000000000000000000000000000000000000002"}},{"to":"0x8F42aDBbA1B16EaAE3BB5754915E0D06059aDd75","value":"0","data":null,"contractMethod":{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"performAction","payable":true},"contractInputsValues":{"target":"0xC128468b7Ce63eA702C1f104D55A2566b13D3ABD","data":"0x3a04f90000000000000000000000000096d7e549eA1d810725e4Cd1f51ed6b4AE84963380000000000000000000000000000000000000000000000000000000000000002"}},{"to":"0x8F42aDBbA1B16EaAE3BB5754915E0D06059aDd75","value":"0","data":null,"contractMethod":{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"performAction","payable":true},"contractInputsValues":{"target":"0xC128468b7Ce63eA702C1f104D55A2566b13D3ABD","data":"0x3a04f90000000000000000000000000027Fd581E9D0b2690C2f808cd40f7fe667714b5750000000000000000000000000000000000000000000000000000000000000002"}},{"to":"0x8F42aDBbA1B16EaAE3BB5754915E0D06059aDd75","value":"0","data":null,"contractMethod":{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"performAction","payable":true},"contractInputsValues":{"target":"0xC128468b7Ce63eA702C1f104D55A2566b13D3ABD","data":"0x3a04f900000000000000000000000000d863DA50435D9FCf75008f00e49fFd0722291d940000000000000000000000000000000000000000000000000000000000000004"}},{"to":"0x8F42aDBbA1B16EaAE3BB5754915E0D06059aDd75","value":"0","data":null,"contractMethod":{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"performAction","payable":true},"contractInputsValues":{"target":"0xC128468b7Ce63eA702C1f104D55A2566b13D3ABD","data":"0x3a04f900000000000000000000000000f46FD013Acc2c6988BB2f773bd879101eB5d45730000000000000000000000000000000000000000000000000000000000000002"}},{"to":"0x8F42aDBbA1B16EaAE3BB5754915E0D06059aDd75","value":"0","data":null,"contractMethod":{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"performAction","payable":true},"contractInputsValues":{"target":"0xC128468b7Ce63eA702C1f104D55A2566b13D3ABD","data":"0x3a04f900000000000000000000000000Ade9C0054f051f5051c4751563C7364765Bf52f50000000000000000000000000000000000000000000000000000000000000002"}},{"to":"0x8F42aDBbA1B16EaAE3BB5754915E0D06059aDd75","value":"0","data":null,"contractMethod":{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"performAction","payable":true},"contractInputsValues":{"target":"0xC128468b7Ce63eA702C1f104D55A2566b13D3ABD","data":"0x3a04f900000000000000000000000000c2D343E2C9498E905F53C818B88eB8064B42D0360000000000000000000000000000000000000000000000000000000000000002"}},{"to":"0x8F42aDBbA1B16EaAE3BB5754915E0D06059aDd75","value":"0","data":null,"contractMethod":{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"performAction","payable":true},"contractInputsValues":{"target":"0xC128468b7Ce63eA702C1f104D55A2566b13D3ABD","data":"0x3a04f900000000000000000000000000E5f24cD43f77fadF4dB33Dab44EB25774159AC660000000000000000000000000000000000000000000000000000000000000002"}},{"to":"0x8F42aDBbA1B16EaAE3BB5754915E0D06059aDd75","value":"0","data":null,"contractMethod":{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"performAction","payable":true},"contractInputsValues":{"target":"0xC128468b7Ce63eA702C1f104D55A2566b13D3ABD","data":"0x3a04f90000000000000000000000000047c56A900295df5224EC5e6751dC31eb900321D50000000000000000000000000000000000000000000000000000000000000002"}},{"to":"0x8F42aDBbA1B16EaAE3BB5754915E0D06059aDd75","value":"0","data":null,"contractMethod":{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"performAction","payable":true},"contractInputsValues":{"target":"0xC128468b7Ce63eA702C1f104D55A2566b13D3ABD","data":"0x3a04f90000000000000000000000000009AFEc27F5A6201617aAd014CeEa8deb572B06080000000000000000000000000000000000000000000000000000000000000002"}},{"to":"0x8F42aDBbA1B16EaAE3BB5754915E0D06059aDd75","value":"0","data":null,"contractMethod":{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"performAction","payable":true},"contractInputsValues":{"target":"0xC128468b7Ce63eA702C1f104D55A2566b13D3ABD","data":"0x3a04f90000000000000000000000000000Ab79a3bE3AacDD6f85C623f63222A07d3463DB0000000000000000000000000000000000000000000000000000000000000002"}},{"to":"0x8F42aDBbA1B16EaAE3BB5754915E0D06059aDd75","value":"0","data":null,"contractMethod":{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"performAction","payable":true},"contractInputsValues":{"target":"0xC128468b7Ce63eA702C1f104D55A2566b13D3ABD","data":"0x3a04f900000000000000000000000000e2b680A8d02fbf48C7D9465398C4225d7b7A7f870000000000000000000000000000000000000000000000000000000000000002"}},{"to":"0x8F42aDBbA1B16EaAE3BB5754915E0D06059aDd75","value":"0","data":null,"contractMethod":{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"performAction","payable":true},"contractInputsValues":{"target":"0xC128468b7Ce63eA702C1f104D55A2566b13D3ABD","data":"0x3a04f90000000000000000000000000059E7DBfF74B2B76957E6a3f25cCEe40b2f3421D00000000000000000000000000000000000000000000000000000000000000002"}},{"to":"0x8F42aDBbA1B16EaAE3BB5754915E0D06059aDd75","value":"0","data":null,"contractMethod":{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"performAction","payable":true},"contractInputsValues":{"target":"0xC128468b7Ce63eA702C1f104D55A2566b13D3ABD","data":"0x3a04f9000000000000000000000000001249c510e066731FF14422500466A7102603da9e0000000000000000000000000000000000000000000000000000000000000002"}},{"to":"0x8F42aDBbA1B16EaAE3BB5754915E0D06059aDd75","value":"0","data":null,"contractMethod":{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"performAction","payable":true},"contractInputsValues":{"target":"0xC128468b7Ce63eA702C1f104D55A2566b13D3ABD","data":"0x3a04f900000000000000000000000000231B05F3a92d578EFf772f2Ddf6DacFFB36097490000000000000000000000000000000000000000000000000000000000000004"}},{"to":"0x8F42aDBbA1B16EaAE3BB5754915E0D06059aDd75","value":"0","data":null,"contractMethod":{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"performAction","payable":true},"contractInputsValues":{"target":"0xC128468b7Ce63eA702C1f104D55A2566b13D3ABD","data":"0x3a04f900000000000000000000000000077794c30AFECcdF5ad2Abc0588E8CEE7197b71a0000000000000000000000000000000000000000000000000000000000000004"}},{"to":"0xA331D84eC860Bf466b4CdCcFb4aC09a1B43F3aE6","value":"0","data":null,"contractMethod":{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","payable":false},"contractInputsValues":{"role":"0xf49d7ffb5922642adc9f29cfb52b2214e81e0b0e54e9cd1e9f70439f0011f368","account":"0x10A19e7eE7d7F8a52822f6817de8ea18204F2e4f"}}]}
For those gauges which are migrating, the new capped gauges will be live for voting by September 8th. The old gauges will be killed on September 21st. This allows enough time for votes and bribes to be moved over to the new capped gauges.
On September 21st, the DAO Multisig 0x10A19e7eE7d7F8a52822f6817de8ea18204F2e4f
will interact with the AuthorizerAdaptor
at 0x8F42aDBbA1B16EaAE3BB5754915E0D06059aDd75
and call performAction
using 0xab8f0945
for the data(bytes)
argument and the following list of contracts for the target(address)
argument. Each contract will be its own transaction, thus there will be a total of 19 transactions.
List of gauge contracts
TEMPLE/DAI (Ethereum) → 0x7DfaDb8c3230890a81Dc9593110b63Bc088740d4
USDC/TEL/DFX (Polygon) → 0xEad3C3b6c829d54ad0a4c18762c567F728eF0535
RBW/WETH (Polygon) → 0xD13A839BB48d69A296a1fa6D615B6C39B170096B
BADGER/wBTC (Ethereum) → 0xAF50825B010Ae4839Ac444f6c12D44b96819739B
NOTE/WETH (Ethereum) → 0xC5f8B1de80145e3a74524a3d1a772a31eD2B50cc
DFX/WETH (Ethereum) → 0x7CDc9dC877b69328ca8b1Ff11ebfBe2a444Cf350
VSTA/WETH (Arbitrum) → 0x6cb1A77AB2e54d4560fda893E9c738ad770da0B0
TCR/DAI (Ethereum) → 0xE273d4aCC555A245a80cB494E9E0dE5cD18Ed530
VITA/WETH 80/20 (Ethereum) → 0xb154d9D7f6C5d618c08D276f94239c03CFBF4575
wBTC/DIGG/graviAURA (Ethereum) → 0x5204f813cF58a4722E481b3b1cDfBBa45088fE36
WNCG/WETH (Ethereum) → 0x86EC8Bd97622dc80B4a7346bc853760d99D14C7F
NOTE/WETH 80/20 (Ethereum) → 0x40AC67ea5bD1215D99244651CC71a03468bce6c0
HAUS/WETH (Ethereum) → 0xa57453737849A4029325dfAb3F6034656644E104
PAL/USDC (Ethereum) → 0xe3A3Ca91794a995fe0bB24060987e73931B15f3D
FDT/WETH (Ethereum) → 0xbD0DAe90cb4a0e08f1101929C2A01eB165045660
D2D/USDC (Ethereum) → 0x5A481455E62D5825429C8c416f3B8D2938755B64
D2D/BAL (Ethereum) → 0xc43d32BC349cea7e0fe829F53E26096c184756fa
PICKLE/WETH (Arbitrum) → 0x899F737750db562b88c1E412eE1902980D3a4844
CRE8R/WETH (Arbitrum) → 0xACFDA9Fd773C23c01f5d0CAE304CBEbE6b449677
If the framework is approved and the 5% cap option has the majority of votes, the following will happen:
The DAO Multisig 0x10A19e7eE7d7F8a52822f6817de8ea18204F2e4f
will initiate a transaction to the Authorizer 0xA331D84eC860Bf466b4CdCcFb4aC09a1B43F3aE6
calling grantRoles
with the following arguments:
roles: [0xae60dce27f51ce5815357b9f6b40f200557867f8222262a1646c005d09b7dfba,0xae60dce27f51ce5815357b9f6b40f200557867f8222262a1646c005d09b7dfba,0xae60dce27f51ce5815357b9f6b40f200557867f8222262a1646c005d09b7dfba]
These correspond to the roles for calling setRelativeWeightCap
on gauges with this function.
First one is for the mainnet gauge factory v2 per this.
Second one is for the arbitrum root gauge factory per this.
Third one is the polygon root gauge factory per this.
account: 0x10A19e7eE7d7F8a52822f6817de8ea18204F2e4f
This allows the DAO Multisig to call the above function.
The DAO Multisig 0x10A19e7eE7d7F8a52822f6817de8ea18204F2e4f
will then interact with the authorizer adaptor 0x8F42aDBbA1B16EaAE3BB5754915E0D06059aDd75
and call performAction
with the following:
data: 0x10d3eb0400000000000000000000000000000000000000000000000000b1a2bc2ec50000
target: each of the following gauge contracts (one tx per contract)
List of gauge contracts
0xb0FB3e031224bd449974AB02cae369E81db58Fa6
0xb61014De55A7AB12e53C285d88706dca2A1B7625
0xa3E3B2C9C7A04894067F106938cA81e279bC3831
0x3F29e69955E5202759208DD0C5E0BA55ff934814
0x96d7e549eA1d810725e4Cd1f51ed6b4AE8496338
0x27Fd581E9D0b2690C2f808cd40f7fe667714b575
0xd863DA50435D9FCf75008f00e49fFd0722291d94
0xf46FD013Acc2c6988BB2f773bd879101eB5d4573
0xAde9C0054f051f5051c4751563C7364765Bf52f5
0xc2D343E2C9498E905F53C818B88eB8064B42D036
0xE5f24cD43f77fadF4dB33Dab44EB25774159AC66
0x47c56A900295df5224EC5e6751dC31eb900321D5
0x09AFEc27F5A6201617aAd014CeEa8deb572B0608
0x00Ab79a3bE3AacDD6f85C623f63222A07d3463DB
0xe2b680A8d02fbf48C7D9465398C4225d7b7A7f87
0x59E7DBfF74B2B76957E6a3f25cCEe40b2f3421D0
0x1249c510e066731FF14422500466A7102603da9e
0x231B05F3a92d578EFf772f2Ddf6DacFFB3609749
0x077794c30AFECcdF5ad2Abc0588E8CEE7197b71a