Simple summary
Introducing a new Aave ClinicSteward
smart contract, with capabilities to liquidate and repay non-healthy positions with bad debt on Aave v3, using funds of the Aave Collector, this way cleaning up all Aave v3 bad debt before the activation of the upcoming Umbrella.
Context
Since the initial Aave v3 activation three years ago, due to the nature of liquidations, the system has accrued a minimal bad debt of approximately $400’000. This amount is pretty irrelevant in comparison with the ~$12 billion outstanding borrowings, but given the imminent activation of the Umbrella system (to automatically cover bad debt), and the recent upgrade of Aave to v3.3 (formally accounting for deficit/bad-debt post-liquidation), we believe it is appropriate to raise a proposal to clean the “legacy” bad debt, and this way start with clean accounting.
The Aave ClinicSteward
is a smart contract that simply facilitates for a permissioned entity to execute the clean-up on behalf of the DAO, by authorizing a constraint budget from the Aave Collector for exclusive usage on liquidations/repayments of unhealthy positions (liquidatable).
Specification
The Aave ClinicSteward is a highly permissioned and constraint steward smart contract, that allows for the following:
- Batch liquidate. Allows to liquidate positions on the configured Aave Pool, by pulling the asset to repay from the Aave Collector, and transferring the liquidated collateral back to the Collector too.
- Batch repay. On Aave v3 there are some existing positions pre-Aave v3.3 with “pure” bad debt: they have outstanding borrowings, but exactly zero collateral.
For those cases, this steward contract allows to just repay and zero that debt, even if no collateral is recovered.
In terms of access control, the system is permissioned in the following way:
-
To be able to access any funds from the Aave Collector, the Aave governance needs to give
FUNDS_ADMIN
role to each ClinicSteward associated with an Aave v3 pool. -
There is a strict budget constraint (in USD) for the amount the steward can pull from the Collector (table after).
-
A
DEFAULT_ADMIN_ROLE
acts as “a super-admin” of the steward, with permissions to enable any other address to call the batch liquidate and batch repay methods. This is designed to be assigned to a multi-sig smart contract, which in our opinion could be one of the denominated currently composed by ACI, TokenLogic and Kpk, with 2-of-3.
Given that the initial setup via governance will assign one initial CLEANUP_ROLE, we don’t expect this multi-sig to be used. -
A
CLEANUP_ROLE
acts as the address that will factually trigger the liquidations/repayments. This is designed to be an EOA, given that its capabilities are limited by:- The
DEFAULT_ADMIN_ROLE
granting permissions. - The steward contract has a constraint of maximum budget (in USD) to spend, which only the Aave governance can modify.
Our recommendation is to use an EOA of the Dolce Vita service by ACI for this role, already in use for multiple other aspects now and in the past (migration of deprecated stable debt positions, accrue of fees to the treasury, etc).
- The
-
The contract is not designed to have any funds at rest, so it has Rescuable capabilities to send any token there to exclusively the Aave Collector.
In terms of budget constraints per network (maximum allowance that the ClinicSteward will be able to use from the Collector), the idea is to be able to cover current levels of bad debt per network, with some extra margin on top.
This allowance can be potentially renewed in the future, but only via another Aave governance proposal.
Network | Maximum allowance |
---|---|
Ethereum core | $30’000 |
Ethereum prime | $5’000 |
Polygon | $30’000 |
Avalanche | $350’000 |
Arbitrum | $60’000 |
Optimism | $5’000 |
Base | $15’000 |
Metis | $1’000 |
Gnosis Chain | $1’000 |
BNB Chain | $2’000 |
Scroll | $1’000 |
ZKSync | $1’000 |
Linea | $1’000 |
*Total expenses will potentially be substantially lower than “Maximum allowance”, as in the majority of the cases, some collateral will be sent to the Collector, even if this is lower than the debt of the position.
** v3 Avalanche being substantially higher than in other networks is due to the USDC de-peg event on 11th March 2023
In addition to all its constraints, the ClinicSteward is been audited by Certora, and we will share the report on this forum once completed.
Next steps
- After some days in this forum, we will create an ARFC Snapshot for the approval of the ClinicSteward.
- If ARFC Snapshot is approved, an on-chain proposal to the Aave governance to assign the required roles to each ClinicSteward.