BluxBlux

useLiquidityPools

Fetch a paginated list of Stellar liquidity pools in your React app using the Blux SDK.

The useLiquidityPools hook returns a paginated list of Stellar liquidity pools. All parameters are optional — called with no arguments it returns the latest pools from the network.

Import

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

Usage

Called with no arguments:

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

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

Combine with useBlux to fetch pools only when the user is authenticated:

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

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

With filters and TanStack Query options:

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

function App() {
  const { data, isStale } = useLiquidityPools(
    { forAccount: "GABK....2N7M" },
    { retry: 2, 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

forAssets

Array<Asset> | undefined

Filter pools that include any of the provided assets. Import Asset from @bluxcc/react.

forAccount

string | undefined

Fetch liquidity pools associated with a specific account ID.

cursor

string | undefined

Pagination cursor for fetching the next or previous page.

limit

number | undefined

Number of records to return per page.

network

string | undefined

The network to query. Omit to use the active network.

order

'asc' | 'desc' | undefined

Sort order for the results.

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
placeholderDataGetLiquidityPoolsResult | functionPlaceholder data shown while query is pending (not persisted to cache)
initialDataGetLiquidityPoolsResult | 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

GetLiquidityPoolsResult | undefined

type GetLiquidityPoolsResult = {
  builder: LiquidityPoolCallBuilder; // .next() and .prev() for pagination
  response: Horizon.ServerApi.CollectionPage<Horizon.ServerApi.LiquidityPoolRecord>;
};

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