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.
| Market | sz_decimals | Min Size | Lot Size |
|---|
| APT/USD | 5 | 1 APT (100,000) | 0.1 APT (10,000) |
| BNB/USD | 7 | 0.002 BNB (20,000) | 0.001 BNB (10,000) |
| BTC/USD | 8 | 0.00002 BTC (2,000) | 0.00001 BTC (1,000) |
| DOGE/USD | 4 | 20 DOGE (200,000) | 1 DOGE (10,000) |
| ETH/USD | 8 | 0.0005 ETH (50,000) | 0.0001 ETH (10,000) |
| HYPE/USD | 6 | 0.05 HYPE (50,000) | 0.01 HYPE (10,000) |
| SOL/USD | 7 | 0.02 SOL (200,000) | 0.001 SOL (10,000) |
| SUI/USD | 5 | 1 SUI (100,000) | 0.1 SUI (10,000) |
| XRP/USD | 5 | 1 XRP (100,000) | 0.1 XRP (10,000) |
| ZEC/USD | 7 | 0.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.
| Market | Tick 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}`);
}