Aave V3 Smart Contracts
The source code of the Aave V3 Protocol contracts is available on GitHub. Contract addresses can be imported as Solidity or JavaScript package with the Aave Address Book.
The core contracts fall into the following categories in the GitHub repository:
- Pool
- Configuration
- Logic
- Tokenization
- Rewards
- Helpers
- Misc
Pool Contracts
Pool
The Pool is the main entry point into the Aave Protocol. Most user interactions with the Aave Protocol occur via the Pool contract. Pool is owned by the Pool of the specific market. All admin functions are callable by the Pool contract, which is defined in Pool.
L2Pool
The L2 is a calldata-optimized extension of Pool for L2 rollups that takes byte-encoded arguments to reduce transaction costs.
PoolConfigurator
The Pool provides configuration methods for the Pool contract. The write methods of this contract can only be called by addresses with corresponding permissioned system roles that are managed by ACLManager.
Configuration
ACLManager
The ACLManager contract is the main registry of system roles and permissions.
PoolAddressesProvider
The Pool is a registry of various components of the protocol, including the ACLManager and Pool contracts, and has the ability to update pointers or update the implementation of proxy contracts.
Logic
Libraries that implement the base logic for various actions and functions.
Tokenization
AToken
ATokens are yield-generating tokens that are minted and burnt upon supply and withdraw of assets to Aave Pool.
VariableDebtToken
Variable are non-transferable interest accruing tokens representing variable borrow rate positions.
Rewards
RewardsController
The Rewards distributes liquidity mining rewards to aToken and variable debt token holders.
Helpers
L2Encoder
The L2 is a helper contract to encode calldata that is passed to the L2. It is used to optimize calldata size in L2 for transaction cost reduction. It is only intended to help generate calldata for users/frontends.
AaveProtocolDataProvider
The Aave is a peripheral contract to collect and pre-process information from the Pool.
WrappedTokenGatewayV3
The Wrapped wraps and unwraps the native token so users can supply, borrow, repay and withdraw it directly.
Misc
AaveOracle
The Aave is the registry of reserve oracle to get asset prices and manage price sources.
DefaultReserveInterestRateStrategyV2
The Default implements the calculation of the interest rates depending on the reserve state. This contract holds the information needed to calculate and update the yield relating to specific liquidity pools.
PriceOracleSentinel
Aave V3.7 removed the Price, which paused borrows and delayed liquidations after an L2 sequencer outage.