Start a Loan

Initializing a New Loan - Asset Vault or Single NFT

  1. Borrowers can optionally set LoanTerms on their Vault or Single NFT including loan duration, principal, interest, collateral token ID, payable currency, and the number of installment payments.
createLoanTerms(), createInstallmentLoanTerms()
  1. Lenders can also make offers on unmatched Vaults or Single NFTs. Lenders must give an allowance to the lending protocol for the principal of the loan.

  2. Once an offer is agreed upon, the confirming party (Borrower or Lender) signs the loan terms and initializes the loan with the OriginationController.

initializeLoan(), initializeLoanWithItems()
  1. The OriginationController then transfers Borrower and Lender assets to LoanCore.
transferFrom(), safeTransferFrom()
  1. LoanCore starts the loan - minting and distributing PromissoryNotes (ERC721) to borrower and lender in the form of a BorrowerNote and a LenderNote.
mintLoanNotes(), transferFrom(), safeTransferFrom()
  1. LoanCore transfers the agreed upon principal (net of fees) to borrower.
safeTransfer(), startLoan()