[BIP-XYZ] Onchain Wind-down of Protocol: Specs

The following specifications are for Ethereum, since that is the only chain that requires governance approval for these actions. On all other chains, the core team will perform the analogous actions from their multisig.

Pause Pools

V2

  • asap (DAO multisig): atomically grant itself the permissions, and then disable all official Balancer v2 pool factories that support disabling:
Deployment Contract Address
20220609-stable-pool-v2 StablePoolFactory 0x8df6EfEc5547e31B0eb7d1291B511FF8a2bf987c
20221207-aave-rebalanced-linear-pool-v3 AaveLinearPoolFactory 0x7d833FEF5BB92ddb578DA85fc0c35cD5Cc00Fb3e
20230315-silo-linear-pool SiloLinearPoolFactory 0xfd1c0e6f02f71842b6ffF7CdC7A017eE1Fd3CdAC
20230320-composable-stable-pool-v4 ComposableStablePoolFactory 0xfADa0f4547AB2de89D1304A668C39B3E09Aa7c76
  • asap (DAO multisig): grant pause via the AuthorizerAdaptorEntrypoint with where=0x0 for all official Balancer pools to EOA deployer 0x4BC8121278056BFCaC2BD14D455659224d6dDf48
  • 2026-10-30 (DAO multisig): atomically grant itself the permissions, and set the v2 protocol fee defaults to zero:
    • ProtocolFeePercentagesProvider.setFeeTypePercentage(0,0) (swap fee)
    • ProtocolFeePercentagesProvider.setFeeTypePercentage(2,0) (yield fee)
  • 2026-10-30 (permissionless): call updateProtocolFeePercentageCache() or updateCachedProtocolSwapFeePercentage() on all pools still active that accept fee logic from the fee provider: [BIP-XYZ] Onchain Wind-down of Protocol: Specs - Google Sheets
  • 2026-10-30 (EOA deployer): once official Balancer factories are disabled, we can create an exhaustive list of all official Balancer factory pools and pause those which are still in the pausable window

V3

  • asap (DAO multisig): atomically grant itself the permissions and disable all official Balancer v3 pool factories that support disabling:
Deployment Contract Address
20241205-v3-stable-pool StablePoolFactory 0xB9d01CA61b9C181dA1051bFDd28e1097e920AB14
20241205-v3-weighted-pool WeightedPoolFactory 0x201efd508c8DfE9DE1a13c2452863A78CB2a86Cc
20250120-v3-gyro-2clp Gyro2CLPPoolFactory 0xb96524227c4B5Ab908FC3d42005FE3B07abA40E9
20250121-v3-stable-surge StableSurgePoolFactory 0xD53F5d8d926fb2a0f7Be614B16e649B8aC102D83
20250124-v3-gyro-eclp GyroECLPPoolFactory 0xE9B0a3bc48178D7FE2F5453C8bc1415d73F966d0
20250324-v3-stable-pool-v2 StablePoolFactory 0xe42C2E153BB0A8899b59C73F5Ff941f9742F1197
20250404-v3-stable-surge-pool-factory-v2 StableSurgePoolFactory 0x355bD33F0033066BB3DE396a6d069be57353AD95
20251205-v3-fixed-price-lbp FixedPriceLBPoolFactory 0xeb1AA94421aEcFB1dc17dDB1068E4609c4bE8758
20260115-v3-weighted-pool-v2 WeightedPoolFactory 0x332694Ef46D880DF6Ea9593e04CB8ABEE5F81D99
20260116-v3-stable-pool-v3 StablePoolFactory 0x4eFcd8bcE8AC9b94bd76648e2c85bEf6c40F3228
20260117-v3-stable-surge-pool-factory-v3 StableSurgePoolFactory 0x187a05fb9e4234Dd310ae74215743560D1BAA6Ac
20260123-v3-gyro-2clp-v2 Gyro2CLPPoolFactory 0x8902F9C211f91c84Da2076f633873F8266dCECC6
20260126-v3-gyro-eclp-v2 GyroECLPPoolFactory 0x04d584195a96DFfc7F8B695aA3C9D3c1606b69d1
20260428-v3-reclamm-pool-v3 ReClammPoolFactory 0x3ccD78683efFffdDc1A16f5553C896ac6D3ab7FF
20260501-v3-liquidity-bootstrapping-pool-v4 LBPoolFactory 0x6642863979e66d995717A2B836A121700595069A
20250409-v3-reclamm-pool ReClammPoolFactory 0x312600bc7645E47a4926dc658827398AF070D431
20250409-v3-reclamm-pool ReClammPoolFactory 0x7fA49Df302a98223d98D115fc4FCD275576f6faA
20250204-v3-akron-weighted-pool AkronWeightedPoolFactory 0x83Fa05e5a37f9C10F4B729EC80F7D38290313596
20250404-v3-stable-surge-pool-factory-v2 StableSurgePoolFactory 0x92bad7860B85811E422eCaEAF38a672F8925fcfb
20250409-v3-reclamm-pool ReClammPoolFactory 0xCF7608f0136DB42FDEC021f755BD66406F29158c
20250419-v3-quantamm QuantAMMWeightedPoolFactory 0xD5c43063563f9448cE822789651662cA7DcD5773
  • asap (DAO multisig): grant pausePool permissions on the Vault with where=0x0 to EOA deployer 0x4BC8121278056BFCaC2BD14D455659224d6dDf48
  • 2026-10-30 (EOA deployer): if still within the pausable window, pause all pools belonging to the factories mentioned above and enable recovery mode, except for partners that asked for an extension (Parallel, Treehouse, Royco, Avant, Inverse, Rocket Pool, Blueberry, StakeWise, Neverland)
  • 2026-11-30 (EOA deployer): pause partner pools mentioned above and enable their recovery mode
  • 2026-11-30 (DAO multisig): atomically grant itself the permissions and pause the v3 vault:
    • Vault.pauseVault() and Vault.pauseVaultBuffers()
  • 2026-11-30 (DAO multisig): atomically grant itself the permissions and set global fees to zero:
    • ProtocolFeeController.setGlobalProtocolSwapFeePercentage(0) and ProtocolFeeController.setGlobalProtocolYieldFeePercentage(0)
  • 2026-11-30 (permissionless): call ProtocolFeeController.updateProtocolSwapFeePercentage(address pool) and ProtocolFeeController.updateProtocolYieldFeePercentage(address pool)

Note that the vault will unpause by itself 2029-05-12. All pools will unpause later that year, except for the ones that were created by the newest factories with the ~75 year pause window. This is unavoidable.

Revoke (Redundant) Permissions

  • 2026-12-01 (DAO multisig): revoke all permissions from the authorizer except for DEFAULT_ADMIN_ROLE
  • 2027-05-31: redemption round one starts
  • 2027-06-01 (DAO multisig): revoke admin role; DAO governance ends
1 Like