Balancer is a Vault-based AMM for custom weighted liquidity pools
Balancer is a token-exchange protocol that uses shared accounting and customizable asset proportions for on-chain trading and pooled liquidity. Its programmable automated market maker, or AMM, separates token custody and accounting in a central Vault from the pricing formulas inside individual pools. Traders swap ERC-20 assets, while liquidity providers deposit supported tokens and receive Balancer Pool Tokens, or BPT. The design supports familiar 50/50 markets, unequal weighted portfolios, stable-asset curves, and yield-bearing ERC-4626 positions.
Updated
Key takeaway: Weighted Pools require at least a 1% token weight and limit swaps to 30% of the relevant balance.
Pool configuration determines the exposure you actually hold
Pool configuration risk is the chance that weights, invariant design, or linked assets create exposure beyond the displayed token pair. Balancer pools follow their encoded math continuously, so a liquidity position changes composition as traders move prices and arbitrage restores the pool's market relationship.
Impermanent loss compares the value of the pooled position with simply holding the same starting assets. A 50/50 volatile pair responds differently from an 80/20 pool because the smaller reserve produces steeper price movement for a given trade. Stable Pools add a different dependency: their flatter curve assumes the assets remain near parity or follow a dependable exchange rate. Boosted Pools add the behavior of an ERC-4626 vault, including its share conversion and yield source. Pool choice therefore determines the sources of return and risk before any deposit is made.
Smart-contract, token, rate-provider, and hook behavior remain separate dependencies; an audit of one component does not cover every linked contract.
Before providing liquidity, inspect pool type, token contracts, weights, fee mode, hook, and rate providers. Weighted Math rejects swaps above 30% of the relevant token balance and restricts unbalanced liquidity operations to invariant ratios from 70% through 300%. Exposure changes when any component is permissioned or references an external yield position.
Fees enter before the price curve
Balancer swap fees are pool-level charges applied to the input amount before the invariant calculates the exchange. Gas and price impact sit outside that percentage.
Fixed pool-level bounds
Standard v3 pools publish fee bounds; each deployed pool selects within its range. The Vault stores fees with 18-decimal fixed-point inputs and 24-bit packed precision, giving a 0.00001% fee resolution. A hook can calculate a dynamic fee, and a static fee can be updated by the address that holds the relevant permission. The quoted transaction therefore needs the actual pool fee state.
Weighted Pools
Standard Weighted Pools permit fees from 0.001% through 10%. The fee is charged on the input side for exact-in and exact-out swaps, with the exact-out amount-in calculated first.
Stable Pools
Standard Stable Pools permit a lower floor of 0.0001% and the same 10% ceiling. The protocol also charges the pool fee on the non-proportional part of an unbalanced liquidity add or removal.
Worked fee example
Every changing input in this hypothetical worked example is labeled here: a 1,000-unit exact-in trade and a 0.30% pool fee; gas, price impact, and the exchange rate are excluded. Multiplying 1,000 by 0.003 gives a 3-unit pool fee. The remaining 997 units enter the pool's pricing calculation. Final output still follows reserves, weights or amplification, the route, and the user's transaction limit.
The Vault, routers, and pool math
The Balancer architecture is a three-part system in which routers coordinate, the Vault accounts, and pools calculate prices. This separation lets pool contracts focus on an invariant while the Vault standardizes token movement, BPT minting, and settlement.
A user action reaches a Basic Router, Batch Router, Composite Liquidity Router, or another approved interface. The router unlocks the Vault, which records temporary debts and credits as swaps and liquidity operations run. A pool returns the mathematical amount for each step. The router then pays the debts and withdraws the credits. All entries must settle before the Vault locks again; otherwise, the entire transaction reverts. Transient accounting permits several steps to compose atomically without transferring tokens after every internal operation, which is especially useful for multihop routes and wrapped assets.
The Vault holds standard ERC-20 pool assets, while stateless routers provide replaceable user-facing paths into the same accounting layer.
What makes Weighted Pools different?
Weighted Pools are multi-token AMMs that assign fixed percentages to assets instead of requiring an equal two-token split. Standard Weighted Pools support up to 8 tokens, require at least 1% per token, and cap swaps at 30% of the relevant balance. Weights are immutable in standard pools and must total 100%.
An 80/20 WBTC/WETH position keeps more notional exposure in WBTC than a 50/50 pool while still quoting swaps against WETH. A 60/20/20 configuration extends the same invariant to three assets. As trading pushes balances away from their starting composition, the pool price changes and arbitrage trades move the portfolio toward its target value weights. Unequal weights reduce the amount of the favored asset sold during a price rise, but the thin side supplies less depth. The selected ratios should match the desired inventory exposure and expected order flow.
Stable, boosted, and specialized pool designs
In day-to-day use, Balancer pool designs are specialized invariants and wrappers that align liquidity mechanics with correlated assets, yield tokens, launches, or bounded price ranges. The important distinction is the assumption embedded in each curve.
- Stable Pools use Stable Math for assets expected to trade near parity or at a known rate. They accept up to 5 tokens; DAI, USDC, and USDT illustrate same-currency assets, while WETH and wstETH illustrate rate-linked assets.
- Boosted Pools hold ERC-4626 vault shares and use liquidity buffers between wrapped and underlying assets. Aave and Morpho supply established yield-bearing designs, and v3 permits a position to be 100% yield-bearing.
- Liquidity Bootstrapping Pools use changing weights to support token distribution and price discovery over a defined schedule.
- StableSurge Pools apply a dynamic fee as stable-pool imbalance grows, strengthening the incentive for trades that move balances toward equilibrium.
- Gyroscope contributes Gyro 2-CLP and Gyro E-CLP designs for bounded or concentrated liquidity with specialized invariants.
Pool selection follows the relationship among the assets, the expected trading range, and whether external yield wrappers belong in the position.
Adding liquidity and reading BPT
Liquidity provision is a deposit into one pool that mints BPT as the receipt for a proportional ownership claim. Each BPT balance represents a fraction of that pool, rather than a fixed quantity of every underlying token.
Preparation starts with the network, pool, and token contracts. Ethereum, Arbitrum, and Base each host Balancer deployments, but liquidity and gas conditions differ by chain. Compare the pool's live balances, weights or amplification, fee setting, rate providers, and linked hook. Keep the chain's native gas asset in the wallet. For a standard Weighted Pool, decide whether the intended inventory matches its fixed percentages. For a Stable or Boosted Pool, confirm that the assets share the economic relationship assumed by its math.
Retail adds and swap inputs use Permit2; BPT removals use an ERC-20 pool-token approval or an EIP-2612 permit.
Execution begins with a query or quote, followed by a minimum BPT output or maximum token input. Proportional deposits preserve the pool's current ratio. Unbalanced deposits create a fee-bearing non-proportional amount. The router transfers input assets to the Vault, which mints BPT after accounting settles.
Verification should cover the confirmed transaction status, token debits, received BPT, pool address, and remaining allowances. Ongoing maintenance means revisiting composition, fee state, rate-provider behavior, and withdrawal liquidity. The position changes with trades, fee accrual, and underlying vault exchange rates, so the review interval follows the volatility and complexity of the chosen pool.
Swapping and verifying settlement
Swap execution is a router-mediated exchange that settles every Vault debt and credit before the transaction can complete. An exact-in order fixes the input and enforces a minimum output; an exact-out order fixes the output and caps the input. Query the route, review the pool fee, price impact, limit, and network gas, then submit. After confirmation, compare wallet balance changes with the receipt and confirm that the expected network and token contracts were used. Route quality changes with balances and execution time.
Benefits of shared liquidity infrastructure
Shared liquidity infrastructure is Balancer's main operational advantage, because one accounting layer supports many pool types and routes. Builders reuse token accounting, settlement, BPT, and routers while defining new pricing logic in a pool.
For liquidity providers, the useful choice is not simply “earn swap fees”; it is control over inventory weights, asset relationships, and yield wrappers. ERC-20 BPT remains composable, and supported BPT designs can use Chainlink-compatible LP oracle contracts for external pricing. Batch routing connects Stable, Weighted, Boosted, and Gyroscope liquidity in one atomic transaction, reducing redundant token transfers between internal steps.
Hooks add another extension layer around initialization, swaps, and liquidity changes. The v3 hook configuration contains 10 Boolean fields covering adjusted amounts and before-or-after callbacks, including dynamic swap fee calculation. That configuration and the hook address become immutable when a pool is registered. Extensibility therefore delivers value when the operator understands the linked contract and its permissions.
Which alternative matches a different liquidity objective?
The closest Balancer alternative depends on whether the priority is concentrated liquidity, correlated-asset depth, or execution without a conventional pool. Each design moves inventory, pricing, and operational work to a different layer.
Uniswap v3 concentrates liquidity inside chosen price ranges and represents each position as a non-fungible token, making it a different inventory-management model from fixed-weight BPT. Uniswap v4 adds a singleton PoolManager and hooks, which suits teams that want custom execution around concentrated liquidity. Curve centers StableSwap and related pool types on correlated assets, so it is a direct benchmark for stablecoin or liquid-staking-token depth. Each choice changes how capital leaves or re-enters the active trading range.
CoW Protocol targets trade execution through batch auctions and solver competition rather than asking the trader to select one AMM pool. It can source liquidity from on-chain venues, including AMMs. For a simple equal-weight constant-product market, Uniswap v2 remains easier to model. Balancer has the strongest fit when custom weights, shared Vault accounting, or multiple pool mathematics are the core requirement; the answer changes when concentrated range management or solver-based execution dominates.
Advanced operating checks for custom pools
Advanced pool maintenance is the recurring review of immutable design choices, permissioned parameters, rate inputs, and router compatibility. The review should separate mathematical limits from values that governance or a pool manager can change.
Token and mathematical boundaries
Weighted Pools keep fixed normalized weights, a 1% minimum token weight, and 30% single-swap input and output limits. Stable Pool amplification ranges from 1 through 50,000. An amplification update lasts at least 1 day and changes by no more than a factor of 2 per day within one scheduled update. Those constants define transaction boundaries, while balances and quotes remain live state.
Token behavior matters just as much as the invariant. The Vault supports standard ERC-20 assets and excludes rebasing or double-entry-point tokens. ERC-4626 wrappers bring a rate provider, share-conversion logic, and underlying protocol behavior. Buffers may wrap or unwrap with zero buffer liquidity, but liquidity added after initialization must be proportional.
Governance and hook state
Inspect which account controls static fees, pause functions, recovery settings, and any dynamic-fee hook. A standard Weighted Pool's weights stay fixed, yet fee or hook-related outcomes may still change through their authorized paths. Router versions are stateless and replaceable, so standing Permit2 allowances deserve periodic review. The maintenance plan becomes stricter as the pool adds external rates, yield wrappers, or custom hooks, as described in Balancer explained.
Details worth knowing about Balancer
Do I need BAL to use the protocol?
BAL is not required to swap, add liquidity, or remove liquidity through Balancer. You need the input assets, matching BPT for a withdrawal, and the native gas token of the selected network. BAL is a separate protocol token rather than a universal access charge. Pool-specific incentives, if present, follow their own eligibility rules and change over time. The preview identifies required assets and approvals beforehand.
Can native ETH or BTC enter a Balancer pool directly?
Native ETH can be handled by a Balancer router that wraps or unwraps WETH during settlement, while the Vault accounts in standard ERC-20 tokens. Native Bitcoin does not enter an Ethereum-style pool directly; a pool would use an accepted ERC-20 representation such as WBTC. The exact token contract and network must match the pool registration. A ticker alone is insufficient because wrapped assets on different networks are separate contracts with separate liquidity. Availability still depends on whether that representation is registered in the selected pool and chain.
How long does a Balancer swap take?
A Balancer swap completes atomically in one confirmed transaction. The elapsed time is set by the selected network's block production, congestion, fee choice, and wallet submission, not by a protocol queue. Before confirmation, the quote can become stale as pool balances change. If the encoded limit is no longer satisfied, the transaction reverts. The wallet receipt supplies the final block, status, gas used, and token-balance events.
Does every Balancer pool require a price oracle?
No, a Balancer pool does not require an external price oracle to calculate ordinary swaps. Weighted Math or Stable Math derives the exchange from pool balances and invariant parameters. Rate-linked tokens can use rate providers so the Vault scales live balances, and external applications may use Chainlink-compatible LP oracles to price supported BPT. Oracle requirements therefore arise from the token type or downstream integration, rather than from every swap executed through the Vault. Those integrations apply stricter assumptions than the invariant needs for routine in-pool pricing.
Are Balancer Pool Tokens transferable between wallets?
Yes, Balancer Pool Tokens are ERC-20 tokens and can be transferred. Their balance represents a proportional pool claim, so the quantity of underlying assets redeemable changes with pool balances, fees, and total BPT supply. A receiving wallet must use the correct network and pool-token contract. Moving BPT does not move the underlying reserve tokens separately; redemption burns BPT through a router and returns the pool's corresponding assets.
Can Balancer Pool Tokens be used as collateral?
Some Balancer Pool Tokens can be integrated as collateral, but acceptance belongs to the lending protocol rather than Balancer. Supported Weighted, Stable, and Gyro E-CLP BPT designs have dedicated LP oracle contracts that use market prices for their component assets and expose a Chainlink-compatible interface. A lending market still chooses the exact pool token, oracle configuration, collateral factor, deposit cap, and liquidation settings. Transferability alone does not establish eligibility. The BPT contract and its underlying pool therefore need separate integration review before any position opens.
Which Balancer routers work for smart-contract callers?
Aggregator Router and Aggregator Batch Router are the Balancer v3 paths designed for contract callers that hold input tokens. The calling contract transfers tokens to the Vault within the same transaction, then the router settles the prepayment through Vault accounting. This route does not use Permit2 signatures or direct router allowances. Retail accounts instead use the Basic, Batch, Buffer, or Composite Liquidity Router with the Permit2 authorization flow.
Does creating a Balancer pool require governance permission?
Standard pool creation is permissionless when a deployed Balancer factory supports the chosen pool type and parameters. Registration still enforces contract rules, including token, weight, fee, and invariant bounds. Custom pool code or a new hook requires development, testing, deployment, and appropriate factory or registration handling. Creating a pool also does not create useful liquidity automatically; the operator must initialize it with supported assets and maintain the permissions attached to fees, hooks, or rate providers. Initialization therefore remains a separate operational and capital decision.