Skip to main content
Markets are the tradable pair objects your integration uses for order entry, orderbooks, trades, candles, funding, and position risk. Resolve market IDs first, store the UUID, and pass it into product-specific workflows.

Surface Map

What a Pair Represents

For a symbol like BTC/USDC:
  • BTC is the base asset.
  • USDC is the quote asset.
  • The pair has a Monaco trading pair UUID.
  • The pair can support spot, perps, or both.
  • The pair exposes base and quote asset IDs for vault operations.
  • The pair carries order constraints such as tick size, minimum order size, maximum order size, and fee fields.

Product Support

Monaco can expose separate active rows for spot and perps support. Your UI should derive product support from active pair data instead of assuming every asset supports every product.
  • Spot enabled: show spot order entry and spot orderbook/trade surfaces.
  • Perps enabled: show leverage, margin, funding, positions, liquidation, and reduce-only controls.
  • Product unavailable: keep the market visible if useful, but disable product-specific order entry.

Resolve Pairs

Pair IDs vs Symbols

Symbols are human-readable. Pair IDs are stable API identifiers.

Query Map

Market Metadata

Use market metadata when rendering order tickets or validating inputs before submission.

Screener and Stats

Use the screener for market lists, cards, tickers, and leaderboards. Use market stats for exchange-wide lifetime totals. The surge example uses decimal.js (npm install decimal.js) to divide decimal strings without converting amounts to JavaScript numbers.

Builder Notes

Oracle delivery is deployment-configured: Pyth-primary markets can stream prices over WebSocket, with HTTP polling taking over when a stream stops advancing. SEDA markets serve a Pyth Pro feed with an explicitly configured Hyperliquid on-close fallback coin. SEDA answers from that coin when the upstream market is shut, and also when its Pyth request fails during an open session; either answer prices the market like any other tick. The server checks the coin’s metadata and index, but the operator must choose the same asset as the Pyth feed; that cross-provider identity is not automatically verified. The provider session is reported for monitoring and does not change market policy. Consume the existing mark/index price and market_status surfaces rather than inferring trading availability from the provider or transport alone. The engine refuses an oracle mark that would value an open position outside the supported notional, margin or unrealized-PnL range and retains its last accepted mark. Do not assume that every upstream tick changes position valuation.
  • Resolve and store trading pair IDs before querying orderbooks, trades, candles, funding, or placing orders.
  • Public market data does not require authentication.
  • User orders, balances, positions, and account streams do require authentication.