// the find
aave/aave-v3-core
This repository contains the core smart contracts of the Aave V3 protocol.
The core Solidity smart contracts for Aave V3, the decentralized lending protocol. This repo is explicitly deprecated — the active development moved to aave-dao/aave-v3-origin. Useful primarily as a reference implementation or for understanding the V3 architecture, not as a starting point for new integrations.
- Multiple independent audits from reputable firms (Trail of Bits, OpenZeppelin, Sigma Prime, ABDK) plus Certora formal verification — the security review trail is unusually thorough for DeFi.
- Logic is cleanly separated into library contracts (BorrowLogic, LiquidationLogic, FlashLoanLogic, etc.) rather than monolithic pool code, which makes the codebase far more navigable than typical DeFi contracts.
- Test suite is extensive with ~60 spec files covering edge cases, liquidation modes, eMode, isolation mode, and event accounting — the scenario-engine JSON approach lets non-Solidity contributors define test cases.
- WadRayMath and PercentageMath are well-implemented fixed-point libraries with their own test coverage, useful as reference implementations for precision arithmetic in Solidity.
- Deprecated. The README says so upfront, which is honest, but anyone building on this today is starting from a dead end — there's no migration guide in the repo pointing to what changed in v3-origin.
- Docker Compose is required just to run tests, adding friction that most modern Solidity projects have dropped in favor of foundry or plain hardhat without containers.
- StableDebtToken has been a known design headache (Aave governance has since deprecated stable rate borrowing), so studying that part of the codebase teaches patterns that are actively being phased out.
- Vendored OpenZeppelin contracts under contracts/dependencies/ instead of using the npm package — means security patches from upstream OZ don't flow in automatically and the versions are opaque without diffing manually.