This project uses a factory contract to spawn new loan pools. This combines a browser-based frontend with the ethereum smart contract using web3.js. Anyone can create the pool using the form on the application. During the creation of the pool, the pool creator needs to fill in the necessary details and, need to choose the lending pool between Aave & Mstable. Based on the choice, a new smart contract will get generated using the factory contract. The details of the pool will get stored on the graph using the-graph SDK. The participants will be able to join any chit fund pool available to participate from the frontend. They need to deposit the collateral amount and, the collateral will generate a yield from the lending platforms (Aave or Mstable). The loan auction will start once at least 2 participants will join the pool. During the auction, the participant can bid the amount to win the loan if they want. The number of the auction will depend upon the total number of participants in the pool. The highest bidder will be able to claim the loan, once the auction period will be over. The loan amount will be equal to the loan amount - bid amount (the loan amount is also equal to the collateral deposited at the beginning). The bid amount will remain stored on the lending pool and it will get distributed among all the participants with yield generated from lending pools after all auctions. The advantage of this approach is that the last participant gets the loan interest free and on top of that earns interest on the collateral. The interest paid by other borrowers is used to earn an additional interest which is also distributed among all the participants.
Pooled loan is a chit fund pool that makes use of lending borrowing protocols to earn interest. The participants can bid to take a loan. This bid amount is used to earn additional interest & distributed among all the participants at the end.
This project uses Lending Pool (Aave and Mstable) for generating yields on all collateral amounts deposited in the pool. If the pool is of Aave then, every participant's collateral (in DAI) will directly get deposited to the Aave Lending pool to earn interest. And, If the pool is of Mstable then, The deposited mUSD collateral will gets deposited in the SAVE contract of mStable to earn interest.
This project also uses the 0x protocol SDK to get the collateral asset. For example, If the collateral asset is mUSD and, the participant has DAI so, they can exchange DAI with mUSD using 0x at the time of participation. The Graph and Marlin are also an important part of this project. The subgraph stores every information (pool, participate, bid, claim, etc.) about each pool using the factory contract. And, Marlin Cache is being used for faster access to data from The Graph. The pool information displayed on the dashboard is coming from The Graph using Marlin Cache.
The smart contract is written in solidity. The Metamask is being used for connecting wallets and, forwarding transactions to the ethereum blockchain. The frontend is implemented in React.js. We are proud that we could implement this in a relatively short time. The factory contract makes it easy to spawn new pools.
Note: Currently, Swap will not work because 0x protocol is unstable on Kovan Network.