React Query hook to fetch token balances across multiple chains for a specified address. Returns balance data for tokens across each chain with error handling and batched requests.

See useQuery from react-query

const { data, isLoading } = useTokenBalances({
address: "0x123...",
excludeSpamTokens: false,
chainIds: [1, 10],
tokenAddresses: { 1: ["0xabc..."], 10: ["0xdef..."] }
});

if (isLoading) return <div>Loading balances...</div>;

// Access balances for specific chain
const ethereumBalances = data?.[1]?.balances;
  • Parameters

    • params: TokenBalancesParams

      Query parameters

      • chainIds

        Optional array of chain IDs to query. If not provided, defaults to configured boost protocol chains

      • address

        Address to fetch balances for

      • excludeSpamTokens

        Optional flag to exclude spam tokens from the results

      • tokenAddresses

        Optional map of chain IDs to arrays of token addresses to fetch balances for

    Returns UseQueryResult<
        Record<
            string,
            {
                balances: {
                    address: `0x${string}`;
                    amount: string;
                    amountFormatted: string;
                    amountUsd: number;
                    chainId: number;
                    decimals: number;
                    imageUri: string;
                    name: string;
                    symbol: string;
                    type: "ERC20";
                    blocked: boolean;
                }[];
                isFudged?: boolean;
            },
        >,
        Error,
    >

    Query result containing balance data by chain ID

Properties

Properties

queryKey: (params: TokenBalancesParams) => (string | TokenBalancesParams)[]
queryFn: (
    __namedParameters: TokenBalancesParams & {
        apiUrl: any;
        testnetsEnabled: undefined | boolean;
    },
) => Promise<
    Record<
        string,
        {
            balances: {
                address: `0x${string}`;
                amount: string;
                amountFormatted: string;
                amountUsd: number;
                chainId: number;
                decimals: number;
                imageUri: string;
                name: string;
                symbol: string;
                type: "ERC20";
                blocked: boolean;
            }[];
            isFudged?: boolean;
        },
    >,
>