Liquidity Bootstrapping Pools (LBPs)
Overview
Balancer offers two LBP variants:
- Weight Shifting LBPs: Pools that change token weighting over time (e.g. 90/10 → 10/80 project/reserve token). They use Weighted Math with time-dependent weights for price discovery.
- Fixed Price LBP: Pools that keep a constant exchange rate for the whole sale (no weight schedule). Used for constant-rate token sales; buy-only and seedless by default.
The pool owner is the only address that can add liquidity to the pool, which must be done prior to the start of the sale. Furthermore, the proceeds can only be removed after the end time.
Use Cases (weight-shifting LBPs)
The following use cases rely on weight-shifting LBPs (scheduled weights changes). For constant-rate sales, see Fixed Price LBP.
1. Token Launches
Objective: Fair initial token distribution.
The standard LBP configuration supports price discovery for new tokens via a continuous Dutch-auction-style mechanism. The pool starts with a high project-token weight (e.g., 90% project token / 10% reserve) and gradually shifts over time to a lower project-token weight (e.g., 20% / 80%).
This scheduled reweighting creates controlled downward price pressure, helping distribute tokens more broadly while reducing incentives for bot sniping and whale concentration. Buyers can enter when the price reaches a level they consider fair, rather than rushing into a priority-fee bidding race at launch.
2. Treasury Diversification
Objective: Position entry and exit with minimal market impact.
For DAOs and treasuries managing significant capital, LBPs can be used to enter or exit positions over time via a scheduled weight shift. This allows treasuries to:
- Divest: Sell large positions with reduced market impact.
- Invest: Accumulate positions in target tokens with reduced market impact.
3. Token Buybacks
Objective: Efficient protocol token accumulation.
An LBP configured for accumulation inverts the weight logic to create upward price pressure. By starting with high reserve token weight (90% WETH / 10% project token) and shifting toward the project token (10% / 90%), the pool functions as an automated, rising limit order.
Pool Settings
LBPs are highly configurable. Here are the key parameters and settings, as defined in the pool implementation:
- Tokens: LBPs are always two-token pools: the project token (being launched) and the reserve token (e.g., a stablecoin or WETH).
- Weights: The pool owner specifies the starting and ending weights for both tokens. These weights change linearly over time.
- Period: The pool owner sets the
startTimeandendTime(timestamps) for the LBP. Swaps are only enabled between these times. - Swaps: Optionally, the pool can block selling the project token back into the pool (
blockProjectTokenSwapsIn). This is typically enabled for token launches to prevent manipulation, but disabled for token buybacks where sellers must deposit the project token into the pool. - Trusted Router: All pool interactions must go through a trusted router to ensure correct sender reporting and security.
Technical Parameters (from the implementation):
projectToken/reserveToken: ERC20 addresses for the tokens.projectTokenStartWeight/reserveTokenStartWeight: Initial weights (scaled).projectTokenEndWeight/reserveTokenEndWeight: Final weights (scaled).startTime/endTime: UNIX timestamps for the sale window.blockProjectTokenSwapsIn: Boolean to restrict project token sales.poolCreator: The account accruing pool creator fees- Only two tokens are allowed per pool.