Vaults Data

Retrieve your Aave vaults.

Vault Structure

Aave vault data provides comprehensive information about ERC-4626 compliant yield-bearing vaults, including:

  • Vault identification (address, owner, share token details)

  • Reserve information (underlying asset, yield strategy)

  • Fee structure (performance fees, accumulated revenue)

  • Vault metrics (total balance, user shares)

When you provide a user account address, the data also includes user-specific information such as vault shares owned, deposited amounts, and withdrawn amounts.

The following TypeScript interfaces illustrate the core Vault type and its related types:

interface Vault {  address: EvmAddress;  owner: EvmAddress;  shareName: string;  shareSymbol: string;  usedReserve: Reserve;  fee: PercentValue;  totalFeeRevenue: TokenAmount;  balance: TokenAmount;  feesBalance: TokenAmount;  chainId: ChainId;  userShares?: UserVaultShares;}

List Vaults

Fetch multiple vaults with filtering and pagination support.

Use the useVaults hook to fetch paginated vaults.

const { data, loading, error } = useVaults({  criteria: VaultsRequestFilterCriteria,  pageSize: PageSize | undefined,  user: EvmAddress | undefined,  cursor: Cursor | undefined,});

Fetch vaults owned by a specific address.

Owned Vaults
import { useVaults, evmAddress, PageSize } from "@aave/react";
// …
const { data, loading, error } = useVaults({  criteria: {    ownedBy: [evmAddress("0x742d35cc6e5c4ce3b69a2a8c7c8e5f7e9a0b1234")],  },  pageSize: PageSize.TEN,});
if (loading) {  return <p>Loading…</p>;}
if (error) {  return <p>{error.message}</p>;}
// data.items: Vault[]// data.pageInfo.next: Cursor | null// data.pageInfo.prev: Cursor | null

Use a user address to include user-specific vault data.

With User State
import { useVaults, evmAddress, PageSize } from "@aave/react";
// …
const { data, loading, error } = useVaults({  criteria: {    ownedBy: [evmAddress("0x742d35cc6e5c4ce3b69a2a8c7c8e5f7e9a0b1234")],  },  pageSize: PageSize.TEN,  user: evmAddress("0x742d35cc6e5c4ce3b69a2a8c7c8e5f7e9a0b1234"),});

Single Vault

Retrieve detailed information about a specific vault including underlying reserve and user shares.

Use the useVault hook to fetch detailed information about a specific vault.

const { data, loading, error } = useVault({  by: VaultRequestBy,  chainId: ChainId,  user: EvmAddress | undefined,});

Fetch a specific vault by address.

An Ethereum Vault
import { useVault, evmAddress, chainId } from "@aave/react";
// …
const { data, loading, error } = useVault({  by: {    address: evmAddress("0x1234567890abcdef1234567890abcdef12345678"),  },  chainId: chainId(1),});
if (loading) {  return <p>Loading vault...</p>;}
if (error) {  return <p>Error: {error.message}</p>;}
if (!data) {  return <p>Vault not found</p>;}
// data: Vault

Use a user address to include user-specific vault data.

With User State
import { useVault, evmAddress, chainId } from "@aave/react";
// …
const { data, loading, error } = useVault({  by: {    address: evmAddress("0x1234567890abcdef1234567890abcdef12345678"),  },  chainId: chainId(1),  user: evmAddress("0x742d35cc6e5c4ce3b69a2a8c7c8e5f7e9a0b1234"),});

User Vault Positions

Track user vault positions and shares across Aave vaults.

Use the useUserVaults hook to fetch paginated vaults that a user has shares in.

const { data, loading, error } = useUserVaults({  user: EvmAddress,  filters: UserVaultsFilter | undefined,  orderBy: UserVaultsOrderBy | undefined,  pageSize: PageSize | undefined,  cursor: Cursor | undefined,});

Fetch user vaults ordered by shares amount.

User Vaults
import {  useUserVaults,  evmAddress,  PageSize,  OrderDirection,} from "@aave/react";
// …
const { data, loading } = useUserVaults({  user: evmAddress("0x742d35cc6e5c4ce3b69a2a8c7c8e5f7e9a0b1234"),  orderBy: { shares: OrderDirection.DESC },  pageSize: PageSize.FIFTY,});
if (loading) {  return <p>Loading positions...</p>;}
// data.items: Vault[]// data.pageInfo.next: Cursor | null// data.pageInfo.prev: Cursor | null

User Vault Transaction History

Track user vault transaction history.

Use the useVaultUserTransactionHistory hook to fetch a paginated user's vault transaction history.

const { data, loading, error } = useVaultUserTransactionHistory({  user: EvmAddress,  vault: EvmAddress,  chainId: ChainId,  filters: VaultUserHistoryAction | undefined,  orderBy: VaultUserTransactionHistoryOrderBy | undefined,  pageSize: PageSize | undefined,  cursor: Cursor | undefined,});

Fetch user vault transaction history ordered by date.

User Vault Transactions
import {  useVaultUserTransactionHistory,  evmAddress,  PageSize,  OrderDirection,} from "@aave/react";
// …
const { data, loading } = useVaultUserTransactionHistory({  user: evmAddress("0x742d35cc6e5c4ce3b69a2a8c7c8e5f7e9a0b1234"),  vault: evmAddress("0x1234567890abcdef1234567890abcdef12345678"),  chainId: chainId(1),  orderBy: { date: OrderDirection.DESC },  pageSize: PageSize.FIFTY,});
if (loading) {  return <p>Loading transactions...</p>;}
// data.items: VaultUserTransactionHistoryItem[]// data.pageInfo.next: Cursor | null// data.pageInfo.prev: Cursor | null