> For the complete documentation index, see [llms.txt](https://docs.algebra.finance/algebra-integral-documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.algebra.finance/algebra-integral-documentation/algebra-v1-technical-reference/contracts/api-reference-v1.0/v1.0-tokenomics/ipoolinitializer.md).

# IPoolInitializer

Creates and initializes V3 Pools Provides a method for creating and initializing a pool, if necessary, for bundling with other methods that require the pool to exist.

## Functions

### createAndInitializePoolIfNecessary

`createAndInitializePoolIfNecessary(address,address,uint160)` payable external

Creates a new pool if it does not exist, then initializes if not initialized

| Name         | Type    | Description                                                 |
| ------------ | ------- | ----------------------------------------------------------- |
| token0       | address | The contract address of token0 of the pool                  |
| token1       | address | The contract address of token1 of the pool                  |
| sqrtPriceX96 | uint160 | The initial square root price of the pool as a Q64.96 value |

**Returns:**

| Name | Type    | Description |
| ---- | ------- | ----------- |
| pool | address |             |

***
