AaveKit React Hooks Reference
Reference for all public AaveKit React hooks for Aave V4.
useActivities
Declarative hook to fetch paginated list of user activities.
import { useActivities } from "@aave/react";
const { data, loading, error } = useActivities({
pause,
...request,
});
const { data } = useActivities({
pause,
suspense: true,
...request,
});
Arguments:
request.one of:query: Activities Request Query hub: Hub- Fetch by hubInput spoke: Spoke- Fetch by spokeInput chain- Fetch by chain IDsIds: [Chain Id!] tx- Fetch by transaction hashHash: Tx Hash Input
request.- User address (optional)user?: Evm Address request.- Currency for value conversions (default: USD)currency?: Currency pause?: boolean- Pause the query (default: false)
Returns:
data?.- List of activitiesitems: Activity Item[] data?.- Pagination informationpage Info: Page Info loading: boolean- Loading stateerror: Unexpected- Error fetching the activitiesError | undefined
useActivitiesAction
Imperative hook to fetch paginated list of user activities.
import { useActivitiesAction } from "@aave/react";
const [execute, state] = useActivitiesAction(options);
const result = await execute(request);
Options:
options.- Currency for value conversions (default: USD)currency?: Currency
Arguments:
request.one of:query: Activities Request Query hub: Hub- Fetch by hubInput spoke: Spoke- Fetch by spokeInput chain- Fetch by chain IDsIds: [Chain Id!] tx- Fetch by transaction hashHash: Tx Hash Input
request.- User address (optional)user?: Evm Address
Returns:
state.- Loading stateloading: boolean state.- Error fetching the activitieserror: Unexpected Error | undefined state.- Whether the hook has been calledcalled: boolean state.- Paginated activities resultdata: Paginated Activities Result | undefined result: Result<Paginated- Type-safe success or failure value:Activities Result, Unexpected Error> Ok<Paginated- Paginated activities resultActivities Result> Err<Unexpected- Error fetching the activitiesError>
useAsset
Declarative hook to fetch information about a specific asset (ERC-20 token).
import { useAsset } from "@aave/react";
const { data, loading, error } = useAsset({
pause,
...request,
});
const { data } = useAsset({
pause,
suspense: true,
...request,
});
Arguments:
request.one of:query: Asset Request Query token: Erc20- ERC-20 tokenInput address: Evm- Token contract addressAddress chain- Chain ID where the token existsId: Chain Id
asset- Asset IDId: Asset Id
request.- Currency for value conversions (optional)currency?: Currency request.- Time window for historical data (optional)time Window?: Time Window pause?: boolean- Pause the query (default: false)
Returns:
data: Asset | null | undefined- Asset information or null if not foundloading: boolean- Loading stateerror: Unexpected- Error fetching the assetError | undefined
useAssetBorrowHistory
Declarative hook to fetch historical borrow data for an asset.
import { useAssetBorrowHistory } from "@aave/react";
const { data, loading, error } = useAssetBorrowHistory({
pause,
...request,
});
const { data } = useAssetBorrowHistory({
pause,
suspense: true,
...request,
});
Arguments:
request.one of:query: Asset Borrow History Request Query token: Erc20- ERC-20 token (Input address,chain)Id asset- Asset IDId: Asset Id
request.- Time window for historical datawindow: Time Window pause?: boolean- Pause the query (default: false)
Returns:
data: Asset- Array of historical borrow data pointsBorrow Sample[] | undefined data[].- Sample datedate: Date data[].- Total borrowed amountamount: Decimal Number data[].- Highest borrow APY across hubshighest Apy: Percent Number data[].- Lowest borrow APY across hubslowest Apy: Percent Number data[].- Average borrow APY across all hubsaverage Apy: Percent Number data[].- Per-hub APY breakdownbreakdown: Asset Sample Breakdown[]
loading: boolean- Loading stateerror: Unexpected- Error fetching the borrow historyError | undefined
useAssetPriceHistory
Declarative hook to fetch historical price data for an asset.
import { useAssetPriceHistory } from "@aave/react";
const { data, loading, error } = useAssetPriceHistory({
pause,
...request,
});
const { data } = useAssetPriceHistory({
pause,
suspense: true,
...request,
});
Arguments:
request.one of:query: Asset Price History Request Query token: Erc20- ERC-20 token (Input address,chain)Id asset- Asset IDId: Asset Id
request.- Currency for the datacurrency: Currency request.- Time window for historical datawindow: Time Window pause?: boolean- Pause the query (default: false)
Returns:
data: Asset- Array of historical price data pointsPrice Sample[] | undefined loading: boolean- Loading stateerror: Unexpected- Error fetching the price historyError | undefined
useAssetSupplyHistory
Declarative hook to fetch historical supply data for an asset.
import { useAssetSupplyHistory } from "@aave/react";
const { data, loading, error } = useAssetSupplyHistory({
pause,
...request,
});
const { data } = useAssetSupplyHistory({
pause,
suspense: true,
...request,
});
Arguments:
request.one of:query: Asset Supply History Request Query token: Erc20- ERC-20 token (Input address,chain)Id asset- Asset IDId: Asset Id
request.- Time window for historical datawindow: Time Window pause?: boolean- Pause the query (default: false)
Returns:
data: Asset- Array of historical supply data pointsSupply Sample[] | undefined data[].- Sample datedate: Date data[].- Total supplied amountamount: Decimal Number data[].- Highest supply APY across hubshighest Apy: Percent Number data[].- Lowest supply APY across hubslowest Apy: Percent Number data[].- Average supply APY across all hubsaverage Apy: Percent Number data[].- Per-hub APY breakdownbreakdown: Asset Sample Breakdown[]
loading: boolean- Loading stateerror: Unexpected- Error fetching the supply historyError | undefined
useBorrow
Imperative transaction hook to borrow assets from the protocol.
import { useBorrow } from "@aave/react";
const [execute, state] = useBorrow((plan) => {
switch (plan.__typename) {
case "TransactionRequest":
return sendTransaction(plan);
case "PreContractActionRequired":
return sendTransaction(plan.transaction);
}
});
const result = await execute(request);
Arguments:
request.- Reserve IDreserve: Reserve Id request.one of:amount: Reserve Amount Input erc20: { value: Big- ERC-20 amount, e.g.Decimal } { erc20: { value: bigDecimal("100") } } native: Big- Native token amountDecimal
request.- Borrower addresssender: Evm Address
Returns:
state.- Loading stateloading: boolean state.- Error executing the transactionerror: E | undefined state.- Whether the hook has been calledcalled: boolean state.- Transaction receiptdata: Transaction Receipt | undefined result: Result<Transaction- Type-safe success or failure value:Receipt, E> Ok<Transaction- Transaction receiptReceipt> Err<E>- Error executing the transaction
Where E is one of:
CancelError SigningError TimeoutError TransactionError UnexpectedError ValidationError<Insufficient Balance Error>
useBorrowApyHistory
Declarative hook to fetch borrow APY history for a specific reserve over time.
import { useBorrowApyHistory } from "@aave/react";
const { data, loading, error } = useBorrowApyHistory({
pause,
...request,
});
const { data } = useBorrowApyHistory({
pause,
suspense: true,
...request,
});
Arguments:
request.- Reserve IDreserve: Reserve Id request.- Time window for historical data (default:window?: Time Window LAST_)DAY request.- Include Merkl rewards in the rates (default: true)include Rewards?: boolean pause?: boolean- Pause the query (default: false)
Returns:
data: Apy- Array of historical APY data pointsSample[] | undefined loading: boolean- Loading stateerror: Unexpected- Error fetching the borrow APY historyError | undefined
useBorrowSwapOrder
Imperative hook to execute a borrow (debt) swap through the Order API. It fetches a quote, collects the position-swap approval signatures, then prepares, signs, and submits the order.
import { useBorrowSwapOrder } from "@aave/react";
const [execute, state] = useBorrowSwapOrder((plan) => {
switch (plan.__typename) {
case "PositionSwapAdapterContractApproval":
case "PositionSwapPositionManagerApproval":
case "PositionSwapSetCollateralApproval":
return signTypedData(plan.bySignature);
case "OrderTypedData":
return signTypedData(plan);
case "OrderTransactionRequest":
return sendTransaction(plan.transaction);
}
});
const result = await execute(request);
Arguments:
request: Borrowone of:Swap Quote Request market: Market- Market order quoteDebt Swap Quote Input limit: Limit- Limit order quoteDebt Swap Quote Input from- Quote from an existing quote ID (Quote: From Quote Debt Swap Quote Input quote)Id
request.- Currency for value conversions (default: USD)currency?: Currency
Returns:
state.- Loading stateloading: boolean state.- Error executing the ordererror: E | undefined state.- Whether the hook has been calledcalled: boolean state.- Order receipt with thedata: Order Receipt | undefined orderId result: Result<Order- Type-safe success or failure value:Receipt, E> Ok<Order- Order receipt with theReceipt> orderId Err<E>- Error executing the order
Where E is one of:
CancelError SigningError TimeoutError TransactionError UnexpectedError ValidationError<Insufficient Balance Error | Insufficient Liquidity Error>
useBorrowSwapQuote
Declarative hook to fetch a quote for a borrow (debt) swap.
import { useBorrowSwapQuote } from "@aave/react";
const { data, loading, error } = useBorrowSwapQuote({
pause,
...request,
});
const { data } = useBorrowSwapQuote({
pause,
suspense: true,
...request,
});
Arguments:
request: Borrowone of:Swap Quote Request market: Market- Market order quoteDebt Swap Quote Input limit: Limit- Limit order quoteDebt Swap Quote Input from- Quote from an existing quote ID (Quote: From Quote Debt Swap Quote Input quote)Id
request.- Currency for value conversions (default: USD)currency?: Currency pause?: boolean- Pause the query (default: false)
Returns:
data: Swap- Swap quoteQuote | undefined loading: boolean- Loading stateerror: Unexpected- Error fetching the quoteError | undefined
useBorrowSwapQuoteAction
Imperative hook to fetch a quote for a borrow (debt) swap.
import { useBorrowSwapQuoteAction } from "@aave/react";
const [execute, state] = useBorrowSwapQuoteAction(options);
const result = await execute(request);
Options:
options.- Currency for value conversions (default: USD)currency?: Currency
Arguments:
request: Borrowone of:Swap Quote Request market: Market- Market order quoteDebt Swap Quote Input limit: Limit- Limit order quoteDebt Swap Quote Input from- Quote from an existing quote ID (Quote: From Quote Debt Swap Quote Input quote)Id
Returns:
state.- Loading stateloading: boolean state.- Error fetching the quoteerror: E | undefined state.- Whether the hook has been calledcalled: boolean state.- Swap quotedata: Swap Quote | undefined result: Result<Swap- Type-safe success or failure value:Quote, E> Ok<Swap- Swap quoteQuote> Err<E>- Error fetching the quote
Where E is one of:
UnexpectedError ValidationError<Insufficient Liquidity Error>
useCancelOrder
Imperative hook to cancel an open order.
import { useCancelOrder } from "@aave/react";
const [execute, state] = useCancelOrder((plan) => {
switch (plan.__typename) {
case "TransactionRequest":
return sendTransaction(plan);
case "OrderTypedData":
return signTypedData(plan);
}
});
const result = await execute(request);
Arguments:
request.- Order ID to cancelid: Order Id
Returns:
state.- Loading stateloading: boolean state.- Error cancelling the ordererror: Cancel Order Error | undefined state.- Whether the hook has been calledcalled: boolean state.- Cancelled order with thedata: Order Cancelled Result | undefined orderId result: Result<Order- Type-safe success or failure value:Cancelled Result, Cancel Order Error> Ok<Order- Cancelled order with theCancelled Result> orderId Err<Cancel- Error cancelling the orderOrder Error>
Where Cancel is one of:
CancelError CannotCancel Order Error SigningError TimeoutError TransactionError UnexpectedError
useChain
Declarative hook to fetch a specific chain by ID.
import { useChain } from "@aave/react";
const { data, loading, error } = useChain({
pause,
...request,
});
const { data } = useChain({
pause,
suspense: true,
...request,
});
Arguments:
request.- Chain ID to querychain Id: Chain Id pause?: boolean- Pause the query (default: false)
Returns:
data: Chain | null | undefined- Chain information or null if not foundloading: boolean- Loading stateerror: Unexpected- Error fetching the chainError | undefined
useChainAction
Imperative hook to fetch chain data on demand. Does not watch for updated data; use it to retrieve data as part of a larger workflow.
import { useChainAction } from "@aave/react";
const [execute, state] = useChainAction();
const result = await execute(request);
Arguments:
request.- Chain IDchain Id: Chain Id
Returns:
state.- Loading stateloading: boolean state.- Error fetching the chainerror: Unexpected Error | undefined state.- Whether the hook has been calledcalled: boolean state.- Chain data or null if not founddata: Chain | null | undefined result: Result<Chain | null, Unexpected- Type-safe success or failure value:Error> Ok<Chain | null>- Chain data or null if not foundErr<Unexpected- Error fetching the chainError>
useChains
Declarative hook to fetch all supported chains.
import { useChains } from "@aave/react";
import { ChainsFilter } from "@aave/react";
const { data, loading, error } = useChains({
query: { filter: ChainsFilter.ALL },
pause,
});
import { useChains } from "@aave/react";
import { ChainsFilter } from "@aave/react";
const { data } = useChains({
query: { filter: ChainsFilter.ALL },
pause,
suspense: true,
});
Arguments:
request.one of:query: Chains Request Query filter: Chains- Filter for chains (e.g.,Filter Chains)Filter. ALL chain- Fetch by chain IDsIds: [Chain Id!]
pause?: boolean- Pause the query (default: false)
Returns:
data: Chain[] | undefined- Array of supported chainsloading: boolean- Loading stateerror: Unexpected- Error fetching the chainsError | undefined
useClaimRewards
Imperative transaction hook to claim rewards for a user on a specific chain.
import { useClaimRewards } from "@aave/react";
const [execute, state] = useClaimRewards((transaction) =>
sendTransaction(transaction),
);
const result = await execute(request);
Arguments:
request.- Reward IDs to claimids: [Reward Id!] request.- User claiming the rewardsuser: Evm Address request.- Chain to claim onchain Id: Chain Id
Returns:
state.- Loading stateloading: boolean state.- Error executing the transactionerror: E | undefined state.- Whether the hook has been calledcalled: boolean state.- Transaction receiptdata: Transaction Receipt | undefined result: Result<Transaction- Type-safe success or failure value:Receipt, E> Ok<Transaction- Transaction receiptReceipt> Err<E>- Error executing the transaction
Where E is one of:
CancelError SigningError TimeoutError TransactionError UnexpectedError
useExchangeRate
Declarative hook to fetch the current exchange rate between two currencies.
import { useExchangeRate } from "@aave/react";
const { data, loading, error } = useExchangeRate({
pause,
...request,
});
const { data } = useExchangeRate({
pause,
suspense: true,
...request,
});
Arguments:
request.- Source asset (from: Asset Input erc20ornative)request.- Target currencyto: Currency pause?: boolean- Pause the query (default: false)
Returns:
data: Exchange- Exchange rate valueAmount | undefined loading: boolean- Loading stateerror: Unexpected- Error fetching the exchange rateError | undefined
useExchangeRateAction
Imperative hook to fetch exchange rate between two currencies.
import { useExchangeRateAction } from "@aave/react";
const [execute, state] = useExchangeRateAction();
const result = await execute(request);
Arguments:
request.- Source asset (from: Asset Input erc20ornative)request.- Target currencyto: Currency request.- Historical date (optional)at?: Date
Returns:
state.- Loading stateloading: boolean state.- Error fetching the exchange rateerror: Unexpected Error | undefined state.- Whether the hook has been calledcalled: boolean state.- Exchange rate valuedata: Exchange Amount | undefined result: Result<Exchange- Type-safe success or failure value:Amount, Unexpected Error> Ok<Exchange- Exchange rate valueAmount> Err<Unexpected- Error fetching the exchange rateError>
useHub
Declarative hook to fetch a specific hub by address and chain ID.
import { useHub } from "@aave/react";
const { data, loading, error } = useHub({
pause,
...request,
});
const { data } = useHub({
pause,
suspense: true,
...request,
});
Arguments:
request.one of:query: Hub Request Query hub- Hub address and chain IDInput: Hub Input address: Evm- Hub contract addressAddress chain- Chain ID where the hub existsId: Chain Id
hub- Hub IDId: Hub Id
request.- Currency for value conversions (optional)currency?: Currency request.- Time window for change values (optional)time Window?: Time Window pause?: boolean- Pause the query (default: false)
Returns:
data: Hub | null | undefined- Hub information or null if not foundloading: boolean- Loading stateerror: Unexpected- Error fetching the hubError | undefined
useHubAssetInterestRateModel
Declarative hook to fetch the interest rate model curve for a specific Hub Asset.
import { useHubAssetInterestRateModel } from "@aave/react";
const { data, loading, error } = useHubAssetInterestRateModel({
pause,
...request,
});
const { data } = useHubAssetInterestRateModel({
pause,
suspense: true,
...request,
});
Arguments:
request.:query: Hub Asset Interest Rate Model Request Query hub- Hub Asset IDAsset Id: Hub Asset Id
request.- Currency for value conversions (optional)currency?: Currency pause?: boolean- Pause the query (default: false)
Returns:
data: Hub- Array of interest rate model data pointsAsset Interest Rate Model Point[] | undefined loading: boolean- Loading stateerror: Unexpected- Error fetching the interest rate modelError | undefined
useHubAssetInterestRateModelAction
Imperative hook to fetch interest rate model data for a Hub Asset.
import { useHubAssetInterestRateModelAction } from "@aave/react";
const [execute, state] = useHubAssetInterestRateModelAction(options);
const result = await execute(request);
Options:
options.- Currency for value conversions (default: USD)currency?: Currency
Arguments:
request.:query: Hub Asset Interest Rate Model Request Query hub- Hub Asset IDAsset Id: Hub Asset Id
Returns:
state.- Loading stateloading: boolean state.- Error fetching the interest rate modelerror: Unexpected Error | undefined state.- Whether the hook has been calledcalled: boolean state.- Array of interest rate model data pointsdata: Hub Asset Interest Rate Model Point[] | undefined result: Result<Hub- Type-safe success or failure value:Asset Interest Rate Model Point[], Unexpected Error> Ok<Hub- Array of interest rate model data pointsAsset Interest Rate Model Point[]> Err<Unexpected- Error fetching the interest rate modelError>
useHubAssets
Declarative hook to fetch Hub Assets for a specific chain and optional hub/user filtering.
import { useHubAssets } from "@aave/react";
const { data, loading, error } = useHubAssets({
pause,
...request,
});
const { data } = useHubAssets({
pause,
suspense: true,
...request,
});
Arguments:
request.one of:query: Hub Assets Request Query hub- Hub address and chain IDInput: Hub Input address: Evm- Hub contract addressAddress chain- Chain IDId: Chain Id
hub- Hub IDId: Hub Id
request.- Filter by user address (optional)user?: Evm Address request.one of:order By?: Hub Assets Request Order By asset- Sort by asset nameName: Order Direction available- Sort by available liquidityLiquidity: Order Direction supply- Sort by supply APYApy: Order Direction borrow- Sort by borrow APYApy: Order Direction
request.- Currency for value conversions (optional)currency?: Currency pause?: boolean- Pause the query (default: false)
Returns:
data: Hub- Array of Hub AssetsAsset[] | undefined loading: boolean- Loading stateerror: Unexpected- Error fetching the Hub AssetsError | undefined
useHubs
Declarative hook to fetch all available hubs.
import { useHubs } from "@aave/react";
const { data, loading, error } = useHubs({
pause,
...request,
});
const { data } = useHubs({
pause,
suspense: true,
...request,
});
Arguments:
request.one of:query: Hubs Request Query tokens: [Erc20- Filter by underlying tokensInput!] address: Evm- Token contract addressAddress chain- Token chain IDId: Chain Id
asset- Filter by asset IDsIds: [Asset Id!] chain- Filter by chain IDsIds: [Chain Id!]
request.one of:order By?: Hubs Request Order By name: Order- Sort by hub nameDirection total- Sort by total borrowed amountBorrowed: Order Direction total- Sort by total supplied amountSupplied: Order Direction
request.- Currency for value conversions (optional)currency?: Currency request.- Time window for change values (optional)time Window?: Time Window pause?: boolean- Pause the query (default: false)
Returns:
data: Hub[] | undefined- Array of hubsloading: boolean- Loading stateerror: Unexpected- Error fetching the hubsError | undefined
useHubsAction
Imperative hook to fetch hubs data.
import { useHubsAction } from "@aave/react";
const [execute, state] = useHubsAction(options);
const result = await execute(request);
Options:
options.- Currency for value conversions (default: USD)currency?: Currency
Arguments:
request.one of:query: Hubs Request Query tokens: [Erc20- Filter by underlying tokensInput!] address: Evm- Token contract addressAddress chain- Token chain IDId: Chain Id
chain- Filter by chain IDsIds: [Chain Id!]
request.one of:order By?: Hubs Request Order By name: Order- Sort by hub nameDirection total- Sort by total borrowed amountBorrowed: Order Direction total- Sort by total supplied amountSupplied: Order Direction
Returns:
state.- Loading stateloading: boolean state.- Error fetching the hubserror: Unexpected Error | undefined state.- Whether the hook has been calledcalled: boolean state.- Array of hubsdata: Hub[] | undefined result: Result<Hub[], Unexpected- Type-safe success or failure value:Error> Ok<Hub[]>- Array of hubsErr<Unexpected- Error fetching the hubsError>
useHubSpokeConfigs
Declarative hook to fetch per-asset configuration for a specific hub and spoke pair.
import { useHubSpokeConfigs } from "@aave/react";
const { data, loading, error } = useHubSpokeConfigs({
pause,
...request,
});
const { data } = useHubSpokeConfigs({
pause,
suspense: true,
...request,
});
Arguments:
request.- Hub IDhub Id: Hub Id request.- Spoke IDspoke Id: Spoke Id request.- Currency for nested amount conversions (default: USD)currency?: Currency request.- Time window for nested change calculations (default: LAST_DAY)time Window?: Time Window pause?: boolean- Pause the query (default: false)
Returns:
data: Hub- Array of hub-spoke asset configurationsSpoke Config[] | undefined loading: boolean- Loading stateerror: Unexpected- Error fetching the configsError | undefined
useHubSummaryHistory
Declarative hook to fetch historical summary data for a specific hub.
import { useHubSummaryHistory } from "@aave/react";
const { data, loading, error } = useHubSummaryHistory({
pause,
...request,
});
const { data } = useHubSummaryHistory({
pause,
suspense: true,
...request,
});
Arguments:
request.one of:query: Hub Summary History Request Query hub- Hub address and chain IDInput: Hub Input address: Evm- Hub contract addressAddress chain- Chain ID where the hub existsId: Chain Id
hub- Hub IDId: Hub Id
request.- Currency for value conversions (default: USD)currency?: Currency request.- Time window for historical data (default: LAST_DAY)window?: Time Window pause?: boolean- Pause the query (default: false)
Returns:
data: Hub- Array of historical hub summary data pointsSummary Sample[] | undefined loading: boolean- Loading stateerror: Unexpected- Error fetching the hub summary historyError | undefined
useLeverage
Imperative hook to open or increase a leveraged position through the Order API. It flash-loans the debt asset, swaps it into the collateral asset, supplies the collateral, then borrows the debt to repay the flash loan.
import { useLeverage } from "@aave/react";
const [execute, state] = useLeverage((plan) => {
switch (plan.__typename) {
case "OrderAdapterApproval":
case "OrderPositionManagerApproval":
case "OrderSetCollateralApproval":
return signTypedData(plan.bySignature);
case "OrderErc20Approval":
return plan.byPermit
? signTypedData(plan.byPermit)
: sendTransaction(plan.byTransaction);
case "OrderTypedData":
return signTypedData(plan);
case "OrderTransactionRequest":
return sendTransaction(plan.transaction);
}
});
const result = await execute(request);
Arguments:
request: Leverageone of:Quote Request market: Market- Market order quoteLeverage Quote Input limit: Limit- Limit order quoteLeverage Quote Input from- Quote from an existing quote ID (Quote: From Quote Leverage Quote Input quote)Id
request.- Currency for value conversions (default: USD)currency?: Currency request.- Pre-built permit for the collateral top-up (optional; normally the handler signs it)permit Sig?: ERC20 Permit Signature
Returns:
state.- Loading stateloading: boolean state.- Error executing the ordererror: E | undefined state.- Whether the hook has been calledcalled: boolean state.- Order receipt with thedata: Order Receipt | undefined orderId result: Result<Order- Type-safe success or failure value:Receipt, E> Ok<Order- Order receipt with theReceipt> orderId Err<E>- Error executing the order
Where E is one of:
CancelError SigningError TimeoutError TransactionError UnexpectedError ValidationError<Insufficient Balance Error | Insufficient Liquidity Error>
useLeverageQuote
Declarative hook to fetch a quote for a leverage operation.
import { useLeverageQuote } from "@aave/react";
const { data, loading, error } = useLeverageQuote({
pause,
...request,
});
const { data } = useLeverageQuote({
pause,
suspense: true,
...request,
});
Arguments:
request: Leverageone of:Quote Request market: Market- Market order quoteLeverage Quote Input limit: Limit- Limit order quoteLeverage Quote Input from- Quote from an existing quote ID (Quote: From Quote Leverage Quote Input quote)Id
request.- Currency for value conversions (default: USD)currency?: Currency pause?: boolean- Pause the query (default: false)
Returns:
data: Leverage- Leverage quote, required approvals, andApprovals Required | undefined maxSafe Multiplier loading: boolean- Loading stateerror: Unexpected- Error fetching the quoteError | undefined
useLeverageQuoteAction
Imperative hook to fetch a quote for a leverage operation.
import { useLeverageQuoteAction } from "@aave/react";
const [execute, state] = useLeverageQuoteAction(options);
const result = await execute(request);
Options:
options.- Currency for value conversions (default: USD)currency?: Currency
Arguments:
request: Leverageone of:Quote Request market: Market- Market order quoteLeverage Quote Input limit: Limit- Limit order quoteLeverage Quote Input from- Quote from an existing quote ID (Quote: From Quote Leverage Quote Input quote)Id
Returns:
state.- Loading stateloading: boolean state.- Error fetching the quoteerror: E | undefined state.- Whether the hook has been calledcalled: boolean state.- Leverage quote, required approvals, anddata: Leverage Approvals Required | undefined maxSafe Multiplier result: Result<Leverage- Type-safe success or failure value:Approvals Required, E> Ok<Leverage- Leverage quote, required approvals, andApprovals Required> maxSafe Multiplier Err<E>- Error fetching the quote
Where E is one of:
UnexpectedError ValidationError<Insufficient Liquidity Error>
useLiquidatePosition
Imperative transaction hook to liquidate an undercollateralized position.
import { useLiquidatePosition } from "@aave/react";
const [execute, state] = useLiquidatePosition((plan) => {
switch (plan.__typename) {
case "TransactionRequest":
return sendTransaction(plan);
case "Erc20Approval":
return sendTransaction(plan.byTransaction);
case "PreContractActionRequired":
return sendTransaction(plan.transaction);
}
});
const result = await execute(request);
Arguments:
request.- Collateral reserve IDcollateral: Reserve Id request.- Debt reserve IDdebt: Reserve Id request.one of:amount: Liquidate Position Debt Amount exact: { value: Big- Exact debt amount to coverDecimal, permit Sig?: ERC20 Permit Signature } max: true- Cover the maximum liquidatable debt
request.- Liquidator addressliquidator: Evm Address request.- User address to liquidateuser: Evm Address request.- Receive collateral shares instead of the underlying asset (default: false)receive Shares?: boolean
Returns:
state.- Loading stateloading: boolean state.- Error executing the transactionerror: E | undefined state.- Whether the hook has been calledcalled: boolean state.- Transaction receiptdata: Transaction Receipt | undefined result: Result<Transaction- Type-safe success or failure value:Receipt, E> Ok<Transaction- Transaction receiptReceipt> Err<E>- Error executing the transaction
Where E is one of:
CancelError SigningError TimeoutError TransactionError UnexpectedError ValidationError<Insufficient Balance Error>
useMultichainAsset
Declarative hook to fetch information about an asset (ERC-20 token) aggregated across multiple chains, matched by its token info ID or symbol.
import { useMultichainAsset } from "@aave/react";
const { data, loading, error } = useMultichainAsset({
pause,
...request,
});
const { data } = useMultichainAsset({
pause,
suspense: true,
...request,
});
Arguments:
request.one of:query: Multichain Asset Request Query token- Token info IDInfo: Token Info Id symbol: String- Token symbol (e.g."USDC")
request.- Restrict aggregation to specific chains (optional)chain Ids?: [Chain Id!] request.- Fold Merkl rewards into APY ranges (default: true)include Rewards?: boolean currency?: Currency- Currency for value conversions (default: USD)time- Time window for historical changes (default: LastDay)Window?: Time Window pause?: boolean- Pause the query (default: false)
Returns:
data: Multichain- Aggregated asset data (Asset | undefined assetsandsummary)loading: boolean- Loading stateerror: Unexpected- Error fetching the assetError | undefined
useNetworkFee
Declarative hook to fetch the network fee for an activity (experimental).
import { useNetworkFee } from "@aave/react";
const { data, loading, error } = useNetworkFee({
pause,
...request,
});
const { data } = useNetworkFee({
pause,
suspense: true,
...request,
});
Arguments:
request.one of:query: Use Network Fee Request Query activity: Activity- Calculate fee for past activityItem estimate: Preview- Estimate fee for preview action, one of:Action supply: Supply- Supply actionRequest borrow: Borrow- Borrow actionRequest repay: Repay- Repay actionRequest withdraw: Withdraw- Withdraw actionRequest set- Collateral changesUser Supplies As Collateral: Set User Supplies As Collateral Request update- Position condition updatesUser Position Conditions: Update User Position Conditions Request
request.- Currency for value conversions (optional)currency?: Currency pause?: boolean- Pause the query (default: false)
Returns:
data: Native- Network fee amountAmount | undefined loading: boolean- Loading stateerror: Unexpected- Error fetching the network feeError | undefined
useOrderStatus
Declarative hook to monitor the status of an order. It polls until the order is fulfilled, cancelled, or expired.
import { useOrderStatus } from "@aave/react";
const { data, loading, error } = useOrderStatus({
pause,
...request,
});
const { data } = useOrderStatus({
pause,
suspense: true,
...request,
});
Arguments:
request.- Order IDid: Order Id request.- Currency for value conversions (default: USD)currency?: Currency request.- Time window for change values (optional)time Window?: Time Window pause?: boolean- Pause the query (default: false)
Returns:
data: Order- Current order status, one ofStatus | undefined Order,Open Order,Pending Signature Order,Fulfilled Order, orCancelled OrderExpired loading: boolean- Loading stateerror: Unexpected- Error fetching the order statusError | undefined
usePendingOrders
Declarative hook to fetch a user’s orders on a chain.
import { usePendingOrders } from "@aave/react";
const { data, loading, error } = usePendingOrders({
pause,
...request,
});
const { data } = usePendingOrders({
pause,
suspense: true,
...request,
});
Arguments:
request.- Chain IDchain Id: Chain Id request.- User addressuser: Evm Address request.- Filter by status:filter By?: Order Status Filter[] Open,Pending,Signature Fulfilled,Cancelled, orExpired(optional)request.- Page size (default:page Size?: Page Size FIFTY)request.- Pagination cursor (optional)cursor?: Cursor request.- Currency for value conversions (default: USD)currency?: Currency request.- Time window for change values (optional)time Window?: Time Window pause?: boolean- Pause the query (default: false)
Returns:
data: Paginated- Paginated orders (Orders Result | undefined items: Order,Status[] page)Info loading: boolean- Loading stateerror: Unexpected- Error fetching the ordersError | undefined
usePreview
Declarative hook to preview the outcome of a transaction before executing.
import { usePreview } from "@aave/react";
const { data, loading, error } = usePreview({
pause,
...request,
});
const { data } = usePreview({
pause,
suspense: true,
...request,
});
Arguments:
request.one of:action: Preview Action Input supply: Supply- Preview a supply actionRequest borrow: Borrow- Preview a borrow actionRequest repay: Repay- Preview a repay actionRequest withdraw: Withdraw- Preview a withdraw actionRequest set- Preview a collateral changeUser Supplies As Collateral: Set User Supplies As Collateral Request
request.- Currency for value conversions (optional)currency?: Currency pause?: boolean- Pause the query (default: false)
Returns:
data: Preview- Preview of user position after the actionUser Position | undefined loading: boolean- Loading stateerror: Unexpected- Error fetching the previewError | undefined
usePreviewAction
Imperative hook to preview the outcome of a transaction before executing.
import { usePreviewAction } from "@aave/react";
const [execute, state] = usePreviewAction(options);
const result = await execute(request);
Options:
options.- Currency for value conversions (default: USD)currency?: Currency
Arguments:
request.one of:action: Preview Action Input supply: Supply- Preview a supply actionRequest borrow: Borrow- Preview a borrow actionRequest repay: Repay- Preview a repay actionRequest withdraw: Withdraw- Preview a withdraw actionRequest set- Preview a collateral changeUser Supplies As Collateral: Set User Supplies As Collateral Request
Returns:
state.- Loading stateloading: boolean state.- Error fetching the previewerror: Unexpected Error | undefined state.- Whether the hook has been calledcalled: boolean state.- Preview of user position after the actiondata: Preview User Position | undefined result: Result<Preview- Type-safe success or failure value:User Position, Unexpected Error> Ok<Preview- Preview of user position after the actionUser Position> Err<Unexpected- Error fetching the previewError>
useProtocolHistory
Declarative hook to fetch protocol-wide historical data (deposits, borrows).
import { Currency, TimeWindow } from "@aave/react";
import { useProtocolHistory } from "@aave/react";
const { data, loading, error } = useProtocolHistory({
currency: Currency.Usd,
window: TimeWindow.LastWeek,
pause,
});
const { data } = useProtocolHistory({
currency: Currency.Usd,
window: TimeWindow.LastWeek,
suspense: true,
pause,
});
Arguments:
request.- Currency for exchange amounts (default: USD)currency: Currency request.- Time window for historical data (default: LAST_DAY)window: Time Window pause?: boolean- Pause the query (default: false)
Returns:
data: Protocol- Array of protocol history data pointsHistory Sample[] | undefined loading: boolean- Loading stateerror: Unexpected- Error fetching the protocol historyError | undefined
useRenounceSpokeUserPositionManager
Imperative transaction hook to renounce a position manager of a user for a specific spoke.
import { useRenounceSpokeUserPositionManager } from "@aave/react";
const [execute, state] = useRenounceSpokeUserPositionManager((transaction) =>
sendTransaction(transaction),
);
const result = await execute(request);
Arguments:
request.- Spoke IDspoke: Spoke Id request.- Address to remove as a position managermanager: Evm Address request.- Address thatmanaging: Evm Address managerwas managing
Returns:
state.- Loading stateloading: boolean state.- Error executing the transactionerror: E | undefined state.- Whether the hook has been calledcalled: boolean state.- Transaction receiptdata: Transaction Receipt | undefined result: Result<Transaction- Type-safe success or failure value:Receipt, E> Ok<Transaction- Transaction receiptReceipt> Err<E>- Error executing the transaction
Where E is one of:
CancelError SigningError TimeoutError TransactionError UnexpectedError
useRepay
Imperative transaction hook to repay borrowed assets.
import { useRepay } from "@aave/react";
const [execute, state] = useRepay((plan) => {
switch (plan.__typename) {
case "TransactionRequest":
return sendTransaction(plan);
case "Erc20Approval":
return sendTransaction(plan.byTransaction);
case "PreContractActionRequired":
return sendTransaction(plan.transaction);
}
});
const result = await execute(request);
Arguments:
request.- Reserve IDreserve: Reserve Id request.one of:amount: Repay Amount Input With Permit erc20: { value: Amount- ERC-20 amount, whereInput, permit?: Repay Signed Permit Input } valueis{ exact: BigorDecimal } { max: true }native: Amount- Native token amount (Input { exact: BigorDecimal } { max: true })
request.- Address repaying the debtsender: Evm Address
Returns:
state.- Loading stateloading: boolean state.- Error executing the transactionerror: E | undefined state.- Whether the hook has been calledcalled: boolean state.- Transaction receiptdata: Transaction Receipt | undefined result: Result<Transaction- Type-safe success or failure value:Receipt, E> Ok<Transaction- Transaction receiptReceipt> Err<E>- Error executing the transaction
Where E is one of:
CancelError SigningError TimeoutError TransactionError UnexpectedError ValidationError<Insufficient Balance Error>
useRepayWithSupplyOrder
Imperative hook to execute a repay with supply through the Order API. It fetches a quote, collects the position-swap approval signatures, then prepares, signs, and submits the order.
import { useRepayWithSupplyOrder } from "@aave/react";
const [execute, state] = useRepayWithSupplyOrder((plan) => {
switch (plan.__typename) {
case "PositionSwapAdapterContractApproval":
case "PositionSwapPositionManagerApproval":
case "PositionSwapSetCollateralApproval":
return signTypedData(plan.bySignature);
case "OrderTypedData":
return signTypedData(plan);
case "OrderTransactionRequest":
return sendTransaction(plan.transaction);
}
});
const result = await execute(request);
Arguments:
request: Repayone of:With Supply Quote Request market: Market- Market order quoteRepay With Supply Quote Input limit: Limit- Limit order quoteRepay With Supply Quote Input from- Quote from an existing quote ID (Quote: From Quote Repay With Supply Quote Input quote)Id
request.- Currency for value conversions (default: USD)currency?: Currency
Returns:
state.- Loading stateloading: boolean state.- Error executing the ordererror: E | undefined state.- Whether the hook has been calledcalled: boolean state.- Order receipt with thedata: Order Receipt | undefined orderId result: Result<Order- Type-safe success or failure value:Receipt, E> Ok<Order- Order receipt with theReceipt> orderId Err<E>- Error executing the order
Where E is one of:
CancelError SigningError TimeoutError TransactionError UnexpectedError ValidationError<Insufficient Balance Error | Insufficient Liquidity Error>
useRepayWithSupplyQuote
Declarative hook to fetch a quote for a repay with supply.
import { useRepayWithSupplyQuote } from "@aave/react";
const { data, loading, error } = useRepayWithSupplyQuote({
pause,
...request,
});
const { data } = useRepayWithSupplyQuote({
pause,
suspense: true,
...request,
});
Arguments:
request: Repayone of:With Supply Quote Request market: Market- Market order quoteRepay With Supply Quote Input limit: Limit- Limit order quoteRepay With Supply Quote Input from- Quote from an existing quote ID (Quote: From Quote Repay With Supply Quote Input quote)Id
request.- Currency for value conversions (default: USD)currency?: Currency pause?: boolean- Pause the query (default: false)
Returns:
data: Swap- Swap quoteQuote | undefined loading: boolean- Loading stateerror: Unexpected- Error fetching the quoteError | undefined
useRepayWithSupplyQuoteAction
Imperative hook to fetch a quote for a repay with supply.
import { useRepayWithSupplyQuoteAction } from "@aave/react";
const [execute, state] = useRepayWithSupplyQuoteAction(options);
const result = await execute(request);
Options:
options.- Currency for value conversions (default: USD)currency?: Currency
Arguments:
request: Repayone of:With Supply Quote Request market: Market- Market order quoteRepay With Supply Quote Input limit: Limit- Limit order quoteRepay With Supply Quote Input from- Quote from an existing quote ID (Quote: From Quote Repay With Supply Quote Input quote)Id
Returns:
state.- Loading stateloading: boolean state.- Error fetching the quoteerror: E | undefined state.- Whether the hook has been calledcalled: boolean state.- Swap quotedata: Swap Quote | undefined result: Result<Swap- Type-safe success or failure value:Quote, E> Ok<Swap- Swap quoteQuote> Err<E>- Error fetching the quote
Where E is one of:
UnexpectedError ValidationError<Insufficient Liquidity Error>
useReserve
Declarative hook to fetch a specific reserve by reserve ID, spoke, and chain.
import { useReserve } from "@aave/react";
const { data, loading, error } = useReserve({
pause,
...request,
});
const { data } = useReserve({
pause,
suspense: true,
...request,
});
Arguments:
request.one of:query: Reserve Request Query reserve- Reserve IDId: Reserve Id reserve- Reserve inputInput: Reserve Input chain- Chain IDId: Chain Id spoke: Evm- Spoke contract addressAddress on- On-chain reserve IDChain Id: On Chain Reserve Id
request.- User address for position-specific data (optional)user?: Evm Address request.- Currency for value conversions (optional)currency?: Currency request.- Time window for change values (optional)time Window?: Time Window pause?: boolean- Pause the query (default: false)
Returns:
data: Reserve | null | undefined- Reserve information or null if not foundloading: boolean- Loading stateerror: Unexpected- Error fetching the reserveError | undefined
useReserveAction
Imperative hook to fetch reserve data.
import { useReserveAction } from "@aave/react";
const [execute, state] = useReserveAction(options);
const result = await execute(request);
Options:
options.- Currency for value conversions (default: USD)currency?: Currency options.time Window?: Time Window
Arguments:
request.one of:query: Reserve Request Query reserve- Reserve IDId: Reserve Id reserve- Reserve inputInput: Reserve Input chain- Chain IDId: Chain Id spoke: Evm- Spoke contract addressAddress on- On-chain reserve IDChain Id: On Chain Reserve Id
request.- User address for position-specific data (optional)user?: Evm Address
Returns:
state.- Loading stateloading: boolean state.- Error fetching the reserveerror: Unexpected Error | undefined state.- Whether the hook has been calledcalled: boolean state.- Reserve data or null if not founddata: Reserve | null | undefined result: Result<Reserve | null, Unexpected- Type-safe success or failure value:Error> Ok<Reserve | null>- Reserve data or null if not foundErr<Unexpected- Error fetching the reserveError>
useReserveHolders
Declarative hook to fetch a paginated list of top holders for a specific reserve.
import { ReserveHoldersFilter, useReserveHolders } from "@aave/react";
const { data, loading, error } = useReserveHolders({
reserve: { reserveId },
filter: ReserveHoldersFilter.Supplied,
});
import { ReserveHoldersFilter, useReserveHolders } from "@aave/react";
const { data } = useReserveHolders({
reserve: { reserveId },
filter: ReserveHoldersFilter.Supplied,
suspense: true,
});
Arguments:
request.one of:reserve: Reserve Request Query reserve- Reserve IDId: Reserve Id
request.- Filter by holder type (default:filter?: Reserve Holders Filter Supplied):Reserve- Wallets that have supplied to this reserveHolders Filter. Supplied Reserve- Wallets that have borrowed from this reserveHolders Filter. Borrowed
request.- Number of results per page (default:page Size?: Page Size TEN)request.- Pagination cursorcursor?: Cursor pause?: boolean- Pause the query (default: false)
Returns:
data: PaginatedReserve Holders Result | undefined data.- Array of holdersitems: Reserve Holder[] address: Evm- Holder wallet addressAddress amount: Erc20- Amount supplied or borrowedAmount weight: Percent- Percentage share of the totalNumber
data.- Pagination info withpage Info: Paginated Result Info nextandprevcursors
loading: boolean- Loading stateerror: Unexpected- Error fetching holdersError | undefined
useReserveHoldersAction
Imperative hook to fetch reserve holders on demand (e.g., for pagination).
import { useReserveHoldersAction } from "@aave/react";
const [execute, state] = useReserveHoldersAction(options);
const result = await execute(request);
Options:
options.- Currency for value conversions (default: USD)currency?: Currency
Arguments:
request.- Reserve query (seereserve: Reserve Request Query use)Reserve Holders request.- Holder type filterfilter?: Reserve Holders Filter request.- Page sizepage Size?: Page Size request.- Pagination cursorcursor?: Cursor
Returns:
state.- Loading stateloading: boolean state.- Error fetching holderserror: Unexpected Error | undefined state.- Whether the hook has been calledcalled: boolean state.- Paginated resultdata: Paginated Reserve Holders Result | undefined result: Result<Paginated- Type-safe success or failure value:Reserve Holders Result, Unexpected Error> Ok<Paginated- Paginated holder dataReserve Holders Result> Err<Unexpected- Error fetching holdersError>
useReserves
Declarative hook to fetch reserves based on specified criteria.
import { useReserves } from "@aave/react";
const { data, loading, error } = useReserves({
pause,
...request,
});
const { data } = useReserves({
pause,
suspense: true,
...request,
});
Arguments:
request.one of:query: Reserves Request Query spoke: Spoke- Get reserves for a spokeInput address: Evm- Spoke contract addressAddress chain- Chain IDId: Chain Id
spoke- Get reserves by spoke IDId: Spoke Id tokens: [Erc20- Get reserves with underlying tokensInput!] address: Evm- Token contract addressAddress chain- Token chain IDId: Chain Id
hub- Get reserves on hub for underlyingToken: Hub Token Input chain- Chain IDId: Chain Id hub: Evm- Hub contract addressAddress token: Evm- Token addressAddress
chain- Get reserves on chainsIds: [Chain Id!] spoke- Get reserves for spoke for underlyingToken: Spoke Token Input spoke: Spoke- Spoke IDId token: Evm- Token addressAddress
hub: Hub- Get reserves on hubInput user- Get reserves by user position IDPosition Id: User Position Id hub- Get reserves by hub IDId: Hub Id hub- Get reserves on a hub (by ID) for an underlying (Id Token: Hub Id Token Input hub,Id token)chain- Token categories per chain (Token Categories: [Chain Token Categories!] chain,Id categories)token- Get reserves by canonical token info ID, across chainsInfo: Token Info Id symbol- Get reserves by raw symbol (Chain Ids: Symbol Input symbol,chain)Ids?
request.- User address to includeuser?: Evm Address Reserve(optional)User State request.- Filter criteria (optional):filter?: Reserves Request Filter Supply,Borrow,Collateral, orAllrequest.one of:order By?: Reserves Request Order By asset- Sort by asset nameName: Order Direction user- Sort by user balanceBalance: Order Direction supply- Sort by supply APYApy: Order Direction supply- Sort by available supplyAvailable: Order Direction borrow- Sort by borrow APYApy: Order Direction borrow- Sort by available borrowAvailable: Order Direction collateral- Sort by collateral factorFactor: Order Direction
request.- Currency for value conversions (optional)currency?: Currency request.- Time window for change values (optional)time Window?: Time Window pause?: boolean- Pause the query (default: false)
Returns:
data: Reserve[] | undefined- Array of reservesloading: boolean- Loading stateerror: Unexpected- Error fetching reservesError | undefined
useReservesAction
Imperative hook to fetch reserves list.
import { useReservesAction } from "@aave/react";
const [execute, state] = useReservesAction(options);
const result = await execute(request);
Options:
options.- Currency for value conversions (default: USD)currency?: Currency options.- Time window for change values (optional)time Window?: Time Window
Arguments:
request.one of:query: Reserves Request Query spoke: Spoke- Get all reserves for a spokeInput tokens: [Erc20- Get all reserves with underlying tokensInput!] address: Evm- Token contract addressAddress chain- Token chain IDId: Chain Id
hub- Get all reserves on a hub for an underlyingToken: Hub Token Input chain- Chain IDId: Chain Id hub: Evm- Hub contract addressAddress token: Evm- Token addressAddress
chain- Get all reserves on a list of chainsIds: [Chain Id!] spoke- Get all reserves for a spoke for an underlyingToken: Spoke Token Input spoke: Spoke- Spoke IDId token: Evm- Token addressAddress
hub: Hub- Get all tokens on a hubInput user- Get all reserves by user position IDPosition Id: User Position Id hub- Get reserves by hub IDId: Hub Id hub- Get reserves on a hub (by ID) for an underlying (Id Token: Hub Id Token Input hub,Id token)chain- Token categories per chain (Token Categories: [Chain Token Categories!] chain,Id categories)token- Get reserves by canonical token info ID, across chainsInfo: Token Info Id symbol- Get reserves by raw symbol (Chain Ids: Symbol Input symbol,chain)Ids?
request.- User address to includeuser?: Evm Address Reserve(optional)User State request.- Filter criteria (optional):filter?: Reserves Request Filter Supply,Borrow,Collateral, orAll
Returns:
state.- Loading stateloading: boolean state.- Error fetching reserveserror: Unexpected Error | undefined state.- Whether the hook has been calledcalled: boolean state.- Array of reservesdata: Reserve[] | undefined result: Result<Reserve[], Unexpected- Type-safe success or failure value:Error> Ok<Reserve[]>- Array of reservesErr<Unexpected- Error fetching reservesError>
useSendTransaction
Send transactions through connected wallet.
import { useSendTransaction } from "@aave/react/viem";
import { useWalletClient } from "wagmi";
const { data: walletClient } = useWalletClient();
const [sendTransaction, state] = useSendTransaction(walletClient);
import { useSendTransaction } from "@aave/react/ethers";
import { ethers } from "ethers";
const provider = new ethers.BrowserProvider(window.ethereum);
const signer = await provider.getSigner();
const [sendTransaction, state] = useSendTransaction(signer);
import { useSendTransaction } from "@aave/react/privy";
const [sendTransaction, state] = useSendTransaction();
import { useSendTransaction } from "@aave/react/thirdweb";
import { createThirdwebClient } from "thirdweb";
const thirdwebClient = createThirdwebClient({
clientId: "<YOUR_THIRDWEB_CLIENT_ID>",
});
const [sendTransaction, state] = useSendTransaction(thirdwebClient);
Arguments:
request: Transaction- Transaction request to sendRequest
Returns:
state.- Loading stateloading: boolean state.- Error sending the transactionerror: Send Transaction Error | undefined state.- Whether the hook has been calledcalled: boolean state.- Pending transactiondata: Pending Transaction | undefined result: Result<Pending- Type-safe success or failure value:Transaction, Send Transaction Error> Ok<Pending- Pending transactionTransaction> Err<Send- Error sending the transactionTransaction Error>
Where Send is one of:
CancelError SigningError UnexpectedError
useSetSpokeUserPositionManager
Imperative transaction hook to set a position manager for a spoke.
import { useSetSpokeUserPositionManager } from "@aave/react";
const [execute, state] = useSetSpokeUserPositionManager((transaction) =>
sendTransaction(transaction),
);
const result = await execute(request);
Arguments:
request.- Chain IDchain Id: Chain Id request.- Spoke IDspoke: Spoke Id request.- Position manager addressmanager: Evm Address
Returns:
state.- Loading stateloading: boolean state.- Error executing the transactionerror: E | undefined state.- Whether the hook has been calledcalled: boolean state.- Transaction receiptdata: Transaction Receipt | undefined result: Result<Transaction- Type-safe success or failure value:Receipt, E> Ok<Transaction- Transaction receiptReceipt> Err<E>- Error executing the transaction
Where E is one of:
CancelError SigningError TimeoutError TransactionError UnexpectedError
useSetUserSuppliesAsCollateral
Imperative transaction hook to enable or disable assets as collateral.
import { useSetUserSuppliesAsCollateral } from "@aave/react";
const [execute, state] = useSetUserSuppliesAsCollateral((transaction) =>
sendTransaction(transaction),
);
const result = await execute(request);
Arguments:
request.- Array of collateral changeschanges: User Supply As Collateral[] changes[].- Reserve IDreserve: Reserve Id changes[].- Enable or disable as collateralenable Collateral: boolean
request.- User’s addresssender: Evm Address
Returns:
state.- Loading stateloading: boolean state.- Error executing the transactionerror: E | undefined state.- Whether the hook has been calledcalled: boolean state.- Transaction receiptdata: Transaction Receipt | undefined result: Result<Transaction- Type-safe success or failure value:Receipt, E> Ok<Transaction- Transaction receiptReceipt> Err<Error>- Error executing the transaction
Where E is one of:
CancelError SigningError TimeoutError TransactionError UnexpectedError
useSignTypedData
Imperative transaction hook to sign EIP-712 typed data for ERC-20 permits and swap intents.
This hook provides a unified interface for signing all types of typed data in AaveKit React. It returns a raw signature that is automatically wrapped with deadline information by transaction hooks like use, use, and use.
import { useSignTypedData } from "@aave/react/viem";
import { useWalletClient } from "wagmi";
const { data: walletClient } = useWalletClient();
const [execute, state] = useSignTypedData(walletClient);
const result = await execute(typedData);
import { useSignTypedData } from "@aave/react/ethers";
import { ethers } from "ethers";
const provider = new ethers.BrowserProvider(window.ethereum);
const signer = await provider.getSigner();
const [execute, state] = useSignTypedData(signer);
const result = await execute(typedData);
import { useSignTypedData } from "@aave/react/privy";
const [execute, state] = useSignTypedData();
const result = await execute(typedData);
import { useSignTypedData } from "@aave/react/thirdweb";
const [execute, state] = useSignTypedData();
const result = await execute(typedData);
Arguments:
typed- The EIP-712 typed data to sign.Data: Typed Data
Returns:
state.- Loading stateloading: boolean state.- Error signing the typed dataerror: Sign Typed Data Error | undefined state.- Whether the hook has been calledcalled: boolean state.- Raw signature (deadline wrapping is handled automatically by transaction hooks)data: Signature | undefined result: Result<Signature, Sign- Type-safe success or failure value:Typed Data Error> Ok<Signature>- Raw signatureErr<Sign- Error signing the typed dataTyped Data Error>
useSpoke
Declarative hook to fetch a specific spoke by address and chain ID.
import { useSpoke } from "@aave/react";
const { data, loading, error } = useSpoke({
pause,
...request,
});
const { data } = useSpoke({
pause,
suspense: true,
...request,
});
Arguments:
request.one of:query: Spoke Request Query spoke- Spoke IDId: Spoke Id spoke: Spoke- Spoke address and chain IDInput address: Evm- Spoke contract addressAddress chain- Chain IDId: Chain Id
request.- Currency for value conversions (optional)currency?: Currency request.- Time window for change values (optional)time Window?: Time Window pause?: boolean- Pause the query (default: false)
Returns:
data: Spoke | null | undefined- Spoke information or null if not foundloading: boolean- Loading stateerror: Unexpected- Error fetching the spokeError | undefined
useSpokePositionManagers
Declarative hook to fetch paginated list of position managers for a spoke.
import { useSpokePositionManagers } from "@aave/react";
const { data, loading, error } = useSpokePositionManagers({
pause,
...request,
});
const { data } = useSpokePositionManagers({
pause,
suspense: true,
...request,
});
Arguments:
request.- Spoke address and chain IDspoke: Spoke Input pause?: boolean- Pause the query (default: false)
Returns:
data: Paginated- Paginated list of position managersSpoke Position Manager Result | undefined loading: boolean- Loading stateerror: Unexpected- Error fetching position managersError | undefined
useSpokes
Declarative hook to fetch spokes based on specified criteria.
import { useSpokes } from "@aave/react";
const { data, loading, error } = useSpokes({
pause,
...request,
});
const { data } = useSpokes({
pause,
suspense: true,
...request,
});
Arguments:
request.one of:query: Spokes Request Query hub- Spokes linked to a hub, by hub IDId: Hub Id hub: Hub- Spokes linked to a hub, by hub address and chain IDInput chain- Spokes on the given chainsIds: [Chain Id!]
request.- Currency for value conversions (optional)currency?: Currency request.- Time window for change values (optional)time Window?: Time Window pause?: boolean- Pause the query (default: false)
Returns:
data: Spoke[] | undefined- Array of spokesloading: boolean- Loading stateerror: Unexpected- Error fetching the spokesError | undefined
useSpokeSummaryHistory
Declarative hook to fetch historical deposits and borrows for a specific spoke.
import { useSpokeSummaryHistory } from "@aave/react";
const { data, loading, error } = useSpokeSummaryHistory({
pause,
...request,
});
const { data } = useSpokeSummaryHistory({
pause,
suspense: true,
...request,
});
Arguments:
request.one of:query: Spoke Summary History Request Query spoke- Spoke address and chain IDInput: Spoke Input spoke- Spoke IDId: Spoke Id
request.- Currency for value conversions (default: USD)currency?: Currency request.- Time window for historical data (default: LAST_DAY)window?: Time Window pause?: boolean- Pause the query (default: false)
Returns:
data: Spoke- Array of historical spoke summary data pointsSummary Sample[] | undefined loading: boolean- Loading stateerror: Unexpected- Error fetching the spoke summary historyError | undefined
useSpokeUserPositionManagers
Declarative hook to fetch paginated list of user’s position managers for a spoke.
import { useSpokeUserPositionManagers } from "@aave/react";
const { data, loading, error } = useSpokeUserPositionManagers({
pause,
...request,
});
const { data } = useSpokeUserPositionManagers({
pause,
suspense: true,
...request,
});
Arguments:
request.- Spoke address and chain IDspoke: Spoke Input request.- User addressuser: Evm Address pause?: boolean- Pause the query (default: false)
Returns:
data: Paginated- Paginated list of user’s position managersSpoke User Position Manager Result | undefined loading: boolean- Loading stateerror: Unexpected- Error fetching user position managersError | undefined
useStableVault
Declarative hook to fetch a stable vault by ID.
import { useStableVault } from "@aave/react";
const { data, loading, error } = useStableVault({
pause,
...request,
});
const { data } = useStableVault({
pause,
suspense: true,
...request,
});
Arguments:
request.- Stable vault IDid: Stable Vault Id pause?: boolean- Pause the query (default: false)
Returns:
data: Stable- Stable vault or null if not foundVault | null | undefined loading: boolean- Loading stateerror: Unexpected- Error fetching the vaultError | undefined
useStableVaultClaimStatus
Declarative hook to fetch the status of a deferred withdrawal claim.
import { useStableVaultClaimStatus } from "@aave/react";
const { data, loading, error } = useStableVaultClaimStatus({
pause,
...request,
});
const { data } = useStableVaultClaimStatus({
pause,
suspense: true,
...request,
});
Arguments:
request.- Withdrawal claim IDclaim Id: Stable Vault Withdraw Claim Id pause?: boolean- Pause the query (default: false)
Returns:
data: Stable- Claim status (Vault Claim Status | undefined READYorPENDING)loading: boolean- Loading stateerror: Unexpected- Error fetching the claim statusError | undefined
useStableVaultDeposit
Imperative transaction hook to deposit assets into a stable vault.
import { useStableVaultDeposit } from "@aave/react";
const [execute, state] = useStableVaultDeposit((plan) => {
switch (plan.__typename) {
case "TransactionRequest":
return sendTransaction(plan);
case "Erc20Approval":
return sendTransaction(plan.byTransaction);
}
});
const result = await execute(request);
Arguments:
request.- Stable vault IDvault. id: Stable Vault Id request.- Depositor addressuser: Evm Address request.amount: Stable Vault Amount Input address: Evm- Token addressAddress value: Amount-Input { exact: BigorDecimal } { max: true }permit- ERC-20 permit signature (optional)Sig?: ERC20 Permit Signature
Returns:
state.- Loading stateloading: boolean state.- Error executing the transactionerror: E | undefined state.- Whether the hook has been calledcalled: boolean state.- Transaction receiptdata: Transaction Receipt | undefined result: Result<Transaction- Type-safe success or failure value:Receipt, E> Ok<Transaction- Transaction receiptReceipt> Err<E>- Error executing the transaction
Where E is one of:
CancelError SigningError TimeoutError TransactionError UnexpectedError ValidationError<Insufficient Balance Error>
useStableVaultUserPositions
Declarative hook to fetch a user’s stable vault positions.
import { useStableVaultUserPositions } from "@aave/react";
const { data, loading, error } = useStableVaultUserPositions({
pause,
...request,
});
const { data } = useStableVaultUserPositions({
pause,
suspense: true,
...request,
});
Arguments:
request.- User addressuser: Evm Address request.- Restrict to one vault (optional)filter?. vault. id: Stable Vault Id pause?: boolean- Pause the query (default: false)
Returns:
data: Stable- User positionsVault User Position[] | undefined loading: boolean- Loading stateerror: Unexpected- Error fetching the positionsError | undefined
useStableVaults
Declarative hook to fetch the stable vaults managed by an admin address.
import { useStableVaults } from "@aave/react";
const { data, loading, error } = useStableVaults({
pause,
...request,
});
const { data } = useStableVaults({
pause,
suspense: true,
...request,
});
Arguments:
request.- Vault admin addressadmin: Evm Address pause?: boolean- Pause the query (default: false)
Returns:
data: Stable- Stable vaultsVault[] | undefined loading: boolean- Loading stateerror: Unexpected- Error fetching the vaultsError | undefined
useStableVaultWithdraw
Imperative transaction hook to withdraw from a stable vault. The result is a Transaction for an instant withdrawal, or a Stable for a deferred one that must be redeemed later with use.
import { useStableVaultWithdraw } from "@aave/react";
const [execute, state] = useStableVaultWithdraw((transaction) =>
sendTransaction(transaction),
);
const result = await execute(request);
Arguments:
request.- Stable vault IDvault. id: Stable Vault Id request.- Withdrawer addressuser: Evm Address request.amount: Stable Vault Amount Input address: Evm- Token addressAddress value: Amount-Input { exact: BigorDecimal } { max: true }permit- ERC-20 permit signature (optional)Sig?: ERC20 Permit Signature
Returns:
state.- Loading stateloading: boolean state.- Error executing the transactionerror: E | undefined state.- Whether the hook has been calledcalled: boolean state.- Transaction receipt, or the withdrawal claim for a deferred withdrawaldata: Transaction Receipt | Stable Vault Withdraw Claim | undefined result: Result<Transaction- Type-safe success or failure value:Receipt | Stable Vault Withdraw Claim, E> Ok<Transaction- Transaction receipt, or the withdrawal claim for a deferred withdrawalReceipt | Stable Vault Withdraw Claim> Err<E>- Error executing the transaction
Where E is one of:
CancelError SigningError TimeoutError TransactionError UnexpectedError
useStableVaultWithdrawRedeem
Imperative transaction hook to redeem a deferred withdrawal claim once use returns READY.
import { useStableVaultWithdrawRedeem } from "@aave/react";
const [execute, state] = useStableVaultWithdrawRedeem((transaction) =>
sendTransaction(transaction),
);
const result = await execute(request);
Arguments:
request.- Withdrawal claim IDclaim Id: Stable Vault Withdraw Claim Id
Returns:
state.- Loading stateloading: boolean state.- Error executing the transactionerror: E | undefined state.- Whether the hook has been calledcalled: boolean state.- Transaction receiptdata: Transaction Receipt | undefined result: Result<Transaction- Type-safe success or failure value:Receipt, E> Ok<Transaction- Transaction receiptReceipt> Err<E>- Error executing the transaction
Where E is one of:
CancelError SigningError TimeoutError TransactionError UnexpectedError
useSupply
Imperative transaction hook to supply assets to the protocol.
import { useSupply } from "@aave/react";
const [execute, state] = useSupply((plan) => {
switch (plan.__typename) {
case "TransactionRequest":
return sendTransaction(plan);
case "Erc20Approval":
return sendTransaction(plan.byTransaction);
case "PreContractActionRequired":
return sendTransaction(plan.transaction);
}
});
const result = await execute(request);
Arguments:
request.- Reserve IDreserve: Reserve Id request.one of:amount: Reserve Amount Input With Permit erc20: { value: Big- ERC-20 amountDecimal, permit Sig?: ERC20 Permit Signature } native: Big- Native token amountDecimal
request.- Enable the supply as collateral (optional)enable Collateral?: true request.- Supplier addresssender: Evm Address
Returns:
state.- Loading stateloading: boolean state.- Error executing the transactionerror: E | undefined state.- Whether the hook has been calledcalled: boolean state.- Transaction receiptdata: Transaction Receipt | undefined result: Result<Transaction- Type-safe success or failure value:Receipt, E> Ok<Transaction- Transaction receiptReceipt> Err<E>- Error executing the transaction
Where E is one of:
CancelError SigningError TimeoutError TransactionError UnexpectedError ValidationError<Insufficient Balance Error>
useSupplyApyHistory
Declarative hook to fetch supply APY history for a specific reserve over time.
import { useSupplyApyHistory } from "@aave/react";
const { data, loading, error } = useSupplyApyHistory({
pause,
...request,
});
const { data } = useSupplyApyHistory({
pause,
suspense: true,
...request,
});
Arguments:
request.- Reserve IDreserve: Reserve Id request.- Time window for historical data (default:window?: Time Window LAST_)DAY request.- Include Merkl rewards in the rates (default: true)include Rewards?: boolean pause?: boolean- Pause the query (default: false)
Returns:
data: Apy- Array of historical APY data pointsSample[] | undefined loading: boolean- Loading stateerror: Unexpected- Error fetching the supply APY historyError | undefined
useSupplySwapOrder
Imperative hook to execute a supply swap through the Order API. It fetches a quote, collects the position-swap approval signatures, then prepares, signs, and submits the order.
import { useSupplySwapOrder } from "@aave/react";
const [execute, state] = useSupplySwapOrder((plan) => {
switch (plan.__typename) {
case "PositionSwapAdapterContractApproval":
case "PositionSwapPositionManagerApproval":
case "PositionSwapSetCollateralApproval":
return signTypedData(plan.bySignature);
case "OrderTypedData":
return signTypedData(plan);
case "OrderTransactionRequest":
return sendTransaction(plan.transaction);
}
});
const result = await execute(request);
Arguments:
request: Supplyone of:Swap Quote Request market: Market- Market order quoteSupply Swap Quote Input limit: Limit- Limit order quoteSupply Swap Quote Input from- Quote from an existing quote ID (Quote: From Quote Supply Swap Quote Input quote)Id
request.- Currency for value conversions (default: USD)currency?: Currency
Returns:
state.- Loading stateloading: boolean state.- Error executing the ordererror: E | undefined state.- Whether the hook has been calledcalled: boolean state.- Order receipt with thedata: Order Receipt | undefined orderId result: Result<Order- Type-safe success or failure value:Receipt, E> Ok<Order- Order receipt with theReceipt> orderId Err<E>- Error executing the order
Where E is one of:
CancelError SigningError TimeoutError TransactionError UnexpectedError ValidationError<Insufficient Balance Error | Insufficient Liquidity Error>
useSupplySwapQuote
Declarative hook to fetch a quote for a supply swap.
import { useSupplySwapQuote } from "@aave/react";
const { data, loading, error } = useSupplySwapQuote({
pause,
...request,
});
const { data } = useSupplySwapQuote({
pause,
suspense: true,
...request,
});
Arguments:
request: Supplyone of:Swap Quote Request market: Market- Market order quoteSupply Swap Quote Input limit: Limit- Limit order quoteSupply Swap Quote Input from- Quote from an existing quote ID (Quote: From Quote Supply Swap Quote Input quote)Id
request.- Currency for value conversions (default: USD)currency?: Currency pause?: boolean- Pause the query (default: false)
Returns:
data: Swap- Swap quoteQuote | undefined loading: boolean- Loading stateerror: Unexpected- Error fetching the quoteError | undefined
useSupplySwapQuoteAction
Imperative hook to fetch a quote for a supply swap.
import { useSupplySwapQuoteAction } from "@aave/react";
const [execute, state] = useSupplySwapQuoteAction(options);
const result = await execute(request);
Options:
options.- Currency for value conversions (default: USD)currency?: Currency
Arguments:
request: Supplyone of:Swap Quote Request market: Market- Market order quoteSupply Swap Quote Input limit: Limit- Limit order quoteSupply Swap Quote Input from- Quote from an existing quote ID (Quote: From Quote Supply Swap Quote Input quote)Id
Returns:
state.- Loading stateloading: boolean state.- Error fetching the quoteerror: E | undefined state.- Whether the hook has been calledcalled: boolean state.- Swap quotedata: Swap Quote | undefined result: Result<Swap- Type-safe success or failure value:Quote, E> Ok<Swap- Swap quoteQuote> Err<E>- Error fetching the quote
Where E is one of:
UnexpectedError ValidationError<Insufficient Liquidity Error>
useSwappableTokens
Declarative hook to fetch the tokens available for swapping.
import { useSwappableTokens } from "@aave/react";
const { data, loading, error } = useSwappableTokens({
pause,
...request,
});
const { data } = useSwappableTokens({
pause,
suspense: true,
...request,
});
Arguments:
request.one of:query?: Swappable Tokens Request Query tokens: [Erc20- Filter by tokensInput!] chain- Filter by chain IDsIds: [Chain Id!] from: Swappable- Destination tokens for this source token (Token Input erc20ornative)to: Swappable- Source tokens for this destination token (Token Input erc20ornative)
pause?: boolean- Pause the query (default: false)
Returns:
data: Token[] | undefined- Swappable tokensloading: boolean- Loading stateerror: Unexpected- Error fetching the tokensError | undefined
useSwapStatus
Deprecated: use use instead. The swap API remains functional but will be removed in a later release.
Declarative hook to monitor the status of a swap operation in real-time.
import { useSwapStatus } from "@aave/react";
const { data, loading, error } = useSwapStatus({
pause,
...request,
});
const { data } = useSwapStatus({
pause,
suspense: true,
...request,
});
Arguments:
request.- Swap receipt ID fromid: string SwapReceipt. id pause?: boolean- Pause the query (default: false)
Returns:
data: Swap- Current swap status, one of:Status | undefined Swap- Swap is open and waiting for executionOpen Swap- Swap is waiting for user signaturePending Signature Swap- Swap completed successfullyFulfilled Swap- Swap was cancelledCancelled Swap- Swap expired before executionExpired
loading: boolean- Loading stateerror: Unexpected- Error fetching the swap statusError | undefined
useTokenSwapOrder
Imperative hook to execute a token swap through the Order API. It fetches a quote and either submits a transaction or prepares, signs, and submits an intent, handling any required ERC-20 approval first.
import { useTokenSwapOrder } from "@aave/react";
const [execute, state] = useTokenSwapOrder((plan) => {
switch (plan.__typename) {
case "Erc20Approval":
return plan.bySignature
? signTypedData(plan.bySignature)
: sendTransaction(plan.byTransaction);
case "OrderTransactionRequest":
return sendTransaction(plan.transaction);
case "OrderTypedData":
return signTypedData(plan);
}
});
const result = await execute(request);
Arguments:
request: Tokenone of:Swap Quote Request market: Market- Market order quoteOrder Token Swap Quote Input limit: Limit- Limit order quoteOrder Token Swap Quote Input from- Quote from an existing quote ID (Quote: Market Order Token Swap From Quote Input quote)Id
request.- Currency for value conversions (default: USD)currency?: Currency
Returns:
state.- Loading stateloading: boolean state.- Error executing the ordererror: E | undefined state.- Whether the hook has been calledcalled: boolean state.- Order receipt with thedata: Order Receipt | undefined orderId result: Result<Order- Type-safe success or failure value:Receipt, E> Ok<Order- Order receipt with theReceipt> orderId Err<E>- Error executing the order
Where E is one of:
CancelError SigningError TimeoutError TransactionError UnexpectedError ValidationError<Insufficient Balance Error | Insufficient Liquidity Error>
useTokenSwapQuote
Declarative hook to fetch a quote for a token swap.
import { useTokenSwapQuote } from "@aave/react";
const { data, loading, error } = useTokenSwapQuote({
pause,
...request,
});
const { data } = useTokenSwapQuote({
pause,
suspense: true,
...request,
});
Arguments:
request: Tokenone of:Swap Quote Request market: Market- Market order quoteOrder Token Swap Quote Input limit: Limit- Limit order quoteOrder Token Swap Quote Input from- Quote from an existing quote ID (Quote: Market Order Token Swap From Quote Input quote)Id
request.- Currency for value conversions (default: USD)currency?: Currency pause?: boolean- Pause the query (default: false)
Returns:
data: Swap- Swap quoteQuote | undefined loading: boolean- Loading stateerror: Unexpected- Error fetching the quoteError | undefined
useTokenSwapQuoteAction
Imperative hook to fetch a quote for a token swap.
import { useTokenSwapQuoteAction } from "@aave/react";
const [execute, state] = useTokenSwapQuoteAction(options);
const result = await execute(request);
Options:
options.- Currency for value conversions (default: USD)currency?: Currency
Arguments:
request: Tokenone of:Swap Quote Request market: Market- Market order quoteOrder Token Swap Quote Input limit: Limit- Limit order quoteOrder Token Swap Quote Input from- Quote from an existing quote ID (Quote: Market Order Token Swap From Quote Input quote)Id
Returns:
state.- Loading stateloading: boolean state.- Error fetching the quoteerror: E | undefined state.- Whether the hook has been calledcalled: boolean state.- Swap quotedata: Swap Quote | undefined result: Result<Swap- Type-safe success or failure value:Quote, E> Ok<Swap- Swap quoteQuote> Err<E>- Error fetching the quote
Where E is one of:
UnexpectedError ValidationError<Insufficient Liquidity Error>
useUpdateUserPositionConditions
Imperative transaction hook to update a user’s position conditions (dynamic config and/or risk premium).
import {
useUpdateUserPositionConditions,
UserPositionConditionsUpdate,
} from "@aave/react";
const [execute, state] = useUpdateUserPositionConditions((transaction) =>
sendTransaction(transaction),
);
const result = await execute({
userPositionId: userPosition.id,
update: UserPositionConditionsUpdate.AllDynamicConfig,
});
Arguments:
request.- User position identifieruser Position Id: User Position Id request.- Type of update to perform:update: User Position Conditions Update User- Update only the risk premiumPosition Conditions Update. Just Risk Premium User- Update all dynamic config (includes risk premium)Position Conditions Update. All Dynamic Config
Returns:
state.- Loading stateloading: boolean state.- Error executing the transactionerror: E | undefined state.- Whether the hook has been calledcalled: boolean state.- Transaction receiptdata: Transaction Receipt | undefined result: Result<Transaction- Type-safe success or failure value:Receipt, E> Ok<Transaction- Transaction receiptReceipt> Err<E>- Error executing the transaction
Where E is one of:
CancelError SigningError TimeoutError TransactionError UnexpectedError
useUserBalances
Declarative hook to fetch user wallet balances across specified chains.
import { useUserBalances } from "@aave/react";
const { data, loading, error } = useUserBalances({
pause,
...request,
});
const { data } = useUserBalances({
pause,
suspense: true,
...request,
});
Arguments:
request.- User addressuser: Evm Address request.one of:filter: User Balances Request Filter chains: User- Balances on specified chainsBalances By Chains chain- Chain IDs to queryIds: Chain Id[] by- Reserve type filter (default: ALL)Reserves Type: Reserves Request Filter
hub: User- Balances for Hub AssetsBalances By Hub address: Evm- Hub addressAddress chain- Hub chain IDId: Chain Id by- Reserve type filter (default: ALL)Reserves Type: Reserves Request Filter
spoke: User- Balances for spoke reservesBalances By Spoke address: Evm- Spoke addressAddress chain- Spoke chain IDId: Chain Id by- Reserve type filter (default: ALL)Reserves Type: Reserves Request Filter
user- Balances for user positionPosition: User Balances By User Position user- User position IDPosition Id: User Position Id by- Reserve type filter (default: ALL)Reserves Type: Reserves Request Filter
request.one of:order By?: User Balances Request Order By name: Order- Sort by token nameDirection balance: Order- Sort by balanceDirection
request.- Include zero balances (default: false)include Zero Balances?: boolean request.- Currency for value conversions (optional)currency?: Currency pause?: boolean- Pause the query (default: false)
Returns:
data: User- Array of user wallet balancesBalance[] | undefined loading: boolean- Loading stateerror: Unexpected- Error fetching user balancesError | undefined
useUserBalancesAction
Imperative hook to fetch user wallet balances.
import { useUserBalancesAction } from "@aave/react";
const [execute, state] = useUserBalancesAction(options);
const result = await execute(request);
Options:
options.- Currency for value conversions (default: USD)currency?: Currency
Arguments:
request.- User addressuser: Evm Address request.one of:filter: User Balances Request Filter chains: User- Balances on specified chainsBalances By Chains chain- Chain IDs to queryIds: Chain Id[] by- Reserve type filter (default: ALL)Reserves Type: Reserves Request Filter
hub: User- Balances for Hub AssetsBalances By Hub address: Evm- Hub addressAddress chain- Hub chain IDId: Chain Id by- Reserve type filter (default: ALL)Reserves Type: Reserves Request Filter
spoke: User- Balances for spoke reservesBalances By Spoke address: Evm- Spoke addressAddress chain- Spoke chain IDId: Chain Id by- Reserve type filter (default: ALL)Reserves Type: Reserves Request Filter
user- Balances for user positionPosition: User Balances By User Position user- User position IDPosition Id: User Position Id by- Reserve type filter (default: ALL)Reserves Type: Reserves Request Filter
tokens: User- Balances for specific tokensBalances By Tokens chain- Array of chain-token pairsTokens: Chain Token Input[] chain- Chain IDId: Chain Id token: Tokenone of:Input native: Always- Native tokenTrue erc20: Evm- ERC-20 token addressAddress
by- Reserve type filter (default: ALL)Reserves Type?: Reserves Request Filter
request.one of:order By?: User Balances Request Order By name: Order- Sort by token nameDirection balance: Order- Sort by balanceDirection
request.- Include zero balances (default: false)include Zero Balances?: boolean
Returns:
state.- Loading stateloading: boolean state.- Error fetching user balanceserror: Unexpected Error | undefined state.- Whether the hook has been calledcalled: boolean state.- Array of user wallet balancesdata: User Balance[] | undefined result: Result<User- Type-safe success or failure value:Balance[], Unexpected Error> Ok<User- Array of user wallet balancesBalance[]> Err<Unexpected- Error fetching user balancesError>
useUserBorrows
Declarative hook to fetch all user borrow positions.
import { useUserBorrows } from "@aave/react";
const { data, loading, error } = useUserBorrows({
pause,
...request,
});
const { data } = useUserBorrows({
pause,
suspense: true,
...request,
});
Arguments:
request.one of:query: User Borrows Request Query user- Get borrows for user on spokeSpoke: User Spoke Input spoke: Spoke- Spoke IDId user: Evm- User addressAddress
user- Get borrows for user for tokenToken: User Token user: Evm- User addressAddress token: Erc20- Token inputInput address: Evm- Token contract addressAddress chain- Token chain IDId: Chain Id
user- Get borrows for user positionPosition Id: User Position Id user- Get borrows for user across chainsChains: User Chains user: Evm- User addressAddress chain- Chain IDsIds: [Chain Id!]
user- Get borrows for user on hubHub: User Hub user: Evm- User addressAddress hub: User- Hub input (hub ID or hub details)Hub Input
request.one of:order By?: User Borrows Request Order By asset- Sort by asset nameName: Order Direction created: Order- Sort by creation dateDirection amount: Order- Sort by borrow amountDirection apy: Order- Sort by APYDirection
request.- Include zero balances (default: false)include Zero Balances?: boolean request.- Currency for value conversions (optional)currency?: Currency pause?: boolean- Pause the query (default: false)
Returns:
data: User- Array of user borrow positionsBorrow Item[] | undefined loading: boolean- Loading stateerror: Unexpected- Error fetching user borrowsError | undefined
useUserBorrowsAction
Imperative hook to fetch user borrow positions.
import { useUserBorrowsAction } from "@aave/react";
const [execute, state] = useUserBorrowsAction(options);
const result = await execute(request);
Options:
options.- Currency for value conversions (default: USD)currency?: Currency
Arguments:
request.one of:query: User Borrows Request Query user- Get borrows for user on a spokeSpoke: User Spoke Input spoke: Spoke- Spoke IDId user: Evm- User addressAddress
user- Get borrows for user for a specific tokenToken: User Token user: Evm- User addressAddress token: Erc20- Token inputInput address: Evm- Token contract addressAddress chain- Token chain IDId: Chain Id
user- Get borrows for a user positionPosition Id: User Position Id user- Get borrows for user across chainsChains: User Chains user: Evm- User addressAddress chain- Chain IDsIds: [Chain Id!]
user- Get borrows for user on hubHub: User Hub user: Evm- User addressAddress hub: User- Hub input (hub ID or hub details)Hub Input
request.one of:order By?: User Borrows Request Order By asset- Sort by asset nameName: Order Direction created: Order- Sort by creation dateDirection amount: Order- Sort by borrow amountDirection apy: Order- Sort by APYDirection
Returns:
state.- Loading stateloading: boolean state.- Error fetching user borrowserror: Unexpected Error | undefined state.- Whether the hook has been calledcalled: boolean state.- Array of user borrow positionsdata: User Borrow Item[] | undefined result: Result<User- Type-safe success or failure value:Borrow Item[], Unexpected Error> Ok<User- Array of user borrow positionsBorrow Item[]> Err<Unexpected- Error fetching user borrowsError>
useUserClaimableRewards
Declarative hook to fetch all claimable rewards for a user on a specific chain.
import { useUserClaimableRewards } from "@aave/react";
const { data, loading, error } = useUserClaimableRewards({
pause,
...request,
});
const { data } = useUserClaimableRewards({
pause,
suspense: true,
...request,
});
Arguments:
request.- User addressuser: Evm Address request.- Chain IDchain Id: Chain Id pause?: boolean- Pause the query (default: false)
Returns:
data: User- Claimable rewardsClaimable Reward[] | undefined loading: boolean- Loading stateerror: Unexpected- Error fetching the rewardsError | undefined
useUserClaimableRewardsAction
Imperative hook to fetch a user’s claimable rewards on demand. Does not watch for updated data; use it to retrieve data as part of a larger workflow.
import { useUserClaimableRewardsAction } from "@aave/react";
const [execute, state] = useUserClaimableRewardsAction();
const result = await execute(request);
Arguments:
request.- User addressuser: Evm Address request.- Chain IDchain Id: Chain Id
Returns:
state.- Loading stateloading: boolean state.- Error fetching the rewardserror: Unexpected Error | undefined state.- Whether the hook has been calledcalled: boolean state.- Claimable rewardsdata: User Claimable Reward[] | undefined result: Result<User- Type-safe success or failure value:Claimable Reward[], Unexpected Error> Ok<User- Claimable rewardsClaimable Reward[]> Err<Unexpected- Error fetching the rewardsError>
useUserPosition
Declarative hook to fetch a specific user position by ID.
import { useUserPosition } from "@aave/react";
const { data, loading, error } = useUserPosition({
pause,
...request,
});
const { data } = useUserPosition({
pause,
suspense: true,
...request,
});
Arguments:
request.- Unique position identifierid: User Position Id request.- User addressuser: Evm Address request.- Currency for value conversions (optional)currency?: Currency request.- Time window for historical data (optional)time Window?: Time Window pause?: boolean- Pause the query (default: false)
Returns:
data: User- User position or null if not foundPosition | null | undefined loading: boolean- Loading stateerror: Unexpected- Error fetching the user positionError | undefined
useUserPositions
Declarative hook to fetch all user positions across specified chains.
import { useUserPositions } from "@aave/react";
const { data, loading, error } = useUserPositions({
pause,
...request,
});
const { data } = useUserPositions({
pause,
suspense: true,
...request,
});
Arguments:
request.- User addressuser: Evm Address request.one of:filter: User Positions Request Filter tokens: [Erc20- Filter by tokensInput!] address: Evm- Token contract addressAddress chain- Token chain IDId: Chain Id
chain- Filter by chain IDsIds: [Chain Id!]
request.one of:order By?: User Positions Request Order By created: Order- Sort by creation dateDirection balance: Order- Sort by position balanceDirection net- Sort by net APYApy: Order Direction health- Sort by health factorFactor: Order Direction net- Sort by net collateralCollateral: Order Direction
request.- Currency for value conversions (optional)currency?: Currency request.- Time window for historical data (optional)time Window?: Time Window pause?: boolean- Pause the query (default: false)
Returns:
data: User- Array of user positionsPosition[] | undefined loading: boolean- Loading stateerror: Unexpected- Error fetching user positionsError | undefined
useUserPositionsAction
Imperative hook to fetch user positions.
import { useUserPositionsAction } from "@aave/react";
const [execute, state] = useUserPositionsAction(options);
const result = await execute(request);
Options:
options.- Currency for value conversions (default: USD)currency?: Currency options.- Time window for historical data (optional)time Window?: Time Window
Arguments:
request.- User addressuser: Evm Address request.one of:filter: User Positions Request Filter tokens: [Erc20- Filter by tokensInput!] address: Evm- Token contract addressAddress chain- Token chain IDId: Chain Id
chain- Filter by chain IDsIds: [Chain Id!]
request.one of:order By?: User Positions Request Order By created: Order- Sort by creation dateDirection balance: Order- Sort by position balanceDirection net- Sort by net APYApy: Order Direction health- Sort by health factorFactor: Order Direction net- Sort by net collateralCollateral: Order Direction
Returns:
state.- Loading stateloading: boolean state.- Error fetching user positionserror: Unexpected Error | undefined state.- Whether the hook has been calledcalled: boolean state.- Array of user positionsdata: User Position[] | undefined result: Result<User- Type-safe success or failure value:Position[], Unexpected Error> Ok<User- Array of user positionsPosition[]> Err<Unexpected- Error fetching user positionsError>
useUserRiskPremiumBreakdown
Declarative hook to fetch the risk premium breakdown for a user position or spoke.
import { useUserRiskPremiumBreakdown } from "@aave/react";
const { data, loading, error } = useUserRiskPremiumBreakdown({
pause,
...request,
});
const { data } = useUserRiskPremiumBreakdown({
pause,
suspense: true,
...request,
});
Arguments:
request.- User addressuser: Evm Address request.one of:query: User Risk Premium Breakdown Request Query user- Get breakdown for user positionPosition Id: User Position Id user- Get breakdown for user on spokeSpoke: User Spoke Input user: Evm- User addressAddress spoke: Spoke- Spoke IDId
pause?: boolean- Pause the query (default: false)
Returns:
data: User- Array of risk premium breakdown itemsRisk Premium Breakdown Item[] | undefined loading: boolean- Loading stateerror: Unexpected- Error fetching the risk premium breakdownError | undefined
useUserSummary
Declarative hook to fetch a user’s financial summary.
import { useUserSummary } from "@aave/react";
const { data, loading, error } = useUserSummary({
pause,
...request,
});
const { data } = useUserSummary({
pause,
suspense: true,
...request,
});
Arguments:
request.- User addressuser: Evm Address request.- Filter by spoke address (optional)filter?. spoke. address: Evm Address request.- Filter by chain ID (optional)filter?. spoke. chain Id: Chain Id request.- Currency for value conversions (optional)currency?: Currency request.- Time window for historical data (optional)time Window?: Time Window pause?: boolean- Pause the query (default: false)
Returns:
data: User- Aggregated metrics including total collateral, total debt, health factor, etc.Summary | undefined loading: boolean- Loading stateerror: Unexpected- Error fetching the user summaryError | undefined
useUserSummaryHistory
Declarative hook to fetch user summary history over time.
import { useUserSummaryHistory } from "@aave/react";
const { data, loading, error } = useUserSummaryHistory({
pause,
...request,
});
const { data } = useUserSummaryHistory({
pause,
suspense: true,
...request,
});
Arguments:
request.- User addressuser: Evm Address request.- Time window for historical datawindow: Time Window request.- Filter by specific chain IDs (optional)filter?. chain Ids: Chain Id[] request.- Currency for value conversions (optional)currency?: Currency pause?: boolean- Pause the query (default: false)
Returns:
data: User- Array of historical user summary data pointsSummary History Item[] | undefined loading: boolean- Loading stateerror: Unexpected- Error fetching the user summary historyError | undefined
useUserSupplies
Declarative hook to fetch all user supply positions.
import { useUserSupplies } from "@aave/react";
const { data, loading, error } = useUserSupplies({
pause,
...request,
});
const { data } = useUserSupplies({
pause,
suspense: true,
...request,
});
Arguments:
request.one of:query: User Supplies Request Query user- Get supplies for user on spokeSpoke: User Spoke Input spoke: Spoke- Spoke IDId user: Evm- User addressAddress
user- Get supplies for user for tokenToken: User Token user: Evm- User addressAddress token: Erc20- Token inputInput address: Evm- Token contract addressAddress chain- Token chain IDId: Chain Id
user- Get supplies for user positionPosition Id: User Position Id user- Get supplies for user across chainsChains: User Chains user: Evm- User addressAddress chain- Chain IDsIds: [Chain Id!]
user- Get supplies for user on hubHub: User Hub user: Evm- User addressAddress hub: User- Hub input (hub ID or hub details)Hub Input
request.one of:order By?: User Supplies Request Order By asset- Sort by asset nameName: Order Direction created: Order- Sort by creation dateDirection amount: Order- Sort by supply amountDirection apy: Order- Sort by APYDirection
request.- Include zero balances (default: false)include Zero Balances?: boolean request.- Currency for value conversions (optional)currency?: Currency pause?: boolean- Pause the query (default: false)
Returns:
data: User- Array of user supply positionsSupply Item[] | undefined loading: boolean- Loading stateerror: Unexpected- Error fetching user suppliesError | undefined
useUserSuppliesAction
Imperative hook to fetch user supply positions.
import { useUserSuppliesAction } from "@aave/react";
const [execute, state] = useUserSuppliesAction(options);
const result = await execute(request);
Options:
options.- Currency for value conversions (default: USD)currency?: Currency
Arguments:
request.one of:query: User Supplies Request Query user- Get supplies for user on a spokeSpoke: User Spoke Input spoke: Spoke- Spoke IDId user: Evm- User addressAddress
user- Get supplies for user for a specific tokenToken: User Token user: Evm- User addressAddress token: Erc20- Token inputInput address: Evm- Token contract addressAddress chain- Token chain IDId: Chain Id
user- Get supplies for a user positionPosition Id: User Position Id user- Get supplies for user across chainsChains: User Chains user: Evm- User addressAddress chain- Chain IDsIds: [Chain Id!]
user- Get supplies for user on hubHub: User Hub user: Evm- User addressAddress hub: User- Hub input (hub ID or hub details)Hub Input
request.one of:order By?: User Supplies Request Order By asset- Sort by asset nameName: Order Direction created: Order- Sort by creation dateDirection amount: Order- Sort by supply amountDirection apy: Order- Sort by APYDirection
Returns:
state.- Loading stateloading: boolean state.- Error fetching user supplieserror: Unexpected Error | undefined state.- Whether the hook has been calledcalled: boolean state.- Array of user supply positionsdata: User Supply Item[] | undefined result: Result<User- Type-safe success or failure value:Supply Item[], Unexpected Error> Ok<User- Array of user supply positionsSupply Item[]> Err<Unexpected- Error fetching user suppliesError>
useWithdraw
Imperative transaction hook to withdraw supplied assets.
import { useWithdraw } from "@aave/react";
const [execute, state] = useWithdraw((plan) => {
switch (plan.__typename) {
case "TransactionRequest":
return sendTransaction(plan);
case "PreContractActionRequired":
return sendTransaction(plan.transaction);
}
});
const result = await execute(request);
Arguments:
request.- Reserve IDreserve: Reserve Id request.one of:amount: Withdraw Reserve Amount Input erc20: Amount- ERC-20 amount (Input { exact: BigorDecimal } { max: true })native: Amount- Native token amount (Input { exact: BigorDecimal } { max: true })
request.- Address withdrawing the supplysender: Evm Address
Returns:
state.- Loading stateloading: boolean state.- Error executing the transactionerror: E | undefined state.- Whether the hook has been calledcalled: boolean state.- Transaction receiptdata: Transaction Receipt | undefined result: Result<Transaction- Type-safe success or failure value:Receipt, E> Ok<Transaction- Transaction receiptReceipt> Err<E>- Error executing the transaction
Where E is one of:
CancelError SigningError TimeoutError TransactionError UnexpectedError ValidationError<Insufficient Balance Error>
useWithdrawSwapOrder
Imperative hook to execute a withdraw and swap through the Order API. It fetches a quote, collects the position-swap approval signatures, then prepares, signs, and submits the order.
import { useWithdrawSwapOrder } from "@aave/react";
const [execute, state] = useWithdrawSwapOrder((plan) => {
switch (plan.__typename) {
case "PositionSwapAdapterContractApproval":
case "PositionSwapPositionManagerApproval":
case "PositionSwapSetCollateralApproval":
return signTypedData(plan.bySignature);
case "OrderTypedData":
return signTypedData(plan);
case "OrderTransactionRequest":
return sendTransaction(plan.transaction);
}
});
const result = await execute(request);
Arguments:
request: Withdrawone of:Swap Quote Request market: Market- Market order quoteWithdraw Swap Quote Input limit: Limit- Limit order quoteWithdraw Swap Quote Input from- Quote from an existing quote ID (Quote: From Quote Withdraw Swap Quote Input quote)Id
request.- Currency for value conversions (default: USD)currency?: Currency
Returns:
state.- Loading stateloading: boolean state.- Error executing the ordererror: E | undefined state.- Whether the hook has been calledcalled: boolean state.- Order receipt with thedata: Order Receipt | undefined orderId result: Result<Order- Type-safe success or failure value:Receipt, E> Ok<Order- Order receipt with theReceipt> orderId Err<E>- Error executing the order
Where E is one of:
CancelError SigningError TimeoutError TransactionError UnexpectedError ValidationError<Insufficient Balance Error | Insufficient Liquidity Error>
useWithdrawSwapQuote
Declarative hook to fetch a quote for a withdraw and swap.
import { useWithdrawSwapQuote } from "@aave/react";
const { data, loading, error } = useWithdrawSwapQuote({
pause,
...request,
});
const { data } = useWithdrawSwapQuote({
pause,
suspense: true,
...request,
});
Arguments:
request: Withdrawone of:Swap Quote Request market: Market- Market order quoteWithdraw Swap Quote Input limit: Limit- Limit order quoteWithdraw Swap Quote Input from- Quote from an existing quote ID (Quote: From Quote Withdraw Swap Quote Input quote)Id
request.- Currency for value conversions (default: USD)currency?: Currency pause?: boolean- Pause the query (default: false)
Returns:
data: Swap- Swap quoteQuote | undefined loading: boolean- Loading stateerror: Unexpected- Error fetching the quoteError | undefined
useWithdrawSwapQuoteAction
Imperative hook to fetch a quote for a withdraw and swap.
import { useWithdrawSwapQuoteAction } from "@aave/react";
const [execute, state] = useWithdrawSwapQuoteAction(options);
const result = await execute(request);
Options:
options.- Currency for value conversions (default: USD)currency?: Currency
Arguments:
request: Withdrawone of:Swap Quote Request market: Market- Market order quoteWithdraw Swap Quote Input limit: Limit- Limit order quoteWithdraw Swap Quote Input from- Quote from an existing quote ID (Quote: From Quote Withdraw Swap Quote Input quote)Id
Returns:
state.- Loading stateloading: boolean state.- Error fetching the quoteerror: E | undefined state.- Whether the hook has been calledcalled: boolean state.- Swap quotedata: Swap Quote | undefined result: Result<Swap- Type-safe success or failure value:Quote, E> Ok<Swap- Swap quoteQuote> Err<E>- Error fetching the quote
Where E is one of:
UnexpectedError ValidationError<Insufficient Liquidity Error>