Deposit Lifecycle

Describes the course of funds as they move through Illuminate
At a high level, users receive Illuminate Principal Tokens to represent their lending position, and upon maturity, may redeem the underlying at a 1:1 ratio.


The first step in the deposit lifecycle is calling lend on the Lender contract. In doing so, the user sends their underlying to the Lender contract, and in exchange receives Illuminate Principal Tokens. The Lender contract custodies the protocol principal tokens the user elected to use to execute the loan.
As an example, let's say a user calls lend on Lender.sol, lending 100 USDC on Notional in the December 2022 market. At the end of the lend call, and can receive a return of 5% over the term of the loan:
  • Lender: holds 105 Notional (External) PTs
  • User: holds 105 Illuminate PTs


As an alternative to directly lending through Illuminate, users can also purchase external principal tokens and then wrap them at a 1:1 ratio into Illuminate Principal Tokens.
As an example, let's say a user lends 100 USDC directly on Notional in the December 2022 market at a rate of 5% for one year. This leaves the user with 105 Notional PTs. By then calling mint on Lender.sol, this user can then wrap their 105 Notional PTs into 105 Illuminate PTs (likely in order to perform arbitrage).
  • Lender: holds 105 Notional (External) PTs
  • User: holds 105 Illuminate PTs

Redeem (External PT)

Once the lending market has matured, anyone can call protocol redeem to retrieve each protocol's principal tokens and convert them to the underlying asset for the matured market. Calling a protocol redeem results in the Lender transferring its principal token holdings to the Redeemer contract. From there, the Redeemer calls the protocol's redeem method to get the underlying asset. In addition, the Redeemer updates a holdings mapping which indicates how much of the underlying was redeemed for a particular market.
Following our example, at the end of a redeem call for Notional:
  • Lender: no longer holds any of Notional's PTs
  • Redeemer: now holds 105 USDC (redeemed via Notional)
  • User: still holds the original 105 Illuminate PTs

Redeem (Illuminate PT)

Finally, a user can call redeem to redeem their ERC5095 Illuminate principal tokens for the underlying. In calling Illuminates redeem, the user transfers their PTs to the Redeemer contract. In turn, the Redeemer burns the tokens and transfers the underlying to the user. At this point, the holdings mapping is used to determine the ratio of principal tokens owed to the user. In addition, the holdings mapping is updated to reflect that the redemption of the Illuminate PTs has occurred.
Again, from our example, following the Illuminate redeem call:
  • Lender: no longer holds any PTs for the market
  • Redeemer: no longer holds the redeemed underlying asset
  • User: now holds the 105 USDC from their loan