Aave Earn Vault Data#
Retrieve your vaults.
Vault Structure#
Aave Earn 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, fee recipients)
Vault metrics (total balance, user shares)
userShares.shares and the corresponding balance in the underlying asset
under userShares.balance.- TypeScript
- GraphQL
The following TypeScript interfaces illustrate the core Vault type and its related types:
Fetch Vault Data#
Retrieve detailed information about a specific vault including underlying reserve and user shares.
- React
- TypeScript
- GraphQL
Use the useVault hook to fetch detailed information about a specific vault.
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: VaultUse 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"),});List Vaults#
Fetch multiple vaults with filtering and pagination support.
- React
- TypeScript
- GraphQL
Use the useVaults hook to fetch paginated vaults.
Fetch vaults owned by a specific address.
Owned Vaults
import { useVaults, evmAddress, PageSize } from "@aave/react";
// …
const { data, error, loading } = 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 | nullUse 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"),});User Vault Positions#
Track user vault positions and shares across Aave Earn Vaults.
- React
- TypeScript
- GraphQL
Use the useUserVaults hook to fetch paginated vaults that a user has shares in.
Fetch user vaults ordered by shares amount.
User Vaults
import { useUserVaults, evmAddress, PageSize, OrderDirection,} from "@aave/react";
// …
const { data, error, loading } = useUserVaults({ user: evmAddress("0x742d35cc6e5c4ce3b69a2a8c7c8e5f7e9a0b1234"), orderBy: { shares: OrderDirection.DESC }, pageSize: PageSize.FIFTY,});
if (error) { return <p>Error: {error.message}</p>;}
if (loading) { return <p>Loading positions...</p>;}
// data.items: Vault[]// data.pageInfo.next: Cursor | null// data.pageInfo.prev: Cursor | nullUser Vault Transaction History#
Track user vault transaction history.
- React
- TypeScript
- GraphQL
Use the useVaultUserTransactionHistory hook to fetch a paginated user's vault transaction history.
Fetch user vault transaction history ordered by date.
User Vault Transactions
import { useVaultUserTransactionHistory, evmAddress, PageSize, OrderDirection,} from "@aave/react";
// …
const { data, error, loading } = useVaultUserTransactionHistory({ user: evmAddress("0x742d35cc6e5c4ce3b69a2a8c7c8e5f7e9a0b1234"), vault: evmAddress("0x1234567890abcdef1234567890abcdef12345678"), chainId: chainId(1), orderBy: { date: OrderDirection.DESC }, pageSize: PageSize.FIFTY,});
if (error) { return <p>Error: {error.message}</p>;}
if (loading) { return <p>Loading transactions...</p>;}
// data.items: VaultUserTransactionHistoryItem[]// data.pageInfo.next: Cursor | null// data.pageInfo.prev: Cursor | nullVault User Activity#
Return a user's activity for a vault, including earnings breakdowns over time.
- React
- TypeScript
- GraphQL
Use the useVaultUserActivity hook to fetch the user's activity for a vault.
Fetch user's vault activity.
User Vault Activity
import { useVaultUserActivity, evmAddress, chainId, VaultUserActivityTimeWindow,} from "@aave/react";
// …
const { data, error, loading } = useVaultUserActivity({ user: evmAddress("0x742d35cc6e5c4ce3b69a2a8c7c8e5f7e9a0b1234"), vault: evmAddress("0x1234567890abcdef1234567890abcdef12345678"), chainId: chainId(1), window: VaultUserActivityTimeWindow.LastWeek,});
if (error) { return <p>Error: {error.message}</p>;}
if (loading) { return <p>Loading transactions...</p>;}
// data: VaultUserActivityResult