Could Function Signatures in Aave (withdraw) Change with Future Upgrades?

Hello Aave community,

I hope you’re doing well. I’m a beginner in the DeFi space and learning a lot about smart contract development. Please forgive me if this question is a bit basic. I’m eager to learn and would greatly appreciate any guidance you could provide.

I’m working on a smart contract that interacts with Aave, specifically using the withdraw() function:
function withdraw(address asset, uint256 amount, address to)

Since Aave supports upgrades and uses the LendingPoolAddressesProvider to manage addresses dynamically, I was wondering if there’s any risk that the function signatures (like the one for withdraw()) could change in future upgrades?

If the signature of withdraw() or similar core functions were to change (for example, adding new parameters or altering the existing ones), it might cause problems with my contract’s integration. Could anyone provide insights into whether Aave ensures backward compatibility for such functions during upgrades?

I apologize if this is too elementary of a question. I just want to understand how upgrades are managed to avoid future issues in my project.

Thank you so much for your time and advice!

Best regards,

2 Likes

As you pointed out the contracts are upgradable - so in theory yes.

In practice though, aave obviously has great interest in not breaking any integrations.
Basic functions like withdraw/deposit have been unchanged since v2 and Its save to assume they will never change as it would break essentially the whole ecosystem built on top.

4 Likes