Skip to content
Merged
1 change: 1 addition & 0 deletions .github/workflows/deployment-checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -104,5 +104,6 @@ jobs:
- uses: umbrelladocs/action-linkspector@v1
with:
fail_level: any
filter_mode: nofilter
env:
CI: true
20 changes: 19 additions & 1 deletion .linkspector.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,22 @@ useGitIgnore: true
aliveStatusCodes:
- 200
- 429


httpHeaders:
- url:
- https://medium.com/
headers:
User-Agent: 'Mozilla/5.0 (X11; Linux x86_64)'
Accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'
Accept-Language: 'en-US,en;q=0.5'

- url:
- https://www.npmjs.com/
headers:
User-Agent: 'Mozilla/5.0 (X11; Linux x86_64)'
Accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'
Accept-Language: 'en-US,en;q=0.5'

ignorePatterns:
- pattern: '^https://medium\.com/balancer-protocol/.*$'
- pattern: '^https://medium\.com/immunefi/.*$'
13 changes: 6 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

# Balancer V2 & V3 Deployments

[![NPM Package](https://img.shields.io/npm/v/@balancer-labs/v2-deployments.svg)](https://www.npmjs.org/package/@balancer-labs/v2-deployments)
[![NPM Package](https://img.shields.io/npm/v/@balancer-labs/v2-deployments.svg)](https://www.npmjs.com/package/@balancer-labs/v2-deployments)
[![GitHub Repository](https://img.shields.io/badge/github-deployments-lightgrey?logo=github)](https://github.com/balancer-labs/balancer-v2-monorepo/tree/master/pkg/deployments)

This package contains the addresses and ABIs of all Balancer V2 deployed contracts for Ethereum mainnet, Polygon, Arbitrum, Optimism, Gnosis, BSC and Avalanche, as well as various test networks. Each deployment consists of a deployment script (called 'task'), inputs (script configuration, such as dependencies), outputs (typically contract addresses), ABIs and bytecode files of related contracts.
Expand Down Expand Up @@ -39,13 +39,13 @@ Past deployments that are currently not in use or have been superseded can be ac

Returns an [Ethers](https://docs.ethers.io/v5/) contract object for a canonical deployment (e.g. the Vault, or a Pool factory).

_Note: requires using [Hardhat](https://hardhat.org/) with the [`hardhat-ethers`](https://hardhat.org/plugins/nomicfoundation-hardhat-ethers.html) plugin._
_Note: requires using [Hardhat](https://hardhat.org/) with the [`hardhat-ethers`](https://hardhat.org/hardhat-runner/plugins/nomicfoundation-hardhat-ethers) plugin._

- **async function getBalancerContractAt(taskID, contract, address)**

Returns an [Ethers](https://docs.ethers.io/v5/) contract object for a contract dynamically created at a known address (e.g. a Pool created from a factory).

_Note: requires using [Hardhat](https://hardhat.org/) with the [`hardhat-ethers`](https://hardhat.org/plugins/nomicfoundation-hardhat-ethers.html) plugin._
_Note: requires using [Hardhat](https://hardhat.org/) with the [`hardhat-ethers`](https://hardhat.org/hardhat-runner/plugins/nomicfoundation-hardhat-ethers) plugin._

- **function getBalancerContractAbi(taskID, contract)**

Expand Down Expand Up @@ -127,18 +127,15 @@ Returns an object with all contracts from a deployment and their addresses.
| V3 MEV Capture Hook | [`20250212-v3-mev-capture-hook`](./v3/tasks/20250212-v3-mev-capture-hook) |
| V3 Protocol Fee Controller V2 | [`20250214-v3-protocol-fee-controller-v2`](./v3/tasks/20250214-v3-protocol-fee-controller-v2) |
| V3 Aggregator Router | [`20250218-v3-aggregator-router`](./v3/tasks/20250218-v3-aggregator-router) |
| V3 Cow Swap Fee Burner | [`20250221-v3-cow-swap-fee-burner`](./v3/tasks/20250221-v3-cow-swap-fee-burner) |
| V3 Router V2 | [`20250307-v3-router-v2`](./v3/tasks/20250307-v3-router-v2) |
| V3 Vault Factory V2, and Vault contracts | [`20250321-v3-vault-factory-v2`](./v3/tasks/20250321-v3-vault-factory-v2) |
| V3 Stable Surge Hook (V2) | [`20250403-v3-stable-surge-hook-v2`](./v3/tasks/20250403-v3-stable-surge-hook-v2) |
| V3 Vault Explorer V2 | [`20250407-v3-vault-explorer-v2`](./v3/tasks/20250407-v3-vault-explorer-v2) |
| V3 Wrapped BPT Factory | [`20250418-v3-wrapped-bpt`](./v3/tasks/20250418-v3-wrapped-bpt) |
| V3 Pool Pause Helper | [`20250430-v3-pool-pause-helper`](./v3/tasks/20250430-v3-pool-pause-helper) |
| V3 Protocol Fee Helper | [`20250430-v3-protocol-fee-helper`](./v3/tasks/20250430-v3-protocol-fee-helper) |
| V3 Protocol Fee Percentages Provider | [`20250502-v3-fee-percentages-provider`](./v3/tasks/20250502-v3-fee-percentages-provider) |
| V3 Protocol Fee Sweeper (V2) | [`20250503-v3-protocol-fee-sweeper-v2`](./v3/tasks/20250503-v3-protocol-fee-sweeper-v2) |
| V3 Aggregator Batch Router | [`20250507-v3-aggregator-batch-router`](./v3/tasks/20250507-v3-aggregator-batch-router) |
| V3 ERC4626 Cow Swap Fee Burner | [`20250507-v3-erc4626-cow-swap-fee-burner`](./v3/tasks/20250507-v3-erc4626-cow-swap-fee-burner) |
| V2 VeBoost V2.1 | [`20250613-veboost-v2.1`](./v2/tasks/20250613-veboost-v2.1) |
| V3 ReClamm Pool (V2) | [`20250702-v3-reclamm-pool-v2`](./v3/tasks/20250702-v3-reclamm-pool-v2) |
| V3 Token Pair Registry | [`20250806-v3-token-pair-registry`](./v3/tasks/20250806-v3-token-pair-registry) |
Expand Down Expand Up @@ -256,6 +253,7 @@ Go to each deprecated deployment's readme file to learn more about why it is dep
| V3 Vault Explorer | [`20241205-v3-vault-explorer`](./v3/deprecated/20241205-v3-vault-explorer) |
| V3 Weighted Pool | [`20241205-v3-weighted-pool`](./v3/deprecated/20241205-v3-weighted-pool) |
| V3 Stable Surge Pool | [`20250121-v3-stable-surge`](./v3/deprecated/20250121-v3-stable-surge) |
| V3 Cow Swap Fee Burner | [`20250221-v3-cow-swap-fee-burner`](./v3/deprecated/20250221-v3-cow-swap-fee-burner) |
| V3 Protocol Fee Sweeper | [`20250228-v3-protocol-fee-sweeper`](./v3/deprecated/20250228-v3-protocol-fee-sweeper) |
| V3 Liquidity Bootstrapping Pool | [`20250307-v3-liquidity-bootstrapping-pool`](./v3/deprecated/20250307-v3-liquidity-bootstrapping-pool) |
| Balancer Contract Registry Initializer | [`20250314-balancer-registry-initializer`](./v3/deprecated/20250314-balancer-registry-initializer) |
Expand All @@ -264,5 +262,6 @@ Go to each deprecated deployment's readme file to learn more about why it is dep
| V3 ReClamm Pool | [`20250409-v3-reclamm-pool`](./v3/deprecated/20250409-v3-reclamm-pool) |
| V3 Pool Pause Helper | [`20250430-v3-pool-pause-helper`](./v3/deprecated/20250430-v3-pool-pause-helper) |
| V3 Pool Swap Fee Helper | [`20250430-v3-pool-swap-fee-helper`](./v3/deprecated/20250430-v3-pool-swap-fee-helper) |
| V3 Liquidity Bootstrapping Pool (V2) | [`20250701-v3-liquidity-bootstrapping-pool-v2`](./v3/deprecated/20250701-v3-liquidity-bootstrapping-pool-v2) |
| V3 ERC4626 Cow Swap Fee Burner | [`20250507-v3-erc4626-cow-swap-fee-burner`](./v3/deprecated/20250507-v3-erc4626-cow-swap-fee-burner) |
| V3 Balancer Fee Burner | [`20250530-v3-balancer-fee-burner`](./v3/deprecated/20250530-v3-balancer-fee-burner) |
| V3 Liquidity Bootstrapping Pool (V2) | [`20250701-v3-liquidity-bootstrapping-pool-v2`](./v3/deprecated/20250701-v3-liquidity-bootstrapping-pool-v2) |
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

> ⚠️ **DEPRECATED: do not use** ⚠️
>
> This factory and associated Pools have been deprecated due to incorrect calculation of protocol fees when the global protocol swap fee percentage is non-zero. They have been [temporarily replaced with a version that addresses this](../../tasks/20211202-no-protocol-fee-lbp).
> This factory and associated Pools have been deprecated due to incorrect calculation of protocol fees when the global protocol swap fee percentage is non-zero. They have been [temporarily replaced with a version that addresses this](../20211202-no-protocol-fee-lbp).

Deployment of the `LiquidityBootstrappingPoolFactory`, for Liquidity Bootstrapping Pools of up to 4 tokens.

Expand Down
2 changes: 1 addition & 1 deletion v2/deprecated/20221021-managed-pool/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
>
> This factory and associated Pools have been deprecated due to dependencies requiring extra features: this deployment's Pools are not expected to ever be used.
>
> Superseded by this [updated version](../../tasks/20230411-managed-pool-v2), which has reentrancy protection, create2, configurable pause window, and other improvements.
> Superseded by this [updated version](../20230411-managed-pool-v2), which has reentrancy protection, create2, configurable pause window, and other improvements.

Deployment of the `ManagedPoolFactory`, which allows creating Managed Pools.

Expand Down
2 changes: 1 addition & 1 deletion v2/deprecated/20221202-timelock-authorizer/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

> ⚠️ **DEPRECATED: do not use** ⚠️

> Superseded by [20230403-timelock-authorizer](../../tasks/20230522-timelock-authorizer/), which provides much better and isolated control over granting, revoking, cancelling and executing permissions.
> Superseded by [20230403-timelock-authorizer](../../tasks/20250925-timelock-authorizer/), which provides much better and isolated control over granting, revoking, cancelling and executing permissions.

Deployment of the `TimelockAuthorizer` in order to replace the basic Authorizer deployed with the Vault.
This Authorizer implementation allows defining a delay per action identifier. Users can only execute functions directly when there is no delay. Otherwise, they're granted permission to schedule an action, which can then be executed by the Authorizer after the delay. It also introduces Granters and Revokers, to allow controlled delegation of permission handling to third parties, which eases the burden on governance and allows the system to scale. For instance, a smaller multisig might be designated as a Granter for certain veBAL-related functions for new pools.
Expand Down
2 changes: 1 addition & 1 deletion v2/deprecated/20230711-composable-stable-pool-v5/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

> ⚠️ **DEPRECATED** ⚠️
>
> This version has been replaced for an updated version: [Composable Stable Pool V6](../../tasks/20240223-composable-stable-pool-v6). The new version has the same functionality, but larger pause and buffer windows; this version can still be used if pausing is deemed unnecessary for specific pools.
> This version has been replaced for an updated version: [Composable Stable Pool V6](../20240223-composable-stable-pool-v6). The new version has the same functionality, but larger pause and buffer windows; this version can still be used if pausing is deemed unnecessary for specific pools.

Deployment of `ComposableStablePoolFactory`, which supersedes `20230320-composable-stable-pool-v4`.
This version is resilient to abrupt changes in the value reported by the pool tokens' rate providers, and calculates
Expand Down
2 changes: 1 addition & 1 deletion v2/tasks/20230525-l2-veboost-v2/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Deployment of the VeBoostV2 in L2 networks.
This contract shall be used as the delegation for the `VotingEscrowDelegationProxy`, using LayerZero's `OmniVotingEscrowChild` as Voting Escrow.

This allows using and delegating bridged veBAL balances in L2 networks.
The artifact is the same as in the [20221205-veboost-v2 task](../20221205-veboost-v2/); constructor arguments and fork tests differ.
The artifact is the same as in the [20221205-veboost-v2 task](../../deprecated/20221205-veboost-v2/); constructor arguments and fork tests differ.

## Useful Files

Expand Down
3 changes: 1 addition & 2 deletions v2/tasks/20250925-timelock-authorizer/readme.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
# 2023-05-22 - Timelock Authorizer
# 2025-09-25 - Timelock Authorizer

Deployment of the `TimelockAuthorizer` in order to replace the basic Authorizer deployed with the Vault.
This Authorizer implementation allows defining a delay per action identifier. Users can only execute functions directly when there is no delay. Otherwise, they're granted permission to schedule an action, which can then be executed by the Authorizer after the delay. It also introduces Granters and Revokers, to allow controlled delegation of permission handling to third parties, which eases the burden on governance and allows the system to scale. For instance, a smaller multisig might be designated as a Granter for certain veBAL-related functions for new pools.

## Useful Files

- [Code](https://github.com/balancer/balancer-v2-monorepo/commit/bcf3fe05c0678cde4dc735bd2b1c2cf4fa7af537).
- [Sepolia testnet addresses](./output/sepolia.json)
- [`TimelockAuthorizer` artifact](./artifact/TimelockAuthorizer.json)
- [`TimelockAuthorizerMigrator` artifact](./artifact/TimelockAuthorizerMigrator.json)
- [`TimelockExecutionHelper` artifact](./artifact/TimelockExecutionHelper.json)
2 changes: 1 addition & 1 deletion v3/deprecated/20241205-v3-stable-pool/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

> ⚠️ **DEPRECATED: do not use** ⚠️
>
> The stable pool was superseded by this [updated version](../../tasks/20250324-v3-stable-pool-v2/).
> The stable pool was superseded by this [updated version](../20250324-v3-stable-pool-v2/).

The original pool is still safe to use; V2 just includes new functionality.

Expand Down
2 changes: 1 addition & 1 deletion v3/deprecated/20250121-v3-stable-surge/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

> ⚠️ **DEPRECATED: do not use** ⚠️
>
> The stable pool was superseded by this [updated version](../../tasks/20250404-v3-stable-surge-pool-factory-v2/).
> The stable pool was superseded by this [updated version](../20250404-v3-stable-surge-pool-factory-v2/).

Deployment of the `StableSurgePoolFactory` for Balancer V3.
Pools from this factory use stable math, inspired by Curve stable pools, which is best suited for correlated assets.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

> ⚠️ **DEPRECATED: do not use** ⚠️
>
> This version was superseded by [`LiquidityBoostrappingPool` V2](../../tasks/20250701-v3-liquidity-bootstrapping-pool-v2/), which (optionally) allows enforcing liquidity migration when the LBP is created. This deployment can still be used if the migration functionality is not desired.
> This version was superseded by [`LiquidityBoostrappingPool` V2](../20250701-v3-liquidity-bootstrapping-pool-v2/), which (optionally) allows enforcing liquidity migration when the LBP is created. This deployment can still be used if the migration functionality is not desired.

Deployment for the LBPool, a Weighted Pool with mutable weights, designed to support v3 Liquidity Bootstrapping. This V3 version is more restrictive than LBPs were in V2, in order to make them more deterministic, simpler for aggregators, and safer for end users. They are limited to two tokens and a single weight change operation, specified on deployment.

Expand Down