Co-authored with Rafael Contreras and Ohad Bachner
Collateralization and overcollaterization of loans are great methods to protect the lender … but they require the borrower to somehow have saved or have been lucky to own enough collateral to post (e.g. by having bought some crypto asset that has increased in value).
Uncollateralized loans allow a borrower to use their future (unknown) earnings as an indication of their ability to repay. This “temporal transfer” of wealth from one holder to another allows the growth of the economy as the dormant capital is used today by the borrower in a more efficient way. The caveat is that some borrowers might miscalculate their ability to repay while others might be outright fraudsters which leads to the loss of capital.
In Decentralized Society: Finding Web3’s Soul Vitalik clearly identifies the uncollaterization issue in Web3 as well as proposing a solution that uses Soul Bonded tokens.
“Perhaps the largest financial value built directly on reputation is credit and uncollateralized lending. Currently, the web3 ecosystem cannot replicate simple forms of uncollateralized lending, because all assets are transferable and saleable — thus simply forms of collateral. The “traditional” financial ecosystem supports many forms of uncollateralized lending, but relies on centralized credit scores to gauge creditworthiness of borrowers who have little incentive to share information about their credit history.”
Traditional finance has developed many techniques to reduce the risk of default such as
- a “credit score” (eg FICO) that is used to evaluate a borrower’s potential,
- an interest rate that is able to cover the defaults on a large portfolio of loans,
- repayment schedules that minimize the default losses,
- post default debt recovery methods
All of these techniques can be fine tuned to provide profits for the Loan provider (or at a minimum break even). There is no single ‘magic’ structure, the parameters need to be selected by the lenders.
For example, non for profit organizations like Kiva provide no interest loans with extremely flexible repayment schedules to clearly identified individuals; other lending institutions prioritize profits by reducing the pool of applicants on a very fixed schedule and default penalties.
DAOs with excess treasury holdings can decide to deploy them in a variety of assets, including lending to new ventures or defined population sets. Another example from Vitalik from the same paper:
“For example, a constellation of SBTs that show certain programming credentials, participation in several conferences, and work history might be sufficient for a Soul to take a loan (or raise seed capital) for their venture”
Chelo’s goal is to allow DAOs to reach their lending objectives (which they will have discussed internally) by providing them access to these kinds of tools.
We need to start step by step, the first being the development of uncollateralized loan contracts and DAO contract management tools.
We are currently working on building the next set of connections that will include the ability to use Web3 credit scoring and Digital Identity tools so let’s jump a little bit into the rabbithole and explore the protocols out there:
DID/reputation protocols in the web3 ecosystem:
Decentralized IDentifiers (DID)
“a type of identifier that enables a verifiable, decentralized digital identity” wikipedia
Gitcoin passport — Passport is a decentralized identifier. Users collect “stamps” from different authenticators around web2 and web3, such as Bright ID and Proof of Humanity.
Notebook — developing KYC on chain anonymous, including DAO engagement and credit score over all the different chains.
NFT3 — NFT3 acts as a unified identity across all Web3 application layers and a pathway toward enabling personal monetization, NFT3 is using DID warp NFT with Multi-chain Aggregation.
BrightID — BrightID is a social identity network that allows people to prove to applications that they aren’t using multiple accounts. It solves the unique identity problem through the creation and analysis of a social graph.
Proof of Humanity — (or PoH) is a social identity verification system for humans on Ethereum. PoH combines webs of trust, reverse Turing tests, and dispute resolution to create a sybil-proof list of humans.
Quadrata — Quadrata Web3 Passport is a privacy-preserving, sybil-resistant technology that brings identity, compliance, and reputation to DApps built on public blockchains.
Spruce — is developing a cross chain ID for users with a private self sorvin storage. They have different tools like DIDKit, Rebas, Keylink, and Credible.
SkillWallet — is a self-sovereign, portable ID based on Skills & Contributions — that unlocks native, role-based Governance for Web3 Communities. Users can immediately prove their Skills & Reputation cross-platform and cross-community — while DAOs can track real human interactions directly on-chain, to evaluate the health and growth of the community.
Reputation scores co-exist with identities, and try to formalize the nebulous concept of ‘reputation’ — which might ( or not) be related to trustworthiness within a community.
rep3 — Formerly known as drepute, rep3 is developing a protocol that lets communities give upgradable, consent-preserving NFTs to their members. These NFTs or badges could represent memberships, work done by the members, participation in calls, etc. These badges feed into most web3 tools, scale with communities, and unlock various use cases.
Orange Protocol — Orange is building Trustless Reputation. They use data provided by different dapps that are easy to deploy to your project.
Disco — is an off chain solution that allows you to show your Reputation and your identity in the metaverse.
A credit score can be considered a special case of a reputation score that indicates the ability to repay a loan. Credit scores by themselves (the famous FICO score in the US) do not explicitly include the probability of default of the individual.
Cred Protocol — Cred is developing credit score protocol, especially for Defi protocols. With cred, you can take a loan with less collateralized, working on prototypes with multiple lending protocols.
Spectral Finance — Spectral compute Web3 creditworthiness or MACRO Score, a machine-learning-based credit risk model.
Web 3 Credit Model
All the above elements are requirements to build a credit model of the portfolio of loans that can provide us answers such as:
- How many loans could default ?
- How many loans could be fraudulent ?
- What interest rate should be charged to cover all the expected losses ?
There are many ways to reduce the quantity of defaults — limit loans only to the highest credit scores, reduce loan amounts, diversify the number of loans to individuals in different locations, professions, etc).
At Chelo we are working on the top level Web3 Credit Model that DAOs could use to be able to provide uncollateralized loans to a set of borrowers (members, outside applicants, etc). To be able to build the Credit Model we are engaging/studying/partnering with the above DID / Reputation score / Credit Score providers.
For details on how the architecture could work, read this proposal we are making to Aragon DAO to develop a tailored Credit Model for a pilot study — we will be expanding this as we work on the project and will report on another following blog.
We are sure there are more out there and we will like to explore them all — please contact us if you are working on something like this so that we work together.
In our previous blog we introduced our set of tools for collateralized loans which involves the use of a new agent called Mini-DAO (please reread the blog if the concept is not already familiar).
The Mini-DAO (refresher)
Code: [github] (private repository — contact us for access)
The Mini DAO needs to approve this loan (the same as with Collateralized loans as explained in our previous blog)
In the Gitbook guide we explain how to use the front end we have developed — we strongly suggest that you read the guide from the link as it might change slightly from time to time.
The (uncollaterized) Loan smart contract
The diagram below shows from a high level the behavior of our smart contracts:
The function createLoan() is called to create a loan without collateral. It can only be called by the Mini-DAO who is the manager of the contract (in a future implementation also the main DAO will be able to call it).
Loan settings are passed to it (principal, repayment, duration, borrower, etc), but it will revert for the following cases: an invalid principal (e.g. principal = 0); if repayment is less than the principal; or the loan duration is less than 1 day.
When an uncollateralized Chelo loan is created all the information is registered in a smart contract followed by a transfer of the funds to the borrower (all in the same transaction).
Code: [github] (private repository — contact us for access)
Once the loan is created it is possible to change and register the status to different states such as:
Code: Loan status [github] (private repository — contact us for access)
The status changes were thought to manage the following loan scenarios:
Borrower defaults, but negotiates an extension agreement with the DAO: If a borrower defaults a loan (he doesn’t repay before the limit day) and the user can get in agreement with the mini DAO to extend his repayment date to be able to keep paying the full amount, the DAO can choose to wait before marking the loan as defaulted. (A loan won’t be marked as defaulted until the mini DAO decides to do it so)
Code: [github] (private repository — contact us for access)
Changing default status to resolved: If the loan is marked as defaulted AND the borrower never repays the loan by normal means, but the DAO and the borrower negotiate an (external ) agreement with the DAO, it can still be marked as ‘Resolved’. (Meaning that the loan has been resolved by external means — Currently the ‘Marked as Resolved’ use case is still under development in our interface ).
Loan marked as defaulted but borrower still repaying the loan: Even if a DAO already has marked a loan as defaulted, it can still be repaid. Once the loan is marked as defaulted an event is triggered that records the default event in the blockchain. A borrower (or someone else, a benefactor) can still repay the loan, which will change the status of the loan to ‘Fully repaid’. This method will record late payments (which in the future might be used for credit scores.
Code [github]: (private repository — contact us for access)
What to do in case of default
Defaults will happen — unfortunately for uncollateralized loans the ability to claim back a compensation is low and must be negotiated off-chain.
If the borrower does not repay the loan at the loan maturity, the DAO will take the loss but will also be able to mark that loan as Defaulted on chain (which in the future will be used as a credit score input to avoid the same kind of risks).
The Mini DAO Needs to call the function markLoanAsDefaulted(ILendingPool pool, uint256 loanId) from our LoanManager.
They can do this using our user interface by setting a Mini DAO vote to “Mark a loan as defaulted” followed by a successful vote.
Loan repayment after default
Defaults might have many causes ranging from genuine mistakes (forgetting to pay on time) and/or mismanaged cash flows, adverse market conditions (losing a job, accidents), to fraud.
We expect a default will be discussed in a forum off-chain, and want to allow satisfactory default resolution for non fraudulent cases.
For example a borrower in default can repay the loan even after the mini DAO marked it as in default. If that has been agreed elsewhere by other means (i.e. negotiation, separate collateral transactions, etc) the Mini DAO can mark the loan as *Resolved*.
Meanwhile for more information you can find it on our: