Market identifiers
The markets are identified as
cNGN-USDC and cNGN-PERP. These are the values market,
symbol and ticker_id carry everywhere, matching display_name. GET /v1/markets and
GET /v1/integrations/tickers list the canonical identifiers only. Every response and websocket
frame names the market by its canonical identifier, whichever identifier the request used.The old identifiers are deprecated aliases until 2027-01-06. USDCcNGN-SPOT and
USDCcNGN-PERP still resolve, by exact match, wherever an identifier is read: symbol,
market and ticker_id, including websocket subscribe and unsubscribe. A request that uses one
returns the same data as the canonical request plus two headers: Deprecation: true and
X-Canonical-Market: <canonical identifier>. On 2027-01-06 the aliases are removed and such
requests return 400 unknown_market.An unknown or missing market is now a 400. GET /v1/book, GET /v1/trades and
GET /v1/candles return {"error": "unknown_market", "message": …, "markets": [...]} when the
symbol or asset_address + sub_id names no listed market (no such market: <identifier>),
or when the request names no market at all (symbol or asset_address is required). Before this
change both cases silently returned the spot book, so a client that sent a wrong identifier read
spot prices and never saw an error. See Errors.Unchanged: display_name, order_entry_spec (cngn_usdc_spot_v1 and cngn_usdc_perp_v1),
every address, and the asset_address + sub_id form of naming a market.
