Fixed Term Deposits

Locking tranche shares for a fixed number of epochs at a guaranteed rate: configuration, the lock itself, withdrawal at maturity, and who may use it.

Fixed term deposits allow Liquidity Providers to lock their tranche shares for a specified number of epochs in exchange for a guaranteed interest rate. This mechanism provides yield certainty regardless of future interest rate changes.

How It Works#

  1. The Pool Admin creates fixed term deposit configurations for a lending pool, specifying: tranche, lock duration (in epochs), and a fixed interest rate
  2. A Liquidity Provider with an active deposit in the matching tranche locks their tranche shares into a fixed term position
  3. During each clearing, the system adjusts the LP's tranche shares to match the guaranteed rate — minting additional shares if the fixed rate exceeds the pool rate, or burning shares if it is lower
  4. When the lock duration expires, the position is unlocked and tranche shares are returned to the user

Configuration#

Each lending pool can have multiple fixed term deposit configurations. Each configuration specifies:

ParameterTypeDescription
trancheaddressThe tranche this configuration applies to
epochLockDurationuint16Number of epochs the deposit is locked
epochInterestRateuint64Guaranteed interest rate per epoch
fixedTermDepositStatusenumDISABLED, WHITELISTED_ONLY, or EVERYONE

Configurations are created by the Pool Admin via FixedTermDeposit.addLendingPoolTrancheFixedTermDeposit().

Locking#

Fixed term deposits can be locked in two ways:

  • Automatically: During clearing, when a deposit is accepted into a tranche that has an active fixed term config, the deposit is automatically locked (lockFixedTermDepositAutomatically)
  • Manually: A user with existing tranche shares can lock them into a fixed term position (lockFixedTermDepositManually)

When a fixed term deposit is locked, the user's tranche shares are tracked separately from regular deposits.

Withdrawal#

  • The user can request early withdrawal via LendingPoolManager.requestFixedTermDepositWithdrawal(). This triggers a Force Withdrawal during the next clearing, processed with the highest priority
  • If no withdrawal is requested, the position automatically unlocks after the lock duration ends and tranche shares are returned to the user
  • Withdrawal requests can be canceled within a configurable number of epochs before unlock (cancelRequestEpochsInAdvance)

Allowlisting#

Fixed term deposit configurations can be restricted to specific users via the fixedTermDepositsAllowlist. The Pool Admin can manage this list through updateFixedTermDepositAllowlist().

Contracts Involved#

  • FixedTermDeposit.sol — Core logic for fixed term deposit management and clearing
  • LendingPoolManager.sol — User-facing entry point for fixed term deposit operations
  • IFixedTermDeposit.sol — Interface defining all structs, events, and errors