Overview
Aave V1 is a decentralized lending and borrowing protocol built that allows users to deposit cryptocurrencies as collateral to borrow other assets, while earning interest on their deposits. The protocol uses a system of interest-bearing tokens (aTokens) and implements risk management through loan-to-value ratios, liquidation thresholds, and dynamic interest rates.
Major Contracts & Functionality
1. LendingPool (Main Entry Point)
Core Functions:
- Deposit assets into the protocol
- Withdraw assets (redeem, entry contract is
AToken
)
- Borrow against collateral
- Repay loans
- Execute flash loans
- Liquidate undercollateralized positions
- Swap between stable and variable interest rates
2. LendingPoolCore (State Management)
Core Functions:
- Maintains reserve data for all supported assets
- Including asset’s current liquidity rate (given to LP)
- Total borrow with stable interest rate
- Total borrow with variable interest rate
- Current stable borrow interest rate
- Current variable borrow interest rate
- Average stable borrow rate (used to calcualte LP interest rate)
- checkpoint of variable interest rate (used to calcualte fee cumulated)
- Loan to value rate (LTV)
- Liquidation threshold
- Liquidation bonus (for example, 105 liquidator can repay borrower’s debt to buy collateral with 5% bonus)
- Reserve config
- whether active
- whether freezed
- whether can be used as collateral
- Manages user reserve data (balances, borrow positions)
- reserve borrow amount
- checkpoint of variable interest rate (used to calcualte fee cumulated)
- fee used to open loan position (should be repayed later)
- stable borrow rate
- last update time(used to calcualte stable borrow’s fee)
- whether allow this asset to be used as collateral to borrow other reserve.
- Handles asset transfers and fee collection
- Updates interest rates and cumulative indexes
3. AToken (Interest-Bearing Tokens)
Core Functions:
- User’s AToken balance represents the corresponding reserve asset user owns in the protocol. It uses rebasing mechanism to calculate liquidity fee dynamically.
- Mint/burn tokens on deposit/withdrawal
- Accrue interest to token holders
- Support interest redirection to other addresses
- Handle transfer restrictions (after transfer, user’s loan position should be healthy)
Key Features:
- Balance increases automatically with accrued interest
- 1:1 redeemable for underlying assets
- Transferable and composable with other DeFi protocols
4. Supporting Contracts
- LendingPoolDataProvider: Calculates user account data, health factors, and collateral requirements
- FeeProvider: Record fee configuration
- DefaultReserveInterestRateStrategy: Determines interest rates based on utilization ratios
- LendingPoolLiquidationManager: Handles liquidation logic
Key Mechanism
- Deposits and Collateral
Users can deposit assets into the protocol. Deposited assets become part of the protocol’s reserves and are available for borrowing, and user shares loan interest. If an asset is marked as collateral by the protocol, and the user also enables it as collateral, the asset is additionally counted as the user’s collateral.
- ATokens and Interest Accrual
- The protocol tracks a global cumulative interest rate checkpoint.
- Each user also has a personal checkpoint per reserve.
- Whenever a user interacts with a reserve (deposit, withdraw, borrow, repay, etc.), their balance is updated by comparing the global and personal checkpoints. ATokens are minted or burned accordingly to reflect the latest balance.
When users deposit assets, they receive corresponding ATokens in return. ATokens are rebasing tokens whose balances automatically increase according to the liquidity rate.
- Liquidity Rate vs. Borrow Rate
- Liquidity rates are updated during every relevant user operation (deposit, borrow, repay, liquidation).
- The liquidity rate is the weighted average of the stable and variable borrow rates.
Each reserve has liquidity rate. The liquidity rate is always equal to the global borrow rate. This ensures that, at every moment, the interest paid by borrowers exactly matches the interest accrued by liquidity providers. Borrowers pay interest that accrues in a compounding manner.
- Borrowing Against Collateral
- The total collateral value of the user across all user’s collateral assets (denominated in ETH).
- The loan-to-value (LTV) ratio for each collateral type.
To borrow, a user must first supply collateral. The protocol evaluates:
Based on these factors, the protocol determines the maximum amount a user can borrow. For each reserve, a user can only borrow under a single position with a single interest rate mode (either stable or variable).
- Liquidation Mechanism
- Example: with a 5% bonus, a liquidator repays 1 ETH of debt and receives collateral worth 1.05 ETH.
- Health factor is determined by the user’s entire profile across all reserves and collateral.
If a user’s health factor falls below the required threshold, liquidators can partially repay the user’s debt in exchange for collateral plus a liquidation bonus.
- Flash Loans
AAVE V1 also introduced flash loans. Users can borrow assets without collateral, execute arbitrary logic, and return the borrowed amount plus a fee within the same transaction.
Interest Rate Mechanism
Aave V1 uses a sophisticated interest rate model that:
- Offers both stable and variable rate borrow options
- Adjusts rates based on pool utilization
- Uses tiered rates (different slopes below/above optimal utilization)
- Calculates liquidity rates as weighted averages of borrow rates
- Updates rates continuously based on market conditions
- Stable borrow interest rate is set by protocol.
- The variable borrow interest rate is dynamically determined based on reserve utilization, following a tiered rate model.
Main Protocol Flows
Deposit Flow
- User deposits underlying asset (ETH or ERC20)
- Protocol updates reserve cumulative indexes and interest rates
- Corresponding aTokens are minted to user 1:1
- Deposited assets are transferred to LendingPoolCore
- If first deposit, asset is automatically enabled as collateral
Redeem Flow
- User redeems aTokens for underlying assets
- aToken contract calculates accrued interest
- Protocol verifies sufficient liquidity exists
- Reserve state is updated (indexes, interest rates)
- If full redemption, collateral status is removed
- Underlying assets are transferred to user
Borrow Flow
- User requests borrow against collateral
- Protocol checks:
- Reserve is active and borrowing enabled
- Sufficient collateral exists (health factor > 1)
- Amount doesn't exceed borrowing limits
- Origination fee (fee to open loan position) is calculated and added to debt
- Reserve state is updated with new borrow
- Borrowed assets are transferred to user
Repay Flow
- User repays borrowed amount (full or partial)
- Protocol applies payment to:
- Accrued interest first
- Then principal balance
- Then origination fees
- Reserve state is updated
- If full repayment, borrow position is closed
Liquidation Flow
- Liquidator detects undercollateralized user (health factor < 1)
- Liquidator repays portion of debt in exchange for collateral
- Protocol calculates liquidation bonus for liquidator
- Collateral is transferred to liquidator (as aTokens or underlying)
- User's debt and collateral positions are updated
- Origination fees is liquidated using user’s collateral separately
Origination fee is also repayed with collateral plus liquidation bonus

Flash Loan Flow
- User requests flash loan of any available asset
- Protocol transfers requested amount to user's contract
- User's contract executes arbitrary operation
- User must repay principal + fee within same transaction
- Protocol verifies correct repayment amount
- Fees are distributed between protocol and LP by updating interest rate checkpoint.
Risk Management Features
- Loan-to-Value (LTV) Ratios: Maximum borrow amount against collateral
- Liquidation Thresholds: Points where positions become liquidatable
- Health Factor: Single metric representing position safety
- Liquidation Bonus: Incentive for liquidators to maintain protocol health
- Reserve Configuration: Each asset has customized risk parameters (liquidation threshold)
Aave V1's contract architecture creates a robust lending protocol that balances user flexibility with risk management, enabling permissionless borrowing and lending while maintaining protocol solvency through carefully designed economic incentives and safeguards.