poolType
has 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.INIT
joinINIT
join can be done only once when the pool have a BPT totalSupply
of 0. Almost all pools require you to use a JoinKind
of type INIT
before you can use the pool.INIT
joins, they require that in addition to the "normal" tokens, you must also pass the pools own BPT in a quantity of 2**112-1
.name
- The name of the pool corresponding Balancer Pool Token (BPT)symbol
- The short symbol for the BPTtokens
- A numerically sorted array of all tokens in the poolowner
- The "owner" of the pool: account that has some limited control over pool parameters (more below)owner
to the zero address 0x0000000000000000000000000000000000000000
.owner
either 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. ampParameter
ampParameter
cacheDuration
swapEnable
swapEnable
tokens
array must be sorted numerically. All other corresponding arrays (ex. weights
, defined below) should reflect this orderingcreate
function on the WeightedPoolFactory
to deploy a new WeightedPool
. We then get the poolId
from the newly deployed pool.2e256 - 1
) or enough to satisfy the amounts we wish to move.JoinKind
of type 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 joinPool
on the 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/<yourPoolId>