Smart Contracts

Liquidity PoolsSafety ModuleTokensGovernance

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

  • Helpers

  • Misc

Pool

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 PoolAddressesProvider of the specific market. All admin functions are callable by the PoolConfigurator contract, which is defined in PoolAddressesProvider.

L2Pool

The L2Pool is a modification of the Pool contract for L2 rollups, with gas-optimized user methods that takes byte encoded input arguments. It is a calldata optimized extension of the Pool contract allowing users to pass compact calldata representations to reduce transaction costs on rollups.

PoolConfigurator

The PoolConfigurator 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 PoolAddressesProvider 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

VariableDebtTokens are non-transferable interest accruing tokens representing variable borrow rate positions.

Helpers

L2Encoder

The L2Encoder is a helper contract to encode calldata that is passed to the L2Pool. It is used to optimize calldata size in L2Pool for transaction cost reduction. It is only intended to help generate calldata for users/frontends.

AaveProtocolDataProvider

The AaveProtocolDataProvider is a peripheral contract to collect and pre-process information from the Pool.

Misc

AaveOracle

The AaveOracle is the registry of reserve oracle to get asset prices and manage price sources.

DefaultReserveInterestRateStrategy

The DefaultReserveInterestRateStrategy 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

The PriceOracleSentinel validates if operations are allowed depending on the PriceOracle health. Once the PriceOracle gets up after an outage or downtime, users can make their positions healthy during a grace period.

Aave.com provides information and resources about the fundamentals of the decentralised non-custodial liquidity protocol called the Aave Protocol, comprised of open-source self-executing smart contracts that are deployed on various permissionless public blockchains, such as Ethereum (the "Aave Protocol" or the "Protocol"). Aave Labs does not control or operate any version of the Aave Protocol on any blockchain network.