In Aave V3, reserve income does not automatically accrue to the treasury, unlike in the case of Aave V2 with the Collector contract. Instead, the function
mintToTreasury(address calldata assets) on the
Pool contract needs to be called with a list of underlying assets passed in as a parameter in order for accrued reserve income to be minted to the treasury, as per the respective Reserve Factor of those assets.
Llama has set up infrastructure to call that function on a regular basis to ensure that the accrued reserve income is being minted to the treasury for all available assets on all active Aave V3 deployments (i.e Polygon, Optimism, Arbitrum and Avalanche).
Every 7 days and for each network in [Polygon, Optimism, Arbitrum, and Avalanche]:
- Get the current list of underlying assets in the pool by querying
mintToTreasury(address calldata assets)on the
Poolcontract with the list of assets obtained in 1. and execute the transaction on-chain.
- The infrastructure automatically runs and executes the transaction on-chain on a pre-set schedule.
- The code is written in Python which works well with the rest of our backend and data infrastructure we’re building for Aave.
- It runs on managed cloud infrastructure instead of a local instance so that it is a long living process, and can be managed and monitored effectively.
- It is able to dynamically query and pass in the current set of active assets into the
mintToTreasury(address calldata assets)function on the
Here is a sample of treasury claims that have been executed across the different networks using this infrastructure:
In November, we helped claim V3 revenue from Polygon, Optimism, Arbitrum, and Avalanche networks to the Aave treasury and will continue to do so on a weekly basis.
Please let us know if you have any questions.