BluxBlux

useAccount

Fetch details of a Stellar account in your React app using the Blux SDK.

The useAccount hook returns details for a Stellar account. By default it fetches the connected account on the active network, but you can pass an explicit address and network to fetch any account.

Import

import { useAccount } from "@bluxcc/react";

Usage

Called with no arguments, it returns the connected account on the current network:

import { useAccount } from "@bluxcc/react";

function App() {
  const { data } = useAccount();
}
root.render(
  <BluxProvider
    config={{
      appName: "MyApp",
      networks: [networks.testnet, networks.mainnet],
    }}
  >
    <App />
  </BluxProvider>
);

You can combine it with useBlux to fetch account details only when the user is authenticated:

import { useAccount, useBlux } from "@bluxcc/react";

function App() {
  const { user, isAuthenticated } = useBlux();
  const { data } = useAccount(
    { address: user?.address },
    { enabled: isAuthenticated }
  );
}
root.render(
  <BluxProvider
    config={{
      appName: "MyApp",
      networks: [networks.testnet, networks.mainnet],
    }}
  >
    <App />
  </BluxProvider>
);

You can also pass TanStack Query options as a second argument to customize caching and refetch behavior:

import { useAccount, networks } from "@bluxcc/react";

function App() {
  const { data } = useAccount(
    { address: "GABK...2N7M", network: networks.mainnet },
    { retry: 3, staleTime: 60000 }
  );
}
root.render(
  <BluxProvider
    config={{
      appName: "MyApp",
      networks: [networks.testnet, networks.mainnet],
    }}
  >
    <App />
  </BluxProvider>
);

Always pass core parameters first, then TanStack Query options. The hook relies on this order to work correctly.

Parameters

address

string | undefined

The Stellar account ID to fetch. Omit to use the currently connected account.

network

string | undefined

The network to query. Import networks from @bluxcc/react to select one.

Query Options

These are passed as the second argument and map directly to TanStack Query options.

OptionTypeDefaultDescription
enabledbooleantrueSet to false to disable automatic fetching
staleTimenumber | Infinity0Time in ms before data is considered stale
gcTimenumber | Infinity300000Time in ms before inactive cache data is garbage collected
retryboolean | number3How many times to retry on failure
retryDelaynumber | functionDelay in ms between retry attempts
refetchIntervalnumber | false | functionContinuously refetch at this interval in ms
refetchOnMountboolean | 'always'trueRefetch on component mount if data is stale
refetchOnWindowFocusboolean | 'always'trueRefetch when the window regains focus
refetchOnReconnectboolean | 'always'trueRefetch when network reconnects
refetchIntervalInBackgroundbooleanKeep refetching even when tab is in background
placeholderDataGetAccountResult | functionPlaceholder data shown while query is pending (not persisted to cache)
initialDataGetAccountResult | functionInitial data for the cache (persisted)
initialDataUpdatedAtnumber | functionTimestamp of when initialData was last updated
selectfunctionTransform or select a subset of the returned data
notifyOnChangePropsstring[] | 'all'Limit re-renders to specific property changes
structuralSharingboolean | functiontrueRetain references from old data for performance
networkMode'online' | 'always' | 'offlineFirst''online'Controls when queries can run relative to network status
metaRecord<string, unknown>Attach arbitrary metadata to the query cache entry
queryClientQueryClientUse a custom QueryClient instead of the nearest context one

Return Type

data

GetAccountResult | undefined

type GetAccountResult = Horizon.AccountResponse | null;

Status Booleans

PropertyTypeDescription
isPendingbooleanNo cached data and no completed fetch yet
isSuccessbooleanQuery resolved successfully
isErrorbooleanQuery failed
isLoadingbooleanFirst fetch in-flight (isFetching && isPending)
isFetchingbooleanQuery function is currently executing
isRefetchingbooleanBackground refetch in progress
isFetchedbooleanQuery has been fetched at least once
isFetchedAfterMountbooleanQuery fetched after component mounted
isStalebooleanCached data is stale or older than staleTime
isPlaceholderDatabooleanCurrently showing placeholder data
isLoadingErrorbooleanFailed on the first fetch
isRefetchErrorbooleanFailed during a background refetch
isPausedbooleanQuery wanted to fetch but was paused

Other Returns

PropertyTypeDescription
status'pending' | 'success' | 'error'Current query status
fetchStatus'fetching' | 'idle' | 'paused'Current fetch status
errornull | ErrorError object if the query failed
dataUpdatedAtnumberTimestamp of last successful fetch
errorUpdatedAtnumberTimestamp of last error
errorUpdateCountnumberTotal number of errors
failureCountnumberFailures since last success
failureReasonnull | ErrorReason for last retry failure
refetchfunctionManually trigger a refetch

On this page