• © Goverland Inc. 2026
  • v1.0.8
  • Privacy Policy
  • Terms of Use
BalancerBalancerby0x7019Be4E4eB74cA5F61224FeAf687d2b43998516Xeonus

[BIP-797] Wire Up V3 Protocol Fee Processing Permissions

Voting ended about 1 year agoSucceeded

TL;DR

Balancer's new v3 vault has its own mechanism of collecting fees. Helper contracts (ProtocolFeeSweeper and CowSwapFeeBurner) have been deployed and tested and are ready to start processing fees on all active chains. An offchain bot determines when and how to process exactly via an EOA. All these components require the necessary permissions in order to fulfill their role. A test run of this system was performed on Sepolia (see References below).

Technical Specifications

The protocol fee processing infrastructure on Balancer v3 consists of several smart contracts:

Protocol Fee Collector

This is the Balancer ‘native’ smart contract that actually withdraws the fees from the Balancer v3 vault, and is also where third parties would withdraw their fees.

Protocol Fee Sweeper

This smart contract has recently been deployed, and sweeps specific tokens from the collector to then process for the DAO. In order to be able to do so, it needs the permission to call ProtocolFeeCollector.withdrawProtocolFeesForToken(address,address,address).

The fee recipient of this sweeper is currently set to the Maxis’ omni-chain multisig. The fee recipient is automatically granted all other permissions needed to manage the sweeper (set target token, add/remove burners). However, eventually the actual sweeping will be performed automatically by an offchain bot, controlling the EOA 0x74E283B985EA76c55C8B48d6bD1067a418188424. This EOA should therefore also be granted the permission to call ProtocolFeeSweeper.sweepProtocolFeesForToken(address,address,uint256,uint256,address).

Cow Swap Fee Burner

This is a burner inspired by the fee burner approach by Curve. It ‘burns’ a token into a specified target token, in this case via CoW Swap orders. It has several permissions associated with it. First of all, burn(address,address,uint256,address,uint256,address,uint256) should be granted to the fee sweeper. The other following permissions are to manage orders, and should be granted to the Maxis’ multisig:

  • cancelOrder(address,address)
  • emergencyCancelOrder(address,address)
  • retryOrder(address,uint256,uint256)

All of the permissions mentioned above should be put in place on all four chains Balancer v3 is currently deployed on: Ethereum, Arbitrum One, Base and Gnosis.

Payloads

https://github.com/BalancerMaxis/multisig-ops/pull/1817

References

  • Action IDs for all Balancer deployments on Ethereum: https://github.com/balancer/balancer-deployments/blob/master/action-ids/mainnet/action-ids.json
  • Bot sweeping fees via the Fee Sweeper: https://sepolia.etherscan.io/tx/0x9cbeda58d663de78fb2b6202eb832a20849b034785a250ba50880538e14135f1
  • Burner order on CoW Swap: https://explorer.cow.fi/sepolia/orders/0x3b206a34c7e66ddf83c90a3c7975268b040b6ca243edfcb0568ef1f1b6a061dc3400aafa47c6dc0d8ffc2380d3665f701cd53ebc67ced4fb

Off-Chain Vote

Yes, let's do it
2.9M veBAL100%
No, this is not the way
0 veBAL0%
Abstain
0 veBAL0%
Quorum:145%
Download mobile app to vote

Discussion

Balancer[BIP-797] Wire Up V3 Protocol Fee Processing Permissions

Timeline

Mar 13, 2025Proposal created
Mar 13, 2025Proposal vote started
Mar 17, 2025Proposal vote ended
Nov 27, 2025Proposal updated