Open Term Loans
Accounting
Asset Definition
Loans manage one asset: fundsAsset
.
fundsAsset
fundsAsset
This represents the ERC-20 token that is used to facilitate the funding, drawing down, and payments during a loan lifecycle. Typically this would be a stablecoin such as USDC, DAI, or USDT.
Payments
Borrowers have the flexibility to make payments, including partial principal repayments, against their loans at any given time. All fees, including service fees, along with interest, are pro-rated and calculated based on the exact time of payment or other significant actions such as loan funding or refinancing.
Payments due are comprised of principalCalled + interest + lateInterest + delegateServiceFee + platformServiceFee
Interest
Interest is prorated and calculated from the relevant startDate
till the current block.timestamp
Late Interest
Late payments are also prorated and based on the lateInterestPremiumRate
and lateFeeRate
Delegate Service Fee
Delegate Service Fee is prorated and calculated from the relevant startDate
till the current block.timestamp
Platform Service Fee
Platform Service Fee is prorated and calculated from the relevant startDate
till the current block.timestamp
Due Dates
There are two virtual variables paymentDueDate()
and defaultDate()
that define the relevant due dates depending on if a payment is late, the loan is called, the loan is impaired, or any combination thereof. To compose these virtual variables, an internal helper function called _dueDates()
is used.
_dueDates()
_dueDates()
Returns the due dates for callDueDate
, impairedDueDate
and normalDueDate
callDueDate
callDueDate
impairedDueDate
impairedDueDate
normalDueDate
normalDueDate
paymentDueDate()
paymentDueDate()
_defaultDates()
_defaultDates()
Returns the due dates for callDefaultDate
, impairedDefaultDate
and normalDefaultDate
callDefaultDate
callDefaultDate
impairedDefaultDate
impairedDefaultDate
normalDefaultDate
normalDefaultDate
defaultDate()
defaultDate()
Loan Calls
The Pool Delegate (PD) exclusively possesses the ability to commence a Loan Call, specifying the principal amount that must not exceed the current principal balance. In the event of partial Loan Calls, the loan continues with a reduced balance but the same terms. Conversely, a complete Loan Call leads to the loan maturing once the borrower repays. Upon a Loan Call by the PD, the borrower is obligated to settle the demanded amount within the Notice Period or risk the loan defaulting.
The PD also has the power to withdraw a Loan Call, which reverts the payment schedule back to its original state prior to the Loan Call. If a Loan Call is actioned on a late loan, the PD has the discretion to default the loan at the termination of either the Notice Period or the Grace Period, depending on which comes first.
It's worth noting that refinancing is considered a valid resolution to Loan Calls, with such calls being settled once the parties agree to new terms.
Fees
Open-Term Loans have delegateServiceFees
and platformServiceFees
which are prorated and calculated on each payment.
Closing Loan
If a Borrower wants to close a Loan, they can do so by calling makePayment
with a principalToReturn matching the outstand principal.
Initialization Parameters
borrower
- The address of the borrower.lender
- The address of the lender.fundsAsset
- The address of asset that the loan is denominated in.gracePeriod
- The amount of time that the lender needs to wait before triggering a default on a late loan.noticePeriod
- The maximum amount of required for the Borrower fulfill a loan call.paymentInterval
- The amount of seconds between each loan payment.interestRate
- The annualized interest rate.lateFeeRate
- A fee rate applied on principal amount on late payments.lateInterestPremiumRate
- A premium added on top of the interest rate for late payments.delegateServiceFeeRate
- A rate of funds assets that is added on every payment destined to the pool delegate.
Last updated