# \[TEMP CHECK\] Introducing "Curator" by Llama

**URL:** <https://governance.aave.com/t/temp-check-introducing-curator-by-llama/13972>\
**Category:** Governance\
**Created:** [July 11, 2023, 6:36pm UTC](https://governance.aave.com/t/temp-check-introducing-curator-by-llama/13972 "2023-07-11T18:36:59Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Llamaxyz](https://dub1.discourse-cdn.com/flex013/user_avatar/governance.aave.com/llamaxyz/32/2044_2.png) [@Llamaxyz](https://governance.aave.com/u/Llamaxyz)\
**Post date:** [July 11, 2023, 6:36pm UTC](https://governance.aave.com/t/temp-check-introducing-curator-by-llama/13972/1 "2023-07-11T18:36:59Z")

</div>

* * *

title: [TEMP CHECK] Introducing “Curator” by Llama  
author: @Llamaxyz - @TokenLogic, @dydymoon and Fermin  
created: 2023-07-11

* * *

# Summary

This publication introduces the `Curator` by Llama.

The `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

# Motivation

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`. 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 `Curator`can be interacted with. The `ShortExecutor` must first add each contract address to the `AllowList`.

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.

# Specification

The Ethereum Curator will provide the following functionality to Aave Protocol:

1. Receive assets from the Treasury (assets must be pushed)
2. Redeem aTokens for underlying spanning Aave v1, v2, and v3
3. Swap assets via CoW Swap with MEV protection and using Milkman
4. No reentrant
5. Cancel trade
6. Rescue tokens
7. allowTokens(address tokens) onlyExecutorOrAllowedCaller
8. Deposit ETH into Lido Finance Protocol to receive stETH
9. Wrap stETH to create wstETH
10. Deposit ETH into Rocket Pool’s contract to receive rETH
11. Transfer assets to Treasury
12. Call a function to deposit assets in Aave v3 on behalf of Treasury
13. Allow-list tokens/contracts that can be interacted with
14. 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 `ShortExecutor`.

# Next Steps

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].

# Disclosure

@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

Copyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/).

---

<div class="post-metadata">

**Author:** ![system](https://europe1.discourse-cdn.com/flex013/uploads/aave/original/2X/e/e11637c36f45ffa158f2146f5c19438d46e0824d.svg) [@system](https://governance.aave.com/u/system)\
**Post date:** [August 10, 2023, 6:37pm UTC](https://governance.aave.com/t/temp-check-introducing-curator-by-llama/13972/2 "2023-08-10T18:37:55Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
