Pool Initialization
Pool Key
Each pool is uniquely identified by a Pool Key, which is derived from the following parameters:
- LoanTokenAddress: The address of the loan token associated with the pool.
- FixedTokenAddress: The address of the fixed token associated with the pool.
- Maturity: The maturity date or duration of the pool.
- MaxTick: The maximum tick value for the pool.
- BpsPerTick: Basis points per tick, which defines the granularity of interest rate increments within the pool.
- loanTokenIsERC4626: If the Loan Token is an ERC4626
Example Configuration:
- Loan Token: sUSDe
- Fixed Token: Pendle PT-sUSDe-2025-12-31
- Maturity: 2025-12-31
- Max Tick: 30
- BPS per Tick: 100 (1%)
- Loan Token Is ERC4626: False
Pool Id
Each pool also has a PoolId which corresponds to the hash of the poolKey:
poolId = PoolId.wrap(keccak256(abi.encode(poolKey)));
Initialization
During initialization the Pool Manager Contract creates a Fixed Interest Rate Liquidity Pool. This pool allows users to permissionlessly add liquidity and swap between Fixed Tokens and Loan Tokens at fixed interest rates. This one-time process defines the pool's structure, including tick spacing in basis points (BPS) and the maximum tick index.
Warning:
- For a pool to be useful, the maturity date of the Fixed Token should align with the pool's maturity date but is not strictly required.
- The pool's loan token should also be either the underlying token or an ERC4626 token with the underlying token of the Fixed Token. For example, a pool using Pendle PT-USDC-2025-12-31 as its Fixed Token could use USDC as its loan token or a ERC4626 token with USDC as its underlying token. Again, this is not required. Users must be careful with the pools they interact with.