Markets Data
Learn how to discover available markets and access detailed market information in Aave.
Market Structure
Aave market data provides comprehensive information about lending pools across different chains, including:
Market identification (name, chain, address)
The reserves in the market
Efficiency mode (eMode) categories and configurations
Market metrics (total size, available liquidity)
When you provide a user account address, the data also includes user-specific information such as net worth, health factor, and current positions.
- TypeScript
- GraphQL
The following TypeScript interfaces illustrate the core Market type and its related types:
Reserve Structure
Each reserve within an Aave market provides comprehensive lending and borrowing data for a specific asset, including:
Token information (underlying, aToken, vToken addresses and metadata)
Supply information (APY, liquidity, caps, collateral configuration)
Borrow information (APY, available liquidity, utilization rates, caps)
Reserve incentives (Merit programs, Aave governance rewards)
Market mechanics (flash loans, permits, pause/freeze states)
Efficiency mode (eMode) configurations for the asset
Isolation mode settings (if applicable)
User-specific state (balances, borrowable amounts, collateral usage)
When you provide a user account address, the reserve data also includes user-specific information such as current balances, borrowing capacity, and collateral status.
- TypeScript
- GraphQL
The following TypeScript interfaces illustrate the core Reserve type and its related types:
See the Incentive Programs page for more information on incentives.
Listing Available Markets
Discover all available Aave markets across supported blockchain networks.
- React
- TypeScript
- GraphQL
Use the useAaveMarkets hook to fetch a list of Aave markets.
Specify one or more chains to retrieve markets for.
Ethereum Markets
import { useAaveMarkets, chainId } from "@aave/react";
// …
const { data, loading, error } = useAaveMarkets({ chainIds: [chainId(1)],});
if (loading) { return <p>Loading…</p>;}
if (error) { return <p>{error.message}</p>;}
// data: Market[]
Use a user address to include account-level data for each market and reserve.
With User State
import { useAaveMarket, evmAddress, chainId } from "@aave/react";
const { data, loading, error } = useAaveMarket({ chainId: chainId(1), user: evmAddress("0x742d35cc6e5c4ce3b69a2a8c7c8e5f7e9a0b1234"),});
Single Market
Retrieve detailed information about a specific market including reserves and user state.
- React
- TypeScript
- GraphQL
Use the useAaveMarket hook to fetch detailed information about a specific market.
Fetch a specific market by address and chain.
Ethereum Market
import { useAaveMarket, evmAddress, chainId } from "@aave/react";
// …
const { data, loading, error } = useAaveMarket({ address: evmAddress("0x87870bca3f3fd6335c3f4ce8392d69350b4fa4e2"), chainId: chainId(1),});
if (loading) { return <p>Loading market...</p>;}
if (error) { return <p>Error: {error.message}</p>;}
if (!data) { return <p>Market not found</p>;}
// data: Market
Use a user address to include account-level data for the market and its reserves.
With User State
import { useAaveMarket, evmAddress, chainId } from "@aave/react";
// …
const { data, loading, error } = useAaveMarket({ address: evmAddress("0x87870bca3f3fd6335c3f4ce8392d69350b4fa4e2"), chainId: chainId(1), user: evmAddress("0x742d35cc6e5c4ce3b69a2a8c7c8e5f7e9a0b1234"),});
APY History
Retrieve historical APY data for reserves to analyze interest rate trends over time.
- React
- TypeScript
- GraphQL
Use the useBorrowAPYHistory and useSupplyAPYHistory hooks to fetch historical APY data for specific reserves.
Fetch borrow/supply APY history for a specific reserve over the last week.
Available time windows include:
TimeWindow.LastDay
TimeWindow.LastWeek
TimeWindow.LastMonth
TimeWindow.LastSixMonths
TimeWindow.LastYear