Aave V3
Features
The Aave Protocol is a decentralised non-custodial liquidity protocol where users can participate as suppliers, borrowers, or liquidators. Suppliers provide liquidity to a market and can earn interest on the crypto assets provided, while borrowers are able to borrow in an overcollateralized fashion. Borrowers can also engage in one-block borrow transactions (”flash loans”), which do not require overcollateralization.
V3 of the Aave Protocol augments the core concepts of the Aave Protocol (aTokens, instant liquidity, credit delegation, etc.) with new features in the following areas.
Capital Efficiency
V3 allows users to optimise their assets supplied to the Aave Protocol in terms of yield generation and borrowing power.
Efficiency Mode (E-Mode)
The High Efficiency Mode, or eMode, allows borrowers to extract the highest borrowing power out of their collateral when supplied and borrowed assets are correlated in price, particularly when both are derivatives of the same underlying asset (e.g., stablecoins pegged to USD).
This can enable a wave of new use cases such as high leverage forex trading, highly efficient yield farming (for example, deposit ETH staking derivatives to borrow ETH), and diversified risk management.
Isolation Mode
New assets can be listed as isolated in Aave Protocol V3. Borrowers supplying an isolated asset as collateral cannot supply other assets as collateral (though they can still supply to capture yield). Borrowers using an isolated collateral can only borrow stablecoins that have been configured by Aave governance to be borrowable in isolation mode, up to a specified debt ceiling.
View debt ceiling and borrowable in isolation mode parameters on the parameter dashboard.
Siloed Borrowing
Siloed Borrowing allows certain assets to be treated as isolated within the protocol. Borrowers using these assets as collateral can only borrow stablecoins configured for siloed assets, with strict borrowing limits defined by the Aave governance. This structure reduces the systemic risk for assets that are highly volatile or less liquid by limiting their borrowing capacities and containing the exposure to siloed assets.
View debt ceiling and siloed assets parameters on the parameter dashboard.
Portals
This feature allows the flow of liquidity between Aave V3 markets across different networks. Protocol V3 allows governance-approved bridges to burn aTokens on the source network while instantly minting them on the destination network. The underlying assets can then be supplied to Aave on the destination network in a deferred manner, by passing them to the pool after they have been moved through a bridge.
Aave V3 provides a new system role - BRIDGE - granting permission to leverage the Portal feature. Only addresses with the BRIDGE_ROLE can move the supplied liquidity in Aave V3.
Aave Governance holds the ability to grant BRIDGE_ROLE to any cross-chain protocol.
This can help bridging protocols like Connext, Hop Protocol, Anyswap, xPollinate, and novel solutions specifically built to leverage Portal, tap into Aave Protocol liquidity to facilitate seamless cross-chain interactions.
In order to support Portal, the following three additional features are required by the protocol:
Mint Unbacked Tokens: Allows addresses with BRIDGE role permission to mint unbacked aTokens to the onBehalfOf address.
Back Unbacked Tokens: Allows contracts with BRIDGE role permission to back the currently unbacked aTokens with the amount of underlying asset and pay a fee.
Whitelist Bridges: Allows the Bridge Role Admin to add/remove addresses for BRIDGE_ROLE.
Integrations
Live Data
For reliable live data integrations, the recommended approach is to query directly from protocol view contracts such as the UiPoolDataProvider. This enables you to access all reserve information and user positions efficiently.
To simplify the process of querying Aave Protocol data through a blockchain RPC, you can use the Aave Utilities SDK, which is an extension of ethers v5. It streamlines data fetching and formatting, making it easier to interact with the protocol.
You can learn how to fetch data by following the instructions in the Fetch Data section of the SDK documentation. After fetching the data, you might need to format it for your application; the Format Data guide provides detailed instructions on how to format reserves and other relevant data structures. For a practical implementation example, you can refer to this code sample, which demonstrates how to use the Aave Utilities SDK in a demo NextJS application.
Historical Data
If you're interested in historical data for parameters, rates, and balances, you can query contract events directly or use indexed data sources. A comprehensive breakdown of all core protocol events can be found in the documentation.
The Aave Protocol subgraphs are an example of an indexed data source that maps contract events to a GraphQL endpoint, allowing for efficient querying of historical data. For example, you can explore queries of an address's transaction history using these subgraphs.
Smart Contracts
For detailed information on interacting with the protocol's smart contracts, please refer to the Pool Methods documentation. Additionally, the Testing & Debugging guides offer valuable insights into developing and troubleshooting smart contract integrations.