Vault Liquidation Mechanism for Centrifuge Trade Finance Assets: A Pre-MIP Discussion
Centrifuge helps asset originators such as ConsolFreight and Harbor Trade Credit tokenize real world assets. Our contracts mint an ERC20 Token (DROP) that represents a security in the pool (to learn more, read our thread here.
A key problem for Maker is a reliable process to liquidate a Maker vault backed by these tokens.
When a legal entity invests in a pool they enter a legal contract with the issuer and therefore get a claim on the assets in the SPV. When Maker liquidates a Vault backed by these tokens it must have a way to get the DAI repaid by that was generated in the Vault.
We are proposing a liquidation mechanism for short-term loan collateral powered by Centrifuge that does not need an auction without any additional legal structures. The solution proposed here does not work for all of our asset classes, specifically it only makes sense for assets that have a maturity of 90 days or less. For longer term assets an auction mechanism is probably still a better solution.
Assets that fit into this category are receivables, payables, or short term inventory financing. Three asset origintors use Centrifuge and fit into this category. They have ongoing pools of loans and have submitted their MIP6 proposals: Harbor Trade Credit, ConsolFreight and Paperchain.
Auctioning off the collateral or liquidating the underlying loans
Maker’s crypto assets are liquidated through short-lived auctions where keepers immediately flip these assets to get liquidity and can profit on very low margin trades.
Highly volatile crypto assets can quickly decrease in value and borrowers get liquidated from one hour to the next. It is a common occurrence.
Trade finance assets are different. Valuation is stable and defaults are low. According to the International Chamber of Commerce (ICC), global trade finance default rates from 2008-2018 have been well below 1% per year. Asset Originators factor in expected defaults into their interest rate calculations.
For a keeper to participate in an auction, they need to appropriately price the value of the collateral. This is a much slower process if you need to value a pool of loans compared to say ETH.
The additional complexity for pricing these assets coupled with the infrequent occurrence of liquidations means that when such a liquidation happens, it requires more time for a keeper to assess the value of the collateral. While there is a large market of distressed private credit investors, their work as a potential keeper will be different, more expensive, and slower.
The obvious solution if one wanted to stay with auctions would be to extend the auction time frame to days or even weeks to allow for these private credit investors to do their due dilligence and get the necessary liquidity. Which makes this entire process very slow given that the underlying assets have a maturity of less than 90 days.
There is an simple alternative which results in more DAI to be recovered for Maker:
Instead of trying to liquidate the shares (ERC20 tokens) of the pool on the market you can liquidate the underlying portfolio of loans as it matures. You simply prevent the asset originators from issuing any new loans and use all loan repayments to repay investors. This is winding down the pool on maturity of the last loan. For a pool of loans with a maturity date of 60 days (a normal value for trade finance assets) you would see already half of the pool repaid in 30 days.
When given the choice of selling the collateral in an auction over 10 days at a severe discount or just waiting for 60 days for the portfolio to completely mature, letting the portfolio mature is the more sensible choice: it results in a better liquidation price for Maker than trying to find a distressed loan buyer in an illiquid market.
Looking at the traditional financial industry you can confirm this as well: the distressed private credit buyers rarely trade in short term assets such as invoices as this is simply not worth it for either side.
In short: Letting a portfolio of relatively short term loans mature and by stopping the origination of new loans instead of auctioning it off is a reasonable liquidation mechanism for Maker.
How could this work in MakerDAO with our assets?
Our Tinlake Pools are revolving pools and function very similarly to mutual funds. As long as investors don’t ask for any investment to be returned, the asset originator can continuosly reinvest the capital in the pool. When an investor wants their investment returned, any repayments from borrowers are routed to the investors wanting to redeem their investment.
In Tinlake this all happens on chain. The smart contracts manage cash flows from borrowers and investors.
When an investor wants to join a pool, they deposit DAI and the contract mints DROP tokens representing a share in the pool to the investor. This token accrues interest and the contract will allow it to be redeemed for DAI.
When an investor wants to leave the pool, they request redemtion. This redemption request prevents any new loans to be originated and DAI flowing back into the pool will be used to redeem investors. If there is more demand for redemptions they will be made pro-rata to all investors that want to be redeemed. If there is more capital available, then that amount is made available to the asset originator to originate new loans.
This rebalancing is done on a daily basis and is explained in this thread in more detail: Centrifuge: Onboarding RWA Backed Collateral to MCD
Using DROP Redemptions to liquidate a Vault
Maker’s smart contracts are built in a modular way and allow for custom liquidation mechanisms depending on the collateral type. Currently ETH and other non-stablecoin collaterals use the Flipper Auction contract while USDC has no liquidations at all. There is also a discussion for upgrading liquidations for other asset types.
For Vaults backed by the assets issued on Centrifuge, we can create an auction mechanism that allows Maker to automatically trigger the redemption request. As loans are being repaid, Maker automatically receives DAI from the Tinlake contracts guaranteeing that they get their share of DAI in the pool.
We are working to have a prototype implementation of the Tinlake Flipper contract ready to show to the community soon.
How can the DAO be sure the SPV redeems its DROP tokens
Our pools are backed by different investors. They sign a subscription agreement that binds the SPV and the Asset Originator to repay them their DAI plus interest when they want to exit the pool. The SPV is issuing a security and this process is enforced with legal contracts: the investors sign a subscription agreement for their investment.
In the context of Maker a question that comes up: if the DAO can’t sign a contract, then how is it protected by the same mechanisms that other investors get when they sign the subscription agreement?
The agreement contractually binds the SPV to take any repayments by borrowers and deposit them in the Tinlake contracts and let these contracts decide if it can: 1) originate new loans or 2) if the money is needed to repay investors and no new loans can be originated.
As long as MakerDAO can be sure that the Tinlake contracts are used to distribute the money to the investors it has a guaranteed claim on the assets that is equal to an investor’s without any legal relationship.
The only way that these smart contracts can be circumvented is if all of the investors would agree to modify the subscription agreement to permit this. If all investors agreed to try to circumvent Maker and cut it out of the proceeds from the pool.
If just one investor objects to this and doesn’t waive their right to be reimbursed through the Tinlake contracts, they can sue the SPV for securities fraud and have a solid argument in court. To translate this to crypto-lingo: if 1 of n investors is honest, Maker can’t be cut out. So all we need to make sure is that we have some honest investors that pledge to honour the legal agreement they enter into with the SPV.
In the three months we have already had a few Maker community members (and MKR holders) invest in our first pools. These investors already have an interest in ensuring that Maker doesn’t get cut out and the DAO could even elect community members who take on this role by investing a nominal amount in the pools (in theory $1 is already enough to have a sufficient legal claim against the SPV).
This new liquidation mechanism solves two problems at once:
- The challenge of recruiting keepers interested in RWA liquidation and how to design an auction mechanism suitable for these assets
- Coming up with a legal framework that supports the liquidation mechanism: how can the DAO and the SPV safely issue these securities without violating any securities law?
We believe with this liquidation mechanism we don’t see any major obstacles anymore to proceeding on boarding these assets and want to accelerate this process.
As a next step, we are asking the community to provide feedback on this proposal in the next days. In parallel Centrifuge will work with the three asset originators that are a good fit for bringing the first real world assets into Maker:
- ConsolFreight: Freight Shipping Invoices, originated 800k DAI to date, can scale to 1M DAI debt outstanding from MCD by EOY
- Harbor Trade Credit: Trade Finance, going live with a pool of 290k DAI in the coming days, can scale to 5M DAI debt outstanding from MCD by EOY
- Paperchain: Music Streaming Royalties, financed 105k DAI in assets to date, can scale to 500k debt outstanding from MCD by EOY
- We expect to see at least three more asset originators to go live in the coming months that will look to Maker for financing.
In parallel, we are open to implementing this liquidation mechanism in Solidity and provide it to the community to review and comment on. As a result of this, we want to propose a new MIP that streamlines the on boarding for short term assets using Centrifuge following this mechanism.
We’re looking forward to your feedback!