Skip to Content
Symmio Trading-SDK — the SDK surface for builders on Arbitrum
CorePoolsgetListingStatus

getListingStatus

Fetch a market’s listing status — its overall lifecycle status plus where it sits in the listing backend’s pipeline: the current step, all steps, the retry count/limit, and any step error. It answers “where is this pool in the listing process?”, keyed by the market’s token address and deposit chain.

import { getListingStatus } from "@symmio/trading-core"; const status = await getListingStatus(config, { tokenContractAddress: "0x1234…", depositChain: ListingDepositChainId.HYPER_EVM, });

The result is a ListingStatus. It is the lightweight status check behind a “listing progress” view — poll it (via the hook’s refetchInterval) to watch a freshly created pool move from WAITING_FOR_DEPOSIT toward LISTED, rather than refetching the whole catalog row.

This is a public REST read against the listing backend — no bearer token. The backend is resolved from the config before the request, so a target without Pools fails immediately and without any network traffic — see resolveListingService.

No solver id

Pool listing is chain-level — one listing backend is served per chain — so getListingStatus takes only an optional chainId and no solverId. Pass a chainId to target a specific deployment’s listing backend; omit it to use the config’s default chain.

Parameters

tokenContractAddressstringrequired

The market’s token contract address — the id that addresses a single market in the listing API. An EVM 0x… address, or a Solana base58 address for a Solana-deposited listing. Pairs with depositChain to identify the market.

depositChainListingDepositChainIdrequired

The market’s deposit chain — the chain the token lives on. Pairs with tokenContractAddress to identify the market.

chainIdnumberoptional

Target chain id. Defaults to the config’s defaultChainId. Selects which chain’s listing backend is used. There is no solverId — listing is resolved at chain level.

Returns

Promise<ListingStatus>
marketStatusListingMarketStatus

Overall lifecycle status of the market, mapped from the service’s market_status. Fall back to the raw string for any pipeline-only value.

currentStepstring | null

The step the listing pipeline is currently on, or null when it is not in a step.

stepsstring[]

The ordered pipeline steps the listing moves through.

errorCodenumber | null

Error code reported for the current step, or null when there is no error.

errorDetailstring | null

Human-readable detail for the current step’s error, or null.

retryCountnumber

How many times the current step has been retried.

retryLimitnumber

The maximum retries allowed for the current step.

Query options

import { getListingStatusQueryOptions } from "@symmio/trading-core"; import { useQuery } from "@tanstack/react-query"; useQuery( getListingStatusQueryOptions(config, { tokenContractAddress: "0x1234…", depositChain: ListingDepositChainId.HYPER_EVM, query: { refetchInterval: 5000 }, }), );

GetListingStatusOptions is the action’s parameters plus a query bag of TanStack overrides — set refetchInterval to poll a non-terminal status. getListingStatusQueryKey builds the matching key for cache matching and invalidation; GetListingStatusData, GetListingStatusReturnType, GetListingStatusQueryKey, and GetListingStatusQueryOptions are the factory’s types.

Throws

  • LISTING_NOT_CONFIGURED — a SymmError (kind: "config") when the chain has no listing backend configured. Gate with supportsListingService to hide Pools instead.
  • FETCH_LISTING_STATUS_FAILED — the request itself failed. Any axios failure becomes a SymmApiError carrying status, statusText, responseData, url and method; a non-axios throw becomes a plain SymmError (kind: "api") with the original error as its cause.
Last updated on