mainnet is not live yetdevnet beta is live at play.dust.bid
skip to content

parameters ​

three kinds of numbers live here.

  • constants. compiled into the program. only an upgrade changes them.
  • bounds. the range an authority can move a value inside. never past it.
  • listed values. what an instrument or the exchange is set to on devnet today. an authority can change them inside the bounds.

mainnet values that are not fixed yet say set at launch. the list is at the bottom.

units ​

namevaluemeaningdefined in
USDC1,000,000micro USDC per USDCmath.rs
PX1,000,000,000price unit, 1e-9 USDmath.rs
DUST1,000,000ledger units per $DUST, 6 decimalsmath.rs
FP1,000,000,000,000a fraction of 1. 1 bp is 100,000,000math.rs
BPS10,000basis points in 1math.rs
ACC10^18staking accumulator scalemath.rs

trading ​

namevalueunitdefined in
MAX_LEVERAGE_CORE1000× leveragestate.rs, DUST-SPEC §3.1
DUST_LEVERAGES5000, 10000× leveragestate.rs, DUST-SPEC §3.1
DUST_HORIZONS_MS5000, 15000, 60000msstate.rs, DUST-SPEC §3.1
minimum margin, launch5,000,000micro USDC, $5ix_admin.rs
minimum margin, bound1,000,000 to 100,000,000micro USDCstate.rs
max notional, launch1,000,000,000,000micro USDC, $1,000,000ix_admin.rs
max notional, hard10,000,000,000,000micro USDC, $10,000,000state.rs
max DUST MODE margin, launch500,000,000micro USDC, $500ix_admin.rs
max DUST MODE margin, hard10,000,000,000micro USDC, $10,000state.rs
MIN_ORDER_TTL_MS5,000msstate.rs
MAX_ORDER_TTL_MS86,400,000ms, 24 hstate.rs
CANCEL_SOFT_MS30,000msstate.rs, DUST-SPEC §3.2
OPEN_STALE_GATE_MS10,000msstate.rs, DUST-SPEC §3.2
QUEUE_CAP4096entriesstate.rs
HARVEST_MAX32entries per callstate.rs
session key life2,592,000seconds, 30 daysix_user.rs
agent key life, AGENT_MAX_EXPIRY_S2,592,000seconds, 30 daysstate.rs
MAX_AGENT_LEVERAGE10,000× leveragestate.rs

fees and shares ​

namevalueunitdefined in
win_fee_bps, launch200bps of the trimmed gainix_admin.rs, DUST-SPEC §3.1
MAX_WIN_FEE_BPS500bpsstate.rs
loss_fee_bps, launch200bps of the loss, house sideix_admin.rs, DUST-SPEC §3.1
MAX_LOSS_FEE_BPS500bpsstate.rs
bounty_bps10bps of margin, 0.1%. no setterix_admin.rs, DUST-SPEC §3.1
bounty_min10,000micro USDC, $0.01. no setterix_admin.rs, DUST-SPEC §3.1
STAKER_SHARE_BPS5000bps of a fee, rounded downmath.rs, DUST-SPEC §3.1
REF_BPS2000, 4000bps of the dev cut, tier 0 and tier 1math.rs, DUST-SPEC §3.1
REF_DUST_BPS1000bps of the referee's mintmath.rs, DUST-SPEC §3.1
ACTIVATION_FEE1,000,000micro USDC, on the first depositstate.rs, DUST-SPEC §3.3
MIN_DEPOSIT10,000,000micro USDC, counted after the activation fee. a withdraw must also be at least this, or the whole balancestate.rs, DUST-SPEC §3.3

impact and bust ​

compiled bounds and the devnet listed values.

nameBTCETHSOLboundunitdefined in
impact_b_bps100010001000up to 2000bpsstate.rs, DUST-SPEC §3.1
impact_r1500015000150001000 to 1,000,000state.rs, DUST-SPEC §3.1
impact_nref_uu100,000,000,000100,000,000,000100,000,000,0001,000,000,000 to 10,000,000,000,000micro USDCstate.rs, DUST-SPEC §3.1
impact_p_milli814,598483,979483,979, a placeholder10,000 to 10,000,000p × 1000state.rs, DUST-SPEC §3.1
derived c_fp189,426,606273,287,203placeholder10^7 to 10^10FPmath.rs
db_fp, Core deadband20,000,00020,000,00020,000,000up to 200,000,000FP, 0.2 bpstate.rs, DUST-SPEC §3.1
beta_fp, bust buffer500,000,000500,000,000500,000,000100,000,000 to 900,000,000FP, 5 bpstate.rs, DUST-SPEC §3.1

SOL impact_p_milli is ETH's value, a placeholder. no SOL calibration exists yet. mainnet impact values: set at launch.

DUST MODE bounds ​

per cell, for each of the six leverage and horizon pairs.

nameboundunitdefined in
deadband db_fpup to 100,000,000FP, 1 bpstate.rs
haircut b_bpsup to 2000bpsstate.rs
curve c_fpup to 50,000,000FP, 0.5 bpstate.rs
dm_basis_bps0 to 10,000 for each leverage, launch 10,000 and 10,000bpsix_admin.rs, DUST-SPEC §3.1

DUST MODE cells, devnet ​

which rounds are open on each coin. on means the cell's bit is set in the instrument's mask (BTC 52, ETH 54, SOL 62). the per cell pricing values are set on chain by the owner and can change inside the bounds above.

asset5000×, 5 s5000×, 15 s5000×, 60 s10000×, 5 s10000×, 15 s10000×, 60 s
BTCoffoffonoffonon
ETHoffononoffonon
SOLoffononononon

oracle and timing ​

nameshipped defaultdevnet listedboundunitdefined in
cadence_ms, P505050, 100, 200, 400 or 1000msstate.rs, DUST-SPEC §3.2
channel_id222, 3 or 4, equal to the cadencestate.rs
delay_ms, D100010001000 to 5000msstate.rs, DUST-SPEC §3.2
guard_ms, G100010000 to 3000msstate.rs, DUST-SPEC §3.2
G + D20002000at least 2000msstate.rs, DUST-SPEC §3.2
max_future_ms50001000 to 10,000msstate.rs, DUST-SPEC §3.2
fallback_after_ms2000cadence to 10,000msstate.rs, DUST-SPEC §3.2
cancel_hard_ms600,00060,000 to 3,600,000msstate.rs, DUST-SPEC §3.2
max_hwm_slots331 to 10slotsstate.rs, DUST-SPEC §3.2
exec_lookback_ms5001000200 to 3000msstate.rs, DUST-SPEC §3.2
max_leverage10001 to 1000× leverageix_admin.rs
feed idBTC 1, ETH 2, SOL 6fixed at listingix_admin.rs

the listed values come from the devnet verify output. the mainnet G, D and exec_lookback_ms: set at launch, from measurements.

the oracle quality gate ​

nameshipped defaultdevnet listedboundunitdefined in
min_publishersBTC 21, ETH 19, SOL 101 to 64publishersstate.rs, DUST-SPEC §3.2
conf_k_x1030, which is k = 3.015 to 100tenthsstate.rs, DUST-SPEC §3.2
max_conf_cbp3000, which is 30 bp500 to 5000centi bpstate.rs, DUST-SPEC §3.2
CONF_FLOOR_CBP300fixedcenti bp, 3 bpstate.rs, DUST-SPEC §3.2
CONF_RING16fixedsamplesstate.rs, DUST-SPEC §3.2
CONF_MIN_SAMPLES5fixedsamplesstate.rs, DUST-SPEC §3.2

mainnet min_publishers: BTC 21 and ETH 19 are the launch rule ceil(0.75 × median). SOL: set at launch.

Pyth Pro accounts and limits ​

namevaluedefined in
PYTH_LAZER_PROGRAMpytd2yyk641x7ak7mkaasSJVXh6YYZnC7wTmtgAyxPtoracle.rs
PYTH_LAZER_STORAGE3rdJbqfnagQ4yx9HXJViD4zc4xpiSqmFsKpPuSCQVyQLoracle.rs
ED25519_IX_INDEX0oracle.rs
MAX_UPDATE_LEN512 bytesoracle.rs
MAX_PRICE10^15, which is $1,000,000 per unitoracle.rs

genesis and emission ​

namevalueunitdefined in
GEN_WINDOW_S, production3,600seconds, the minimum deposit windowmath.rs, DUST-SPEC §3.3
GEN_WINDOW_S, devnet build600secondsmath.rs
D0time weighted average balance over the windowmicro USDCmath.rs, DUST-SPEC §9.1
Fmax(2% × D0, 100,000,000,000)micro USDCmath.rs, DUST-SPEC §9.1
Cmax(4% × D0, 250,000,000,000)micro USDCmath.rs, DUST-SPEC §9.1
Smax(D0, 5,000,000,000,000)micro USDCmath.rs, DUST-SPEC §9.1
R0min(1000, 15,000,000,000 × 10^6 / (S + 8F))$DUST per $1math.rs, DUST-SPEC §9.1
SUPPLY_BUDGET_DUST15,000,000,000$DUST, a projection inputmath.rs, DUST-SPEC §3.3
MIN_DISTRIBUTE_STAKE1,000,000ledger units, 1 $DUSTmath.rs, DUST-SPEC §3.3
reward cap bound250,000,000,000 to 100,000,000,000,000micro USDCix_admin.rs
default OI capmax(10 × D0, 100,000,000,000)micro USDCix_admin.rs, DUST-SPEC §3.1
default DUST MODE exposure capD0 / 4micro USDCix_admin.rs, DUST-SPEC §3.1
OI_CAP_D0_MULT, OI_CAP_FLOOR20, 100,000,000,000cap bound max(20 × D0, floor)state.rs
DUST MODE cap boundmax(2 × D0, 1)micro USDCix_admin.rs

devnet genesis: D0 = 360,054,794, so F = 100,000,000,000, C = 250,000,000,000, S = 5,000,000,000,000 and R0 = 1000. mainnet D0, F, C, S and R0: set at launch.

per wallet limits and DUST MODE rate ​

namevalueunitdefined in
DM_RATE_WINDOW_MS60,000ms, a fixed windowstate.rs
DEFAULT_DM_ROUNDS_WINDOW12rounds per windowstate.rs
rounds per window, bound1 to 600roundsstate.rs
DEFAULT_DM_LIVE_MARGIN_MULT4, times the max DUST MODE margin. $2,000 at launch×state.rs
live DUST MODE margin, boundthe minimum margin to 100,000,000,000micro USDCstate.rs
DEFAULT_WALLET_NOTIONAL_MULT3, times the max notional. $3,000,000 at launch×state.rs
concurrent Core notional, boundthe max notional to 100,000,000,000,000micro USDCstate.rs
DM_CELL_MASK_ALL0b111111six cellsstate.rs
cell bit numberleverage index × 3 + horizon indexbit 0 to 5. leverage index 0 is 5000×, 1 is 10000×. horizon index 0, 1, 2 is 5 s, 15 s, 60 slimits.rs

devnet exchange state ​

fieldvaluedefined in
dm_basis_bps10,000 and 10,000devnet verify output
dust_mode_enabledtruedevnet verify output
transfers_enabledfalse, and there is no setterdevnet verify output, state.rs
opens_enabledtruedevnet verify output
min_margin5,000,000devnet verify output
max_notional1,000,000,000,000devnet verify output
max_dm_margin500,000,000devnet verify output
max_dm_live_margin_wallet2,000,000,000devnet verify output
max_dm_rounds_window12devnet verify output
max_wallet_notional3,000,000,000,000devnet verify output
default_oi_cap100,000,000,000devnet verify output
DUST MODE cap, each side720,109,588, which is 2 × D0devnet verify output

from the devnet verify output.

event keys ​

namevaluesdefined in
ParamsChanged.key1 fees, 2 reward cap, 3 roles, 4 impact, 5 timing, 6 DUST MODE basis, 7 DUST MODE parameter grid, 8 oracle gateevents.rs
RiskParamChanged.key1 min margin, 2 DUST MODE switch, 3 limits, 4 open interest caps, 5 DUST MODE caps, 6 delayevents.rs
RiskParamChanged.inst255 for an exchange level valueevents.rs

set at launch ​

these mainnet values are not fixed yet:

  • the program build hash and the mainnet addresses
  • the mainnet keys: owner, pause guardian, risk keeper, dev recipient and the upgrade authority
  • D0, F, C, S and R0, which come from the deposit window
  • the mainnet G, D and exec_lookback_ms, which come from measurements
  • min_publishers for SOL
  • the impact values for SOL
  • the DUST MODE cell values and the cell masks
  • the referral tier thresholds. they are off chain. the owner sets each wallet's tier