BGD. Upgrade of Aave v3 periphery to 3.0.1 across networks


The Aave v3 codebase is divided into 2 different parts, Aave v3 core, and Aave v3 periphery. While usually the concept of “protocol” is more related to the Aave v3 core, there are some complementary components of Aave v3 living on the periphery codebase, for example, the system managing external teams configuring rewards for Aave v3 activity (e.g. supply/borrow assets).

Similar to the majority of other Aave smart contracts, the ones on the periphery are upgradeable and controlled by the Aave governance, which means they are designed to be improved over time.

Given that the community has approved a new Aave v3 Ethereum, we have used the occasion to introduce light improvement/fixes on the periphery smart contracts and now will submit the upgrade to be approved via governance.

Changes included on Aave periphery v3.0.1

The changes on this upgrade of the periphery are really light, especially if we compare them with the ones on the upcoming core upgrade (to be deployed with Aave v3 Ethereum).

It is possible these changes here and they include the following :

  • “Soften” Solidity versions of the contracts to ^0.8.0, not impacting the live smart contracts.
  • Add a getAssetIndex() function to the RewardDistributor, alleviating a lot of gas consumption for systems built on top and requiring calculations on rewards.
  • Fix a bug on the setEmissionPerSecond(), as the total supply of a/v Tokens was not correctly considered.
  • Fix a bug on the getUserRewards() function, previously not returning what high-level should be the rewards accrued by the user.
  • Removed unnecessary constructor, given the nature of the implementation always under a proxy.

These changes will be approved via cross-chain governance (or Guardian wherever not available) on all v3 instances: Polygon, Avalanche, Optimism, Arbitrum, Fantom, and Harmony (these last 2 for compatibility reasons, even if currently frozen).

The codebase of the proposal payload can be found at

Security procedures applied

Given that the changes are on view functions or really small, we will ask Certora and SigmaPrime to review them, but we don’t think an audit report is required.

The whole upgrade has been tested and peer-reviewed by both BGD and Aave Companies.

Next steps

Given that this is a purely technical/maintenance upgrade, we will be only submitting the on-chain proposal required in the following days, without a previous Snapshot, to not create unnecessary voting overhead.

Props for the general contributions and reviews of @miguelmtz and @kartojal from @AaveLabs, and the participation of MerlinEgalite from MorphoLabs on one of the fixes.


Really excited to see v3 on mainnet be imminent :slight_smile:



Excited to see the v3 on Mainnet too!

This upgrade is key for the protocol’s future. It fixes some minor issues of the periphery contracts and adds view functions that will unlock potential integrations. Go ahead sir! :white_check_mark:

This is incredible news! The liquidity on Aave Ethereum Mainnet will benefit greatly from this new deployment and its risk management features

Needed now more than ever!

Looking forward to V3 on Ethereum Mainnet! :rocket:

1 Like

As previously announced, we have created an Aave governance proposal to approve and start the update procedure to 3.0.1 periphery across all networks (non-Ethereum).

It is essential to clarify that the executable payload will solely affect Aave v3 Polygon, via the cross-chain governance mechanism, while the activation on other v3 instances will need to be triggered by the Aave Guardian, who we will support on the technical aspects. This proposal also acts as general approval from the community for those networks.

Voting will start in ~24 on


Do you have a roadmap for upgrading Aave v3 core on the non-ethereum deployments?

Hi @scottincrypto . We are already working on it, and we plan to have a proposal ready by next week, at least for some of the other networks.

1 Like

Following the roadmap to align the codebase of all Aave v3 instances’, we will be submitting a governance proposal now that security procedures (Certora & SigmaP) are finished.
The codebase used for this can be found on

With Aave v3 Ethereum running on 3.0.1, the initial idea was to align all other networks to 3.0.1, but during this period, we have noticed some small improvements in the LTV, isolation mode, and flash borrower mechanics.
After passing these changes through the security firms of the DAO, we have grouped everything together, and the upgrade becomes 3.0.2, resulting in:

  • Aave v3 Ethereum: running 3.0.1 → 3.0.2
  • Aave v3 Polygon/Arbitrum/Optimism: running 3.0.0 → 3.0.2
  • Aave v3 Avalanche: running 3.0.0 → not included in the payload (cross-chain governance not available), but will be upgraded to 3.0.2 via Guardian.

New pools like the upcoming Aave v3 Metis will be running with 3.0.2.

Thanks to @miguelmtz for the additional reviews.


We have submitted the governance proposal, with voting starting in ~24h from now.
All technical details can be found in the proposal description and on the repository of the project

Even if purely technical in nature, this unification of versioning is a pretty important step to reduce maintenance costs, we encourage the community to participate


We have noticed that the running proposal 208 would create an inconsistency on the configured parameters _flashLoanPremiumTotal and _flashLoanPremiumToProtocol, compared with the live ones on the Pool contracts.

Even if not damaging to the protocol and possible to fix via an additional proposal afterward, we consider any inconsistency enough to cancel the proposal, so we have coordinated to lose the proposition power, for 208 to be eligible for cancelation.

We will be re-submitting this upgrade early next week.

We have re-submitted the governance proposal, including the alignment of the flash loan fees to the current ones on the protocol.

Voting starts in ~24h

As a final update regarding v3.0.1/2, we can confirm that all active Aave v3 instances (Ethereum, Polygon, Avalanche, Optimism, Arbitrum, and Metis) are running on version 3.0.2.


Great job everyone! .

1 Like