Skip to main content
Reference data describing what is tradable on Ault DEX. None of these endpoints take parameters.

List Markets

Returns every trading pair, ordered by ID.
The example omits 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

Returns the registered tokens, keyed by symbol.
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.
Ault Core represents every token with 18 decimals, whatever the ERC20 contract on Ault EVM declares. precision and info.contractDecimals both report that Core-side 18, so every amount you send to or read from this API is in 18-decimal terms.The ERC20 contract’s own decimals are a separate number and matter only on the EVM side. USDC.e, for example, is a 6-decimal contract but is held on Core with 18. Read the contract value as erc20_decimals from GET /ault/tokenregistry/v1/token_pair/{address}, and see Transfer Assets for crossing between the two.
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

Returns the maker and taker schedule for every market, keyed by symbol. Rates are decimal strings.
The account form uses 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.
Without 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.