This document describes the requirements for the Deffectbolo Credit and Loan financial platform, which is the lending of money by individuals without a financial institution. The platform uses the advantages of Blockchain and Smart contract technology to automate all currency lending processes. The available currencies for lending are Token on Tron Main Net, crypto-valued assets and fiat currencies like Stable coin.
This document is prepared for the entire development team to design, program, verify, and implement the platform.
In this application we develop the Deffectbolo platform with the collateral (DBLp) seamlessly integrated into the Deffectmodule (DML). They share the same interface and security models (User Roles and Rights).
The available loan currency is Token on Tron Main Net or DEF. Collateral will only be charged by valuable coins. However, the platform needs to be designed in a way that can be widely improved with more cryptocurrencies or fiat currencies in the future.
The DBLp platform includes the following features:
· Only sign on
· P2P loan settings
· Features Loan request of Borrower
· Funding features for loans deposited by depositer
· Smart contract
· Interface with Smart contract
· Interface with Creditability services
· Dashboard & Reports
To satisfy the requirements of this project the following assumptions and constraints must be as follows:
The Deffect module is a separate project and must be completed before being integrated into the DBLp.
In UI/UX design point of view, DBLp must have the same interface and security models as the Deffect module.
- Calculating and providing credit scores of borrowers is a separate project and must be completed before being integrated into DBLp.
The DBLp platform includes borrower, depositer, creditability services and smart contracts. The following chart provides an overview of the entire platform.
· The balance of depositer will be displayed on each token.
· Lenders create their investment profiles. This money will be used to finance loans to buy tokens of other value, scalable on the mulitple chain of ETH, EOS, Tron main net.
· Borrower makes a loan request.
· The system refers to the loan information, it´s settings and creditability services to determine the value of the collateral by the valid Token.
· Smart contract is created and requires Borrowers to deposit collateral token into a multi-confirmation wallet. If no action is taken, the loan request will be void and canceled.
· If receiving collateral, System will provide loan to Loan request pool.
· Lenders choose a loan on Loan request pool to finance. The loan can be funded by multiple Depositers.
· Auto Loan Financiers can also view the loan to determine the amount from the credit record.
· When funding is completed before the due date or Borrower accepts partial funding,
· Smart contract is updated with credit profile information and payment terms and conditions
· Money transfer system from multiple credit parties to Borrower's wallet (Crypto types are available in the credit sending section)
· During the payment period, Smart contract will be activated to notify Borrower with the following actions:
- Due installments
- Due penalties
- Updated collateral
During the payment period, Borrower may installments, VALUE TOKEN deposit to update the collateral and/or pay penalty for late payment.
Smart contract informs the System of actions taken by Borrower outside the System to update loan status, serve statistics and creditability services.
Due to delayed payment, Smart contract may be terminated, and collateral will be sold to pay loan and penalty.
If Borrower successfully completes all payments, Smart contract will release collateral to Borrower and the System will update loan status accordingly.
Although the DBLp platform is a separate system with DSC, the system will use the Login mechanism using the wallet connection method to authenticate users. Users, User Roles, and Rights will be managed in the Deffect module and are inherited in the DBLp platform.
There will be a P2P Loan menu item in the Deffect module that links the Deffect module to the DBLp system. When the User logs in from the Deffect module and clicks on the P2P Loan menu item, it will direct the user to the DBLp system and maintain the user sessions. The user can then transparently return to the Deffect module.
The system will have a Settings page where Deffect Administrator can configure the necessary settings for Loan settings. These include the following:
- Loan validity period (days)
- The valid period until the loan expires for funding
- Monthly interest rate (%)
- Applies to loans created on a specific month
- Collateral rate for the loan - DLR (%)
Used with Creditability services to calculate collateral
- Time to receive collateral (hour)
- Estimated time to receive the collateral after the loan is created
- Maximum loan term (month)
- Payment reminder time (days)
The days before the due date that the smart contract will send reminder email
Late Payment Settings:
- Warning time (date)
- Delayed payment time is considered a warning. A reminder email will be sent to Borrower.
Dangerous penalty period (days)
- Late payment after the warning is considered penalties. Penalties will be charged and applied to Borrower
- Dangerous penalty rate (%)
- Percentage of installments that Borrower would have to pay during the Critical Penalty period.
- Termination time (date)
- Late payment term after Dangerous penalty is considered contract termination. Collateral will be sold to pay the loan and penalty
The system will provide functions for Borrower to create Loan requests. Borrowers must be active users in the DSC system and have purchased at least one token package on Tron main net. When Borrower creates a loan, it is necessary to capture the following information:
Use of Loan:
· A predefined Loan Usage Category (The Token Pool provides this listing) and free format text of loan usage provided by borrower
· Loan amount (calculated according to Token on Tron main net)
· The amount the Borrower wants to borrow
· Loan period (calculated by month)
· The system can calculate the monthly installments and the loan completion time.
At the time of loan creation, all current Loan settings and Deferred Loan settings apply. Loan status is “Collateral pending”.
The system will communicate with Creditability services and retrieve the collateral ratio on the loan to calculate the collateral using Token on Tron main net. In addition, the credit score will be attached to the loan.
After Borrowers send the collateral token on Tron main net to Deffectdeposit, the loan will be available on the Loan Request Profile for Lenders. Loan status updated to “Funding”.
Borrowers may see a list of their current loan requests. The Loan List must contain at least the following required information:
· Loan ID
- Creation date
- Amount of loan
· Loan duration
· Credit points
- Due date
· Funded (%)
· No. of Lenders
· Users may arrange on any of the above fields.
· User may also filter the list with the following options:
- Range of created data
- Range of expiry date
· Users can also click on each loan request to view details. The system reveals more information such as:
- Terms of payment
- Number of installments
- Payment milestone
- Use of Loan
- Loan log
- List of Lenders who funded the loan
If the fund is completed, the loan is settled. The system transfers Token from Lenders' wallet to Borrowers wallet.
If the funding is not fulfilled, Borrower can cancel the loan at any time during the validity period.
When the loan expires, if the loan is partially funded, Borrower is allowed to accept the loan in part or decline the loan.
The following table describes the loan status and how they are updated chronologically. The loan status is referenced from this article.
Loan has been created. No collateral has been deposited
Borrower has deposited collateral to the multisig wallet. Loan is available to the loan request pool for funding
The loan is fully funded by Depositers
The loan is partially funded, and Borrower has accepted it
In Grace Period
Loan has been funded. No installments have been paid
At least one payment has been made
All payments have been made
When any payment is late. If payment is made again, it goes back to “Current”
When it passed the termination period without the payment, the smart contract is selling the collateral to pay the loan and penalties
After the loan has been defaulted upon and all actions have been completed, i.e the collateral has been sold
Borrower has canceled the loan before it expired.
Loan that has not reached full funding and been refused to take partially
The system provides an Investor profile page so that Depositer can manage their investments. This investment profile will serve the Automatic Loan liquidity functions. The AutoFunding Loan functions will be described in the following section.
Automatic Loan Funding
- If this feature is enabled, Auto Loan Funding will be applied with the following settings. If not, the others are disabled
Minimum credit score.
- Minimum credit score attached to a loan that Lenders allow to finance
- Use Priority Loan (Multiple)
- How to use a priority loan that Lenders accept to finance
- Funding amount for each loan
- The amount of funding that Lenders want the System to automatically finance the loan to meet Investor profile
- Loan period
- Loan period that Lenders accept to finance
- Minimum interest rate
- The minimum interest rate that Lenders accept to finance
- Country of Borrower (Many)
- Countries where the Lender accepts funding
· The system displays a pool (list) of available Loan requests for Lenders to review and fund. Lenders can review all details of a loan before funding.
· Lenders are fully able to finance a loan or make a part with a specified amount. When a loan is fully funded, the System will transfer Token from Lenders' wallet to Borrowers wallet. When Borrower accepts a part of the money, the System will transfer Token from all Lender's wallets to Borrower's wallet.
· Lenders can further fund a loan he has funded by Auto Loan Funding if the loan is still available.
· When Lenders fund the loan, the System must ensure the loan is not over-funded by verifying any amount of the fund.
The system provides landing pages for all Lenders to navigate, research and filter all loan requests. Loans pending without collateral will not be listed.
The Loan request pool contains the Loan request list with filtering and sorting capabilities. The loan request must contain at least the following required information:
· Loan ID
· Date created
· Loan period
· Credit score
· Interest rate
· Expiration date
· Funded (%)
User can arrange on any of the fields above.
The user can also filter pools with the following options:
· Range of created date
· Range of expiry date
· Range of loan
· Duration of loan
· Range of credit scores
· Range of interest rate
· % funded
· Users can also click on each loan request to view details. The system reveals more information such as:
- Information of the borrower
- Payment provisions
· No. of installments
· Payment milestones
· Using loans
· List of credit profiles funded the loan.
Lenders have a page to view their funded loan list with status. He can also review the loan details and the logs updated by Smart Contract.
The list should be similar to the Loan request pool but instead of showing all loan requests.
Deffect Auto Loan Funding Feature
This feature is promoted by Investor profile. Based on Lenders priorities, when a loan is available on the Loan request pool, this feature will be activated. It will search for the appropriate Investor profile.
There can be multiple Investor profiles that match. The system will use Round Robin algorithm to prioritize Lenders choosing investments. For example, if the System has to decide between 2 investments, the System will select one of the previously unselected Lenders.
Smart contract feature is the core of the DBLp project. It will be created on the Ethereum blockchain with the Deffectsolidity language. Implementing it will participate in most parts of the lending process.
Smart contract is created with Borrower information, collateral value and payment terms including payment amount, payment milestones, instructions on late payment and penalty. Specific payment dates and Lenders information will be met once the loan is funded.
Smart contract creates a wallet multisig to store collateral Token. The owners of the wallet multisig are Borrower, Smart contract and the Lender (filled out when the loan is funded). It also has email instructions to Borrowers about the amount token and the due date for sending token collateral.
An API/Service needs to be implemented to listen for any events occurring on the Smart Contract to provide a log to the DBLp system i.e. an update on the Borrower's sending VALUE TOKEN into a multisig wallet or depositing into an about due fund without depositing. Based on that information, DBLp decides how to process the loan.
If the Borrower cancels the loan request or refuses to accept part of the capital, the Smart Contract will terminate
An API/Service needs to be deployed to listen to any events happening on Smart contract to provide a log to the DBLp system, i.e. update of Borrowers sending VALUE TOKEN to wallet multisig or escrow The margin is about to expire without escrow. Based on that information, DBLp decides how to process the loan.
If Borrower cancels the loan request or refuses to receive a part of the capital, the Smart contract will end.
When a loan is funded or accepted with a portion of the capital.
The system provides Smart contract with information of the creditor. Smart contract is updated with information of the creditor and specific billing date.
When an installment is due, based on the loan settings, Smart contract will decide to send a reminder email with instructions on when and how to pay.
If the payment is made on a Smart contract, it will notify the System to monitor the notification status and log.
If a late payment occurs, based on the Payback setting, the Smart contract will calculate the penalty and send another instruction on how and when to pay the penalty.
Until then, if no payment has been made and the deadline for termination is reached, the Smart contract will sell the collateral. Values will be transferred to Lenders wallet and Deffectbolo central wallet.
At the specified time, Smart contract pings to a selected Crypto Exchange to receive the token rate. If the rate decreases, meaning the collateral value decreases, Smart contract will provide email instructions to Borrower on when and how to send tokens to balance the ratio.
API/Service continuously listens to events happening on Smart contract. These updates will be made available to the System for loan status and log updates.
When Smart contract is being executed, there should be API/Service to be deployed on DBLp platform to receive and/or provide updates from/to Smart contract feature. It can act as an Event Handler to listen for all ongoing events and updates from the Smart contract.
The aim is to update loans, Borrowers and Lenders with the latest actions/events happening on Smart contract. It can respond or provide some feedback to Smart contract in ways to monitor the loan.
Currently, there are no additional requirements for solutions and architecture for API/Services. They will be identified in the steps after which the development team decides the solutions.
Based on the assumption that this service is a project separate from the DBLp platform, the scope is to develop interfaces to invoke this service.
When Borrower creates a loan, the System collects all necessary information and sends it to Creditability services. The system expects to receive a Credit Score for Borrower in connection with the loan.
Once the loan is completed, the loan can be paid in full or terminated according to the terms, then the System will collect all necessary information of the loan and Borrowers information to send to Creditability services. This step is required to provide data for future scoring.