diff --git a/docs/.vuepress/public/images/pool-creation/create-step1-cow.png b/docs/.vuepress/public/images/pool-creation/create-step1-cow.png new file mode 100644 index 00000000..dbe2f8e0 Binary files /dev/null and b/docs/.vuepress/public/images/pool-creation/create-step1-cow.png differ diff --git a/docs/.vuepress/public/images/pool-creation/create-step1-type.png b/docs/.vuepress/public/images/pool-creation/create-step1-type.png new file mode 100644 index 00000000..39890377 Binary files /dev/null and b/docs/.vuepress/public/images/pool-creation/create-step1-type.png differ diff --git a/docs/.vuepress/public/images/pool-creation/create-step2-tokens.png b/docs/.vuepress/public/images/pool-creation/create-step2-tokens.png new file mode 100644 index 00000000..06aa8f44 Binary files /dev/null and b/docs/.vuepress/public/images/pool-creation/create-step2-tokens.png differ diff --git a/docs/.vuepress/public/images/pool-creation/create-step3-details.png b/docs/.vuepress/public/images/pool-creation/create-step3-details.png new file mode 100644 index 00000000..e7086c0a Binary files /dev/null and b/docs/.vuepress/public/images/pool-creation/create-step3-details.png differ diff --git a/docs/.vuepress/public/images/pool-creation/create-step3-gyro.png b/docs/.vuepress/public/images/pool-creation/create-step3-gyro.png new file mode 100644 index 00000000..ac1e43a9 Binary files /dev/null and b/docs/.vuepress/public/images/pool-creation/create-step3-gyro.png differ diff --git a/docs/.vuepress/public/images/pool-creation/create-step4-fund.png b/docs/.vuepress/public/images/pool-creation/create-step4-fund.png new file mode 100644 index 00000000..1e2c9ddf Binary files /dev/null and b/docs/.vuepress/public/images/pool-creation/create-step4-fund.png differ diff --git a/docs/.vuepress/public/images/pool-creation/creation-success.png b/docs/.vuepress/public/images/pool-creation/creation-success.png deleted file mode 100644 index 0ecb4618..00000000 Binary files a/docs/.vuepress/public/images/pool-creation/creation-success.png and /dev/null differ diff --git a/docs/.vuepress/public/images/pool-creation/pool-hooks-config.png b/docs/.vuepress/public/images/pool-creation/pool-hooks-config.png deleted file mode 100644 index 2475b8b6..00000000 Binary files a/docs/.vuepress/public/images/pool-creation/pool-hooks-config.png and /dev/null differ diff --git a/docs/.vuepress/public/images/pool-creation/preview-pool.png b/docs/.vuepress/public/images/pool-creation/preview-pool.png deleted file mode 100644 index 2a97349d..00000000 Binary files a/docs/.vuepress/public/images/pool-creation/preview-pool.png and /dev/null differ diff --git a/docs/.vuepress/public/images/pool-creation/proportional-weight.png b/docs/.vuepress/public/images/pool-creation/proportional-weight.png deleted file mode 100644 index b2427141..00000000 Binary files a/docs/.vuepress/public/images/pool-creation/proportional-weight.png and /dev/null differ diff --git a/docs/.vuepress/public/images/pool-creation/rate-provider.png b/docs/.vuepress/public/images/pool-creation/rate-provider.png deleted file mode 100644 index 9aee83db..00000000 Binary files a/docs/.vuepress/public/images/pool-creation/rate-provider.png and /dev/null differ diff --git a/docs/.vuepress/public/images/pool-creation/reset-creation-progress.png b/docs/.vuepress/public/images/pool-creation/reset-creation-progress.png deleted file mode 100644 index 5a73c99d..00000000 Binary files a/docs/.vuepress/public/images/pool-creation/reset-creation-progress.png and /dev/null differ diff --git a/docs/.vuepress/public/images/pool-creation/reset-progress.png b/docs/.vuepress/public/images/pool-creation/reset-progress.png deleted file mode 100644 index 0236d0ef..00000000 Binary files a/docs/.vuepress/public/images/pool-creation/reset-progress.png and /dev/null differ diff --git a/docs/.vuepress/public/images/pool-creation/switch-network.png b/docs/.vuepress/public/images/pool-creation/switch-network.png deleted file mode 100644 index 09f8fb88..00000000 Binary files a/docs/.vuepress/public/images/pool-creation/switch-network.png and /dev/null differ diff --git a/docs/.vuepress/public/images/pool-creation/weight-lock.png b/docs/.vuepress/public/images/pool-creation/weight-lock.png deleted file mode 100644 index 5921a499..00000000 Binary files a/docs/.vuepress/public/images/pool-creation/weight-lock.png and /dev/null differ diff --git a/docs/partner-onboarding/balancer-v3/pool-creation.md b/docs/partner-onboarding/balancer-v3/pool-creation.md index 4281fbb0..c1fcc4e1 100644 --- a/docs/partner-onboarding/balancer-v3/pool-creation.md +++ b/docs/partner-onboarding/balancer-v3/pool-creation.md @@ -4,54 +4,82 @@ order: 1 --- # Pool Creation -This guide will help you understand pool configuration options and how to use the [v3 pool creation UI](https://pool-creator.balancer.fi/v3) +This guide walks through Balancer's [pool creation UI](https://balancer.fi/create/step-1-type), which takes you from choosing a pool type all the way to seeding initial liquidity and deploying your pool on-chain. Connect a wallet on the network you want to deploy to before you begin. :::tip -If you encounter any issues or need additional help, please reach out to us on [discord](https://discord.balancer.fi/) or create an issue on [github](https://github.com/balancer/pool-creator/issues/new/choose) +If you run into problems or need a hand, reach out on [Discord](https://discord.balancer.fi/). Every step of the creation flow also has "Get help" and "Contact Support" links. ::: -## Configuration Options -The process of creating a pool begins with choosing the configuration - -### Network Selection -- You must select a supported network before choosing a pool type -![Switch Network Button](/images/pool-creation/switch-network.png) -- After advancing with the "Next" button, the only way to switch the network is to "Reset Progress" -![Reset Progress](/images/pool-creation/reset-progress.png) - -### Pool Type -- Select either a "Weighted" or "Stable" pool type. See more detailed information [here](/concepts/explore-available-balancer-pools/) - -### Pool Tokens -- You must choose at least two tokens -- You must have sufficient wallet balance relative to the input amount in order to advance -- If the token is yield-bearing, you may need to use a [rate provider](/partner-onboarding/onboarding-overview/rate-providers.html) - - If our API contains an approved rate provider review for the token you selected, it will be automatically populated -![Rate Provider](/images/pool-creation/rate-provider.png) -- For weighted pools, you can lock weights so that only unlocked weights are automatically recalculated -![Weight Lock](/images/pool-creation/weight-lock.png) -- For weighted pools, it is important that you enter amounts that are proportional to weight percentage values -![Proportional Weights](/images/pool-creation/proportional-weight.png) - -### Pool Parameters -- See detailed information about swap fee percentages [here](/concepts/vault/swap-fee.html) -- Stable pools require an amplification parameter setting. See detailed information [here](/concepts/explore-available-balancer-pools/stable-pool/stable-math.html) -- See more information about pool management [here](/concepts/core-concepts/pool-role-accounts.html) -- When using a pool hook, you have the option to disable unbalanced liquidity operations and/or allow donations - - If the pool hooks contract sets the `enableHookAdjustedAmounts` flag to `true`, the pool must also set `disableUnbalancedLiquidity` to `true` - - It is important to understand the permissions related to a given hooks `onRegister` function. For example, the hook could require that the pool set `enableDonations` to `true` -![Pool Hooks Config](/images/pool-creation/pool-hooks-config.png) -### Pool Information -- Pool name and symbol are automatically populated, but you have the option to modify both - -## Creation Process -- Click the "Preview Pool" button to open the Pool Creation modal -- After step 1, you cannot close the modal to go back and change configuration options unless you "Reset Progress" -![Reset Creation Progress](/images/pool-creation/reset-creation-progress.png) -- After completing the pool creation process, you will have the option to view your pool on Balancer or create another pool -![Pool Creation Success](/images/pool-creation/creation-success.png) +## The creation flow + +Creating a pool is a four-step process (**Type**, **Tokens**, **Details**, and **Fund**), with your progress shown across the top of the page. A **Pool preview** panel on the right updates continuously as you make selections, summarizing the protocol, network, tokens, and parameters for the pool you are about to create. If you want to start over, use **Delete & restart** at any point; note that once you advance past the Type step you can only change the network by restarting. + +## Step 1: Type + +The first step sets the protocol, the network, and the pool type. + +![Choosing the protocol, network, and pool type](/images/pool-creation/create-step1-type.png) + +- **Protocol**: Choose **Balancer v3** for the standard Balancer pool types, or **CoW** to create a CoW AMM whose trades are settled through [CoW Protocol](https://cow.fi/)'s batch auctions for built-in MEV protection. +- **Network**: Balancer v3 pools can be created on Ethereum, Arbitrum, Avalanche, Base, Gnosis, HyperEVM, Monad, Optimism, and Plasma. CoW pools are available on Ethereum, Arbitrum, Base, and Gnosis. +- **Pool type**: The available types depend on the protocol you selected. + +For **Balancer v3**, you can choose from: + +- [**Stable**](/concepts/explore-available-balancer-pools/stable-pool/stable-pool.html): optimized for assets that trade at or near parity, or at a known exchange rate; supports up to five tokens. +- [**Stable Surge**](/concepts/explore-available-balancer-pools/stable-pool/stable-surge-pool.html): a standard Stable pool that uses the Stable Surge hook, which raises the swap fee when a trade pushes the pool further out of balance, helping to defend a peg. +- [**Weighted**](/concepts/explore-available-balancer-pools/weighted-pool/weighted-pool.html): flexible pools with configurable token weights, well suited to tokens without a price correlation; supports up to eight tokens. +- [**Gyro Elliptic CLP**](/concepts/explore-available-balancer-pools/gyroscope-pool/gyro-eclp.html): concentrated-liquidity pools that focus liquidity along an elliptical price curve for better capital efficiency; limited to two tokens. + +For **CoW**, the only type is the **CoW AMM**, a two-token weighted pool whose swaps are settled by CoW Protocol to protect liquidity providers from MEV and the losses that come from arbitrageurs rebalancing the pool. + +![Creating a CoW pool: fewer networks and the CoW AMM pool type](/images/pool-creation/create-step1-cow.png) + +## Step 2: Tokens + +Next you choose the pool's tokens and, where applicable, their weights. + +![Selecting tokens and configuring rate providers](/images/pool-creation/create-step2-tokens.png) + +- **Token selection**: Every pool needs at least two tokens. Stable pools allow up to five and Weighted pools up to eight; Gyro Elliptic CLP and CoW AMM pools are limited to exactly two. +- **Weights**: Weighted and CoW AMM pools use a structure of 50/50, 80/20, or custom weights that you set per token. +- **Rate providers**: Yield-bearing tokens generally need a [rate provider](/partner-onboarding/onboarding-overview/rate-providers.html) so the pool prices them by their underlying value. If the Balancer API already has a reviewed rate provider for the token, it is populated automatically; otherwise you can supply a custom one. Every new rate provider contract must be reviewed and approved before liquidity providers can interact with the pool through the Balancer UI. +- **Yield fees**: For interest-bearing assets you can choose to share yield with the Balancer protocol. Pools that do not share yield are unlikely to be approved for a BAL liquidity-mining gauge. + +## Step 3: Details + +This step covers the pool's name and symbol, its management accounts, the swap fee, any pool type-specific parameters, and hooks. + +![Configuring a Stable pool: amplification, role accounts, swap fee, hooks, and liquidity management](/images/pool-creation/create-step3-details.png) + +- **Name and symbol**: Both are generated from the pool's tokens, and you can edit either. +- **Role accounts**: The [pool creator, swap fee manager, and pause manager](/concepts/core-concepts/pool-role-accounts.html) can each be delegated to the Balancer DAO, assigned to your connected wallet, or set to a custom address. +- **Swap fee**: Pick one of the suggested fee tiers or enter a [custom swap fee percentage](/concepts/vault/swap-fee.html). +- **Liquidity management**: Choose whether the pool will **allow unbalanced joins and removes** and whether it will **accept donations**. + +Some pool types add their own parameters: + +- **Stable** and **Stable Surge** pools require an [amplification parameter](/concepts/explore-available-balancer-pools/stable-pool/stable-math.html), which controls how flat the pricing curve stays as the pool moves away from balance. +- **Gyro Elliptic CLP** pools require a price range (a lower bound, a peak price, and an upper bound) plus a stretching factor. The UI suggests values and previews the resulting liquidity curve. + +![Configuring the price range for a Gyro Elliptic CLP pool](/images/pool-creation/create-step3-gyro.png) + +Under **Pool hooks** you can attach a [hook](/concepts/core-concepts/hooks.html) to the pool: **No hooks**, the built-in **StableSurge** hook (for Stable pools), or a **Custom** hooks contract that you supply. + +:::info +When attaching a custom hook, understand the permissions its `onRegister` function enforces. If the hook enables hook-adjusted amounts, the pool must disable unbalanced liquidity (leave "allow unbalanced joins and removes" unchecked), or registration will revert. A hook can also require specific settings, such as that the pool enables donations. +::: + +## Step 4: Fund + +The final step seeds the pool with its initial liquidity. A pool is only listed on the Balancer UI once it has been seeded. + +![Seeding initial liquidity](/images/pool-creation/create-step4-fund.png) + +- **Initial amounts**: Add liquidity in proportion to the pool's target weights or price ratio. Funding a pool with disproportionate amounts exposes it to arbitrage, so the UI warns you when your amounts are off. For Gyro Elliptic CLP and CoW AMM pools, entering one token's amount auto-fills the other to maintain the recommended ratio. +- **Confirm and create**: Accept the risks and terms, then click **Create Pool** and confirm the transaction in your wallet. :::tip -- Your pool may take a few minutes to show on [balancer.fi](https://balancer.fi/pools) -- If you used a rate provider that has not been reviewed, your pool will not show on [balancer.fi](https://balancer.fi/pools) -::: \ No newline at end of file +- Your pool may take a few minutes to appear on [balancer.fi](https://balancer.fi/pools). +- If you used a rate provider that has not yet been reviewed, your pool will not show on [balancer.fi](https://balancer.fi/pools) until it is. +::: diff --git a/docs/partner-onboarding/balancer-v3/v3-overview.md b/docs/partner-onboarding/balancer-v3/v3-overview.md index 0f968771..5bf3a735 100644 --- a/docs/partner-onboarding/balancer-v3/v3-overview.md +++ b/docs/partner-onboarding/balancer-v3/v3-overview.md @@ -37,7 +37,7 @@ Consult our [pool type](../../concepts/explore-available-balancer-pools) section ### Pool Creation and Liquidity -1. Use the [Pool Creation UI](https://pool-creator.balancer.fi/v3) to: +1. Use the [Pool Creation UI](https://balancer.fi/create/step-1-type) to: - Select pool type - Configure parameters - Set initial liquidity