poolTypehas a factory from which users can deploy new pools. To deploy a pool, you must call that factory's
create()function with the arguments that correspond to that specific pool. The below section goes over common arguments, and the subpages in this section go further into detail for the pool-specific arguments.
INITjoin can be done only once when the pool have a BPT
totalSupplyof 0. Almost all pools require you to use a
INITbefore you can use the pool.
name- The name of the pool corresponding Balancer Pool Token (BPT)
symbol- The short symbol for the BPT
tokens- A numerically sorted array of all tokens in the pool
ownerto the zero address
ownereither as the address that you want to control the pool fee, or to the delegate address. An address that is set as the owner has permission to set the fee to anything between 0.0001% and 10% whenever they want.
0xBA1BA1ba1BA1bA1bA1Ba1BA1ba1BA1bA1ba1ba1B) then Governance-approved fee-setters have permission to change the fee. Currently Gauntlet has this authority.
createfunction on the
WeightedPoolFactoryto deploy a new
WeightedPool. We then get the
poolIdfrom the newly deployed pool.
2e256 - 1) or enough to satisfy the amounts we wish to move.
INIT(more info on the different types of
JoinKind). This requires a list of
initialBalances, which must be in the same order as the sorted token addresses. We must encode the userData for our join. We then call
Vault, since that is where all tokens are held.
WeightedPool, visible on the Balancer UI. In this mainnet example, you would be able to reach this page at: https://app.balancer.fi/#/pool/