This is a proposal to add more granularity in the dust amounts in the borrowing module and introduce a dustLiquidation
parameter such that:
- everyone can still open borrow positions of any size
- But if your debt is below a certain
dustLiquidation
amount, then if you get liquidated, all your debt can be repaid, and not an amount such that the position goes to a target health factor as normally done.
Context
A couple of weeks ago, we removed the dust parameter from the borrowing module so that there’s no longer a minimum needed when borrowing agEUR.
This article explains the rationale for removing the dust and the reason why it can be a big UX improvement for borrowers across the protocol.
Removing dusts may open the gate to more small positions hard to liquidate across the protocol. One thing to have in mind though is that the liquidation rules were conceived so that liquidations are the same regardless of the size of your position.
That is to say: if you have a position with 15k€ of collateral and 10k€ of debt, then if you have to be liquidated (for instance if collateral factor for this collateral is 0.6), then you’ll be liquidated such that the health factor of the position goes to a target: like 1.05.
In this case, with CF = 0.6 and assuming no protocol surcharge or discount, amount liquidated will be (1.05 x 10000 - 15000 x 0.6) / (1.05 - 0.6) = 3333.33
But now imagine that instead of having a 10k€ debt, you have 15€ worth of collateral and a 10 agEUR, then you’ll be liquidated 3.333.
The thing is that while the lack of dust may open the protocol to bad debt, there may be some amount of debt from which we no longer want the rule of the target health factor to apply, and to instead liquidate all the debt possible.
Rationale is that if you’re not profitable repaying 3.33€ and getting a proportional amount of discounted collateral, you may be profitable liquidating 10€ in this case.
Proposal
What we propose here is to add more granularity in the dust and add a dustLiquidation
parameter such that if your debt is below this value, and if you get liquidated, you’re at risk of being liquidated the full value of your debt and not just an amount such that you’re back to the target health factor.
Implementation
This is in fact a minor change in the code, and can be done by just changing one line in the liquidation process.
We are currently thoroughly testing this change, but haven’t found any issue with the proposed implementation so far.
We propose setting this dustLiquidation
parameter to the old dust value on each chain, that is to say:
- on Ethereum: 10,000 agEUR
- on Avalanche and Polygon: 20 agEUR
- on Optimism and Arbitrum: 200 agEUR
Value to the protocol
It reduces the exposure of the protocol to the risk of bad debt as it’s possible that positions become profitable to liquidate (but wouldn’t be in the other case).
The drawback is that it makes the protocol slightly less borrower friendly for positions with smaller amount of debt because liquidations become more impactful in this case