Usage
const {
data,
isLoading,
isError,
isSuccess,
error,
refetch,
fetchTokenBalance,
} = useGetTokenBalance({
params: {
chainToken: "USDC",
chain: "STARKNET",
walletPublicKey: "0x...",
},
getBearerToken: getToken,
});
| Parameter | Type | Required | Description |
|---|
params.chainToken | ChainToken | Yes | Token identifier (e.g. "USDC") |
params.chain | string | Yes | Blockchain network (e.g. "STARKNET") |
params.walletPublicKey | string | No | Wallet address to check balance for |
params.externalUserId | string | No | External user ID (alternative to walletPublicKey) |
getBearerToken | () => Promise<string> | Yes | Function returning the auth token |
queryOptions | UseQueryOptions | No | React Query options (e.g. staleTime, enabled) |
Return Value
| Property | Type | Description |
|---|
data | GetTokenBalanceResponse | undefined | Balance data |
isLoading | boolean | True while fetching |
isError | boolean | True if an error occurred |
isSuccess | boolean | True if the query succeeded |
error | Error | null | Error when isError is true |
refetch | () => void | Re-run the query |
fetchTokenBalance | (input) => Promise<GetTokenBalanceResponse> | Imperatively fetch balance with custom params |
Example Implementation
import { useGetTokenBalance } from "@chipi-stack/chipi-react";
import { useAuth } from "@clerk/nextjs";
export function TokenBalance({ walletPublicKey }: { walletPublicKey: string }) {
const { getToken } = useAuth();
const { data, isLoading, error } = useGetTokenBalance({
params: {
chainToken: "USDC",
chain: "STARKNET",
walletPublicKey,
},
getBearerToken: getToken,
});
if (isLoading) return <p>Loading balance...</p>;
if (error) return <p>Error: {error.message}</p>;
return (
<div>
<p>Balance: {data?.balance} USDC</p>
</div>
);
}
Either walletPublicKey or externalUserId must be provided to identify the wallet.