AIP - 36: Remove the dust parameter from the Borrowing module


This is a proposal to remove the dust parameter from the borrowing module across all chains and for all collateral assets.


The dust parameter for a collateral in the borrowing module corresponds to the minimum amount of debt each position with a borrowed amount should have.
On mainnet, this amount stands at 10,000 agEUR, which means that to borrow agEUR, you need to borrow at least 10,000 agEUR.
On Polygon, this amount is 20 agEUR, and on Optimism and Arbitrum, it is 200 agEUR.

The reason for having such a parameter is to avoid bad debt in all circumstances. The borrowing module relies on liquidations, and if positions are too small to incentivize liquidators to come, well they simply never be liquidated, and they risk creating bad debt for the protocol where the value of the collateral becomes inferior to the value of the stablecoin debt.

While theorically all lending protocols should have a dust parameter, setting a dust also makes the UX very bad for users. It creates frictions for users which want to borrow small amounts and makes the protocol not affordable at all or usable at all by a wide range of DeFi users.


The proposal here is to set the dust parameter to 0 for all the collateral assets of the Borrowing module across all existing chains.


Doing this upgrade implies upgrading the implementation used by the VaultManager contracts across all chain, since dust parameter is an immutable variable in the code.

Value to the protocol

Removing dust should eliminate a lot of the barriers for borrowing agEUR. It should reduce the friction faced by users when dealing with the Borrowing module of the protocol. While the borrowing module relies on a tech that is supposed to be more advanced than Aave V3 or other lending protocols, it hasn’t been used to its full extent as it should, and these dust parameters are probably one of the reasons for this.


This proposal does not come without risk as it may lead to the creation of bad debt within the protocol.
This dashboard for instance shows what bad debt different lending protocols have.

Average bad debt for a position which has bad debt on Aave is $100, it’s $388 on Compound and $7.6k on Maker.

If bad debt was to be accrued across many positions, it would most likely be only small positions so that it does not really affect the overall health of the system. The protocol’s liquidation mechanism is coded such that liquidations can be batched. As such, if positions are not profitable to be liquidated individually, it may be profitable to liquidate them jointly in the same transaction. This means that if the protocol started to accrue many positions with a bad debt, some liquidator could simply batch-liquidate them all.

We’ve made a simulation of the costs/profits for liquidating, the cost of an attack that would consist in creating many small positions, the scale costs made by liquidating multiple positions in the same tx.
Conclusion is that attacks cannot be profitable and that risk of accruing too much bad debt with the protocol is really limited.

As always, please comment any input you might have!

1 Like

Hi @sogipec,

I have full confidence in the team and in your study. Let’s move forward.


Hey! I have two questions:

  1. I see the Dust computer sheet. I’m in read only mode, but what happens if we make the gas price go up (say x2? or x4)? and / or Eth price go up / down? Is it still ALWAYS unprofitable for the attacker?
  2. Are we sure removing the dust parameter will indeed increase the usage of the protocol? Are we sure adding a security risk (and a serious one) is worth it? :slight_smile:

Sorry forgot to answer on the forum for this one!

  1. You should be able to fork the Excel and make your own simulation for it
  2. We have no guarantee of this, but we know for sure that the cost of attack is pretty high. Good argument also for removing it is that Euler, Aave and Compound (major lending protocols) also do not have such a parameter and their bad debt remains pretty limited at this point

The vote passed on November 19th 2022: Snapshot