Table of contents Welcome Guides Swaps Batch Swaps Single Swaps Data Balancer Subgraph Deployment Inferring Historical Liquidity Mining APRs (Legacy) Resources Deploy Pools from Factory Creation WeightedPool StablePhantom Pool Liquidity Bootstrapping Pool AaveLinearPool Boosted MetaPool StablePool MetaStable Pool Verification Pool Interfacing Weighted Pool Stable Pool MetaStable Pool Liquidity Bootstrapping Pool Managed Pools Oracle Pools Pool Math Weighted Math Stable Math query{BatchSwap,Join,Exit} Joins and Exits Pool Joins Pool Exits Swaps Batch Swaps Single Swap Flash Swaps Internal User Balances Smart Order Router Flash Loans Rate Providers veBAL and Gauges veBAL Gauges Estimating Gauge Incentive APRs Data Fetching APR Calculation Helpers Using Native ETH Encoding userData References Contracts APIs The Vault BalancerHelpers Pools WeightedPool WeightedPool2Tokens LiquidityBootstrappingPool ManagedPools (prev. "InvestmentPools") StablePools MetaStablePools Asset Managers Deployment Addresses Events UML Diagrams LP Tokens How Many BPT in veBAL? Valuing Underlying Error Codes Subgraphs Github Deep Dive Guided Tour of Balancer Vault Episode 1: The batchSwap Episode 2: Joins Detour: The INIT Join Episode 3: Deploying a Pool Inside Balancer Contracts BasePool Timelock Authorizer Recovery Mode