List Markets
info, which every market carries. It holds protocol internals such as the
market’s creation height and its escrow account. Those fields are not officially supported and can change, so do not build on them.
Perpetual and option fields (margin, future, swap, option, contract, settle, expiry,
strike, and related) are present for client-library compatibility and are false or null on
every market.
Use the native market’s tick_precision and the owning product’s minimum-order parameter to build
executable orders. The fixed precision.price value and limits.cost.min above cannot tell you whether an order will be accepted. Protocol Constraints
provides the lookup map and tick examples. This Spot response does not define a Perpetual contract’s
multiplier, collateral, margin tiers, or position caps.
Resolve the display symbol, binary market ID, asset denomination, and oracle feed ID separately.
A display rename does not rename a feed or convert a Spot token into a Perpetual contract. Use the
market ID and product type to distinguish similarly named instruments; do not derive the feed ID
from the displayed ticker.
List Currencies
name, deposit, withdraw, fee, limits, and networks are present for client-library
compatibility and are null or empty on every token. Transfer limits are a chain query, not a field
here. See Transfer Assets.
Symbols here are the exchange’s own labels, applied by a per-environment mapping rather than read
from the chain. The token registered on chain as
USDC.e is listed by this API as USDC, and
markets are named accordingly, for example AULT/USDC. A wallet will show the same asset as
USDC.e.Because the mapping is configuration, it can differ between mainnet and testnet, and a token with no
mapping appears under its raw denomination instead of a symbol. Resolve symbols from this endpoint
rather than assuming them.Trading Fees
baseRate * (1 - tierDiscount) * (1 - refereeDiscount) separately for maker and taker. Its info contains baseMaker, baseTaker, feeTier, makerDiscountRate, takerDiscountRate, and refereeDiscountRate. These are indexed values and may lag a recent account change. An explicit builder fee still needs separate accounting.
Malformed addresses return 400. If account discounts cannot be read, the account form fails rather than returning base rates as a personalized answer. Database failures return 500; unavailable discount support returns 503.
address, rates match the market base rates in GET /api/v1/markets. With address, use the returned account rates. tierBased indicates whether a tier schedule is available; it does not identify the account’s tier and can be false when schedule data is unavailable.
Reconcile actual settled fees by currency. A quoted discount or tierBased does not mean you receive a rebate, maker incentive, or execution priority.