Skip to main content

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.