Compounding Model

In order to provide maximum flexibility to both Depositors and Borrowers, interest payments are automatically integrated in Deposit and Borrow Balances and are compounded at every block.
To compute each Borrow Balance, we use a specific Denominated Currency called
lTokenlToken
. When a new Lending Pool is created for Token A, we create a
lTokenAlToken^A
, whose price in Token A unit evolves as follows:
L0A=1andLt+1A=LtA(1+rtdt)L^A_0=1 \hspace{1cm} and \hspace{1cm} L^A_{t+1}=L^A_t (1+r_tdt)
where
dtd_t
is the time period expressed in years. By updating this price, each Borrow Balance can be easily incremented by the interest accrued during the period.
For Depositors, we follow a similar approach by introducing a Deposit Token, or
dTokendToken
, that represents their ownership in a specific Lending Pool. As opposed to
lTokenlToken
, these
dTokensdTokens
are minted and transferred to Depositors in exchange for their deposits.
In order to materialize the accruing interest over deposits,
dTokenAdToken^A
will be convertible into an increasing amount of Token A. With
RtR_t
being the Deposit rate, the price of
dTokendToken
in Token A Unit, or
DtAD^A_t
, evolves as follows:
D0A=1andDt+dtA=DtA(1+Rtdt)D^A_0=1 \hspace{1cm} and \hspace{1cm} D^A_{t+dt}=D^A_t (1+R_tdt)
Upon withdrawal, Depositors can redeem their
dTokenAdToken^A
for Token A at the current price, reflecting their deposits plus the interest earned.