This publication introduces the
Curator by Llama.
Curator is a dedicated contract for managing the exchange of assets with MEV and price-impact protection, where possible.
The below provides a high level overview of the functionality provided by the Curator:
- Swap Assets
- Acquire LSTs
- Transfer Assets
The DAO is required to exchange assets. This could be to reduce the DAOs exposure to long tail assets or to increase stable coin holdings to facilitate payment to various service providers. It is not possible to perform swaps directly from the Collector / Treasury Contract. After much discussion, @llamaxyz and @bgdlabs have concluded that it is not viable to upgrade the Collector Contract to facilitate the efficient management of the DAO’s assets. As a result, a series of separate contracts are required.
A part of this solution is the
Curator receives assets from the Collector / Treasury Contract, swaps (or deposits) assets and sends the newly received asset to another address. The
Curator is intended for solely exchanging assets and not holding assets.
The first iteration of the
Curator is to be deployed on Ethereum and then later introduced to other networks. On Ethereum, the
Curator is to interact with CoW Swap, Lido Protocol, and Rocket Pool contracts.
To limit the surface area of the contract, an
AllowList will define which contracts the
Curatorcan be interacted with. The
ShortExecutor must first add each contract address to the
It is possible to assign the
curatorRole() to a specified wallet address, Treasury Manager. The
curatorRole can then only interact with contract on the
AllowList set by governance. The
AllowList eliminates the risk of the
Curator interacting with a malicious contract or running away with the DAO’s funds. The intent is to implement the highest heirarchy of control.
For future deployments of the
Curator on other networks, the aggregator protocol used to swap assets with MEV protection does so over a lengthy time horizon. This prevents any further steps performed by the same AIP submission. In these instances the
curatorRole offers more flexibility and reduces the AIP overhead.
Each Curator deployment will contain different functionality tailored to that network and Aave DAO’s needs. As a result, each deployment will be presented to Aave DAO as an [ARFC] proposal for the community to discuss and vote on.
During the intial deployment on Ethereum, @Llamaxyz advocates for using the
ShortExecutor to perform all the necessary transactions. The
curatorRole can be assigned at a later date.
The Ethereum Curator will provide the following functionality to Aave Protocol:
- Receive assets from the Treasury (assets must be pushed)
- Redeem aTokens for underlying spanning Aave v1, v2, and v3
- Swap assets via CoW Swap with MEV protection and using Milkman
- No reentrant
- Cancel trade
- Rescue tokens
- allowTokens(address tokens) onlyExecutorOrAllowedCaller
- Deposit ETH into Lido Finance Protocol to receive stETH
- Wrap stETH to create wstETH
- Deposit ETH into Rocket Pool’s contract to receive rETH
- Transfer assets to Treasury
- Call a function to deposit assets in Aave v3 on behalf of Treasury
- Allow-list tokens/contracts that can be interacted with
- Allow-list Executor and approved multisig, CuratorRole().
The Curator will contain an
AllowList defining which contracts the contract can interact with. The
AllowList can only be updated by Aave Governance via the
Upon recieving a favourable Snapshot vote, @llamaxyz will continue finalising the payload in preparation for submitting to @BGDlabs for peer review. An [ARFC] post will be shared and progressed through governance.
The [ARFC] publication will provide greater insights to the functions on the contract and the Treasury Committee will be a separate [ARFC].
@llamaxyz is a service provider to Aave DAO. Llama is not presenting this ARFC on behalf of any third party and is compensated by only Aave DAO for creating this ARFC. This is the sole work of the named authors.
Copyright and related rights waived via CC0.