useStrictReceivePaths
Fetch strict receive payment paths in your React app using the Blux SDK.
The useStrictReceivePaths hook returns available payment paths for a strict receive operation. source, destinationAsset, and destinationAmount are all required — the hook will not run without them. Import Asset from @bluxcc/react.
Import
import { useStrictReceivePaths, Asset } from "@bluxcc/react";Usage
Basic usage with required arguments:
import { useStrictReceivePaths, Asset } from "@bluxcc/react";
function App() {
const source = "GAUZ....NOWM";
const destinationAsset = new Asset("USDC", "GA5Z....KZVN");
const destinationAmount = "10";
const { data } = useStrictReceivePaths([source, destinationAsset, destinationAmount]);
}root.render(
<BluxProvider
config={{
appName: "MyApp",
networks: [networks.testnet, networks.mainnet],
}}
>
<App />
</BluxProvider>
);With call-builder options and TanStack Query options:
import { useStrictReceivePaths, Asset } from "@bluxcc/react";
function App() {
const source = "GAUZ....NOWM";
const destinationAsset = new Asset("USDC", "GA5Z....KZVN");
const destinationAmount = "10";
const { data, refetch } = useStrictReceivePaths(
[source, destinationAsset, destinationAmount], // Required arguments
{ limit: 20, order: "asc" }, // Core parameters
{ retry: 3, staleTime: 5000 }, // TanStack parameters
);
}root.render(
<BluxProvider
config={{
appName: "MyApp",
networks: [networks.testnet, networks.mainnet],
}}
>
<App />
</BluxProvider>
);Pass required arguments first, then core call-builder options, then TanStack Query options. The hook relies on this order to work correctly.
Parameters
source (required)
string | Asset[]
Either a source account ID or an array of assets to use as possible payment sources.
destinationAsset (required)
Asset
The asset the destination account should receive.
destinationAmount (required)
string
The exact amount the destination must receive, as a decimal string (e.g. "100.00").
limit
number | undefined
Number of records to return.
network
string | undefined
The network to query. Omit to use the active network.
order
'asc' | 'desc' | undefined
Sort order for the results.
Query Options
| Option | Type | Default | Description |
|---|---|---|---|
enabled | boolean | true | Set to false to disable automatic fetching |
staleTime | number | Infinity | 0 | Time in ms before data is considered stale |
gcTime | number | Infinity | 300000 | Time in ms before inactive cache data is garbage collected |
retry | boolean | number | 3 | How many times to retry on failure |
retryDelay | number | function | — | Delay in ms between retry attempts |
refetchInterval | number | false | function | — | Continuously refetch at this interval in ms |
refetchOnMount | boolean | 'always' | true | Refetch on component mount if data is stale |
refetchOnWindowFocus | boolean | 'always' | true | Refetch when the window regains focus |
refetchOnReconnect | boolean | 'always' | true | Refetch when network reconnects |
refetchIntervalInBackground | boolean | — | Keep refetching even when tab is in background |
placeholderData | GetPaymentPathResult | function | — | Placeholder data shown while query is pending (not persisted to cache) |
initialData | GetPaymentPathResult | function | — | Initial data for the cache (persisted) |
initialDataUpdatedAt | number | function | — | Timestamp of when initialData was last updated |
select | function | — | Transform or select a subset of the returned data |
notifyOnChangeProps | string[] | 'all' | — | Limit re-renders to specific property changes |
structuralSharing | boolean | function | true | Retain references from old data for performance |
networkMode | 'online' | 'always' | 'offlineFirst' | 'online' | Controls when queries can run relative to network status |
meta | Record<string, unknown> | — | Attach arbitrary metadata to the query cache entry |
queryClient | QueryClient | — | Use a custom QueryClient instead of the nearest context one |
Return Type
data
GetPaymentPathResult | undefined
type GetPaymentPathResult = {
builder: PathCallBuilder; // .next() and .prev() for pagination
response: Horizon.ServerApi.CollectionPage<Horizon.ServerApi.PaymentPathRecord>;
};Status Booleans
| Property | Type | Description |
|---|---|---|
isPending | boolean | No cached data and no completed fetch yet |
isSuccess | boolean | Query resolved successfully |
isError | boolean | Query failed |
isLoading | boolean | First fetch in-flight (isFetching && isPending) |
isFetching | boolean | Query function is currently executing |
isRefetching | boolean | Background refetch in progress |
isFetched | boolean | Query has been fetched at least once |
isFetchedAfterMount | boolean | Query fetched after component mounted |
isStale | boolean | Cached data is stale or older than staleTime |
isPlaceholderData | boolean | Currently showing placeholder data |
isLoadingError | boolean | Failed on the first fetch |
isRefetchError | boolean | Failed during a background refetch |
isPaused | boolean | Query wanted to fetch but was paused |
Other Returns
| Property | Type | Description |
|---|---|---|
status | 'pending' | 'success' | 'error' | Current query status |
fetchStatus | 'fetching' | 'idle' | 'paused' | Current fetch status |
error | null | Error | Error object if the query failed |
dataUpdatedAt | number | Timestamp of last successful fetch |
errorUpdatedAt | number | Timestamp of last error |
errorUpdateCount | number | Total number of errors |
failureCount | number | Failures since last success |
failureReason | null | Error | Reason for last retry failure |
refetch | function | Manually trigger a refetch |