Skip to main content
Each market has precision parameters that control valid order sizes and prices, returned from GET /api/v1/markets. For conversion formulas, see Formatting Prices and Sizes.
These values reflect mainnet at the time of writing. Always fetch live values from GET /api/v1/markets — parameters can change via governance.

Order Size

human = chain_value / 10^sz_decimals — sizes must be a multiple of Lot Size and at least Min Size.
Marketsz_decimalsMin SizeLot Size
APT/USD51 APT (100,000)0.1 APT (10,000)
BNB/USD70.002 BNB (20,000)0.001 BNB (10,000)
BTC/USD80.00002 BTC (2,000)0.00001 BTC (1,000)
DOGE/USD420 DOGE (200,000)1 DOGE (10,000)
ETH/USD80.0005 ETH (50,000)0.0001 ETH (10,000)
HYPE/USD60.05 HYPE (50,000)0.01 HYPE (10,000)
SOL/USD70.02 SOL (200,000)0.001 SOL (10,000)
SUI/USD51 SUI (100,000)0.1 SUI (10,000)
XRP/USD51 XRP (100,000)0.1 XRP (10,000)
ZEC/USD70.005 ZEC (50,000)0.001 ZEC (10,000)

Price

human = chain_value / 10^6 (prices are in USDC, px_decimals = 6) — prices must be a multiple of Tick Size.
MarketTick Size
APT/USD$0.0001 (100)
BNB/USD$0.01 (10,000)
BTC/USD$0.10 (100,000)
DOGE/USD$0.00001 (10)
ETH/USD$0.10 (100,000)
HYPE/USD$0.001 (1,000)
SOL/USD$0.01 (10,000)
SUI/USD$0.0001 (100)
XRP/USD$0.0001 (100)
ZEC/USD$0.01 (10,000)

Fetching Live Values

import { DecibelReadDex, MAINNET_CONFIG } from "@decibeltrade/sdk";

const sdk = new DecibelReadDex({ config: MAINNET_CONFIG });
const markets = await sdk.getMarkets();

for (const market of markets) {
  const minSize = market.min_size / 10 ** market.sz_decimals;
  const lotSize = market.lot_size / 10 ** market.sz_decimals;
  const tickSize = market.tick_size / 10 ** market.px_decimals;

  console.log(`${market.market_name}: min=${minSize}, lot=${lotSize}, tick=$${tickSize}`);
}