Users can redeem the arbitrary amount of Principals and Yields at any time after DepositDate. The protocol has two different types of redemption:
  • Early redemption
  • Final redemption

Early Redemption

In order to trigger early redemption, which is available at any time between the DepositDate and the MaturityTime, users need to provide an equal amount of Principals and Yields.
Interest can only continue to accrue on each unit of principal if both the principal and interest remains locked. This means that we can only allow users to withdraw from a pool before the MaturityTime, if they withdraw the principal and the interest accrued on it at the same time.
In this event, the TempusPool contract burns the Principals and Yields (the number of which must be equal) and unlocks the EarlyRedemptionYieldBearingTokenUnlockAmount from the pool of locked YieldFarmingToken.

Final Redemption

Principals and Yields are unlocked and are freely redeemable on or after the MaturityTime.
In this event, the TempusPool contract burns the elected number of Principal and Interest Tokens and unlocks the PrincipalsFinalRedemptionAmount or YieldsFinalRedemptionAmount number of YieldBearingToken.
The PrincipalsFinalRedemptionAmount and YieldsFinalRedemptionAmountare fixed on the MaturityTime. Any further interest accruing on Principals and Yields after the MaturityTime will accrue to the Protocool Treasury. You can find more details about this in Fees.
For redemption, users needs to provide the following properties:
Address of the user that is triggering redemption
Amount of Principals to be redeemed
Amount of Yields to be redeemed. In the case of early redemption, this needs to be equal to PrincipalsAmount
Address of user receiving unlocked tokens
Redemption can be to both YieldBearingToken and BackingToken. In the case of redemption to the backing token, TempusPool interacts with the underlying protocol to withdraw BackingToken in exchange for YieldBearingToken.
The redemption amount, expressed in BackingTokens, is calculated as follows:
RedeemAmount=Principals+YieldsCurrentInterestRateInitialInterestRateInitialInterestRateRedeemAmount = Principals + Yields * \frac {CurrentInterestRate - InitialInterestRate} {InitialInterestRate}
After maturity, CurrentInterestRate is equal to MaturityInterestRate to prevent the accrual of additional yield after maturity.
Last modified 3mo ago