mint curve
you get $DUST for losing. this page is the exact rule: how much, and how the rate falls as the house fills.
what mints
$DUST enters existence in exactly two ways:
- a loss or a bust mints $DUST to the trader. a DUST MODE loss counts too
- the referral bonus mints 10% more to the referrer, at the same moment
wins mint nothing. a push, a void and a cancel mint nothing.
there is no pre mint and no allocation to anyone. the supply is 0 at genesis. at launch $DUST is a balance in the ledger. you can see it and stake it. the program has no instruction that turns it into a wallet token.
the basis
every mint has two amounts:
- delta, the advance of the house's tracked LP. a loss with an empty line:
loss − fee. a loss with a waiting line:loss. a bust:margin − fee − bounty, ormargin − bountywhile the line waits - basis, the amount the rate is applied to. for a loss it is delta. for a bust it is the full margin, whatever the fee or the line
minted = integral over delta × basis / delta. for an ordinary loss that is simply the integral over delta.
the genesis values
trading opens after a deposit window. the program fixes four numbers from it when the owner calls genesis_finalize:
D0 = time weighted average of all balances over the deposit window
F = max(2% × D0, $100,000) the flat zone
C = max(4% × D0, $250,000) the reward cap
S = max(D0, $5,000,000) the decay scale
R0 = min(1000, 15,000,000,000 × 10^6 / (S + 8F)) $DUST per $1 of basisD0 is time weighted. every deposit or withdrawal first adds balances × seconds since the last change to a running sum, and D0 is that sum divided by the elapsed time. money parked for a short time counts for little. a deposit in the same second as the finalize counts for nothing.
the deposit window is at least 3,600 s in the production build. the devnet build uses 600 s. the owner chooses the finalize second.
| D0 | F | C | S | R0 |
|---|---|---|---|---|
| $360.05 (devnet) | $100,000 | $250,000 | $5,000,000 | 1000 |
| $3,000,000 | $100,000 | $250,000 | $5,000,000 | 1000 (cap 2586) |
| $10,000,000 | $200,000 | $400,000 | $10,000,000 | 1000 (cap 1293) |
| $20,000,000 | $400,000 | $800,000 | $20,000,000 | 646, the supply cap binds |
mainnet D0, F, C, S and R0: set at launch. F and S cannot change after genesis.
the rate
the rate is $DUST per $1 of basis. it is flat at R0 while the house is small, then it falls:
r(h) = R0 × S² / (S + h)² h = tracked LP − F, the progress past the flat zone
r = R0 while tracked LP < F, including when it is negativethe fall depends only on the ratio h / S:
| progress past F | rate as a share of R0 |
|---|---|
| 0 | 100% |
| 0.1 × S | 82.6% |
| 0.25 × S | 64.0% |
| 0.5 × S | 44.4% |
| 1 × S | 25.0% |
| 2 × S | 11.1% |
| 4 × S | 4.0% |
| 9 × S | 1.0% |
the shares come from the formula above. with D0 = $10M, so F = $200,000, S = $10,000,000 and R0 = 1000:
| tracked LP | progress h | rate, $DUST per $1 |
|---|---|---|
| below $200,000 | none | 1000 |
| $1,200,000 | $1,000,000 | 826 |
| $2,700,000 | $2,500,000 | 640 |
| $5,200,000 | $5,000,000 | 444 |
| $10,200,000 | $10,000,000 | 250 |
| $20,200,000 | $20,000,000 | 111 |
this is the spot rate at a point. an event mints the integral of the rate over the stretch it moves tracked LP across, so the table is a guide, not a price.
the one way ratchet
the program keeps a high water mark H, the furthest progress the house ever reached. it never goes down.
if the house shrinks and fills back up, the ground below H pays the rate it already reached, r(H), not the old higher one. only inside the flat zone does R0 apply again. wins and the staker sweep lower tracked LP but never change H.
the integral
an event moves tracked LP from t0 to t1 = t0 + delta. the program mints the integral of the rate across it:
f = the part of the move inside the flat zone paid at R0
w = the part below H, past F paid at the frozen rate r(H)
n = the new ground above H integrated
J = f × R0 + w_term + n_term
n_term = R0 × S × n / (S + x0) × S / (S + hb) floored step by step
minted = J if basis = delta
minted = J × basis / delta otherwise
H = max(H, t1 − F) once t1 is at or past Fwhere x0 = max(H, t0 − F) and hb = t1 − F. a spot rule would not do this. a loss that straddles F or H would pay the old rate on the whole amount.
- path independence. splitting an event into
kpieces changes the total by at most3kledger units. - it fires underwater. mints happen while the house is below zero and while the line waits. a move that stays below
Fis all flat.
example. D0 = $10M, tracked LP at $190,000, H = 0, a $30,000 loss with an empty line. $10,000 of it is flat and $20,000 is in the decay region. the mint is 29,960,079.84 $DUST. a spot rule would have paid 30,000,000. the same $30,000 as three losses of $10,000 mints 29,960,079.840317, within 2 units.
the supply budget
- decay ceiling. all mints from the decay region together stay under
R0 × S. withR0= 1000 andS= $10,000,000 that is 10,000,000,000 $DUST. - the R0 cap.
R0is capped at genesis so thatR0 × (S + 8F)stays within a budget of 15,000,000,000 $DUST. that budget is a projection input, not a protection. - flat zone mint. it follows cumulative basis. it is not bounded by the
8Fallowance, so supply planning has to account for farming. - units. the ledger holds u128 balances. the Token-2022 mint has 6 decimals.
the referral bonus
if the trader has a referrer, each mint adds a bonus for the referrer:
bonus = floor(minted × 1000 / 10000) 10% of the referee's mint- it is a new mint, on top of the referee's. nothing is taken from the referee
- it goes to the referrer's ledger $DUST and into the total supply
- it does not touch tracked LP or
H. it is dilution, not house accounting - with bonuses, the decay region stays under
1.1 × R0 × S
the 10% is a constant. there is no setter.
example: the straddling loss above mints 29,960,079.840319 $DUST. the referrer gets 2,996,007.984031 on top.
hedged pairs and DUST MODE
a mint follows the loss. a hedged pair, one long and one short, mints on its losing leg, while the winning leg gets most of that back. the program does not look at paired positions.
for DUST MODE there is a lever: DM_BASIS_BPS per leverage, 0 to 10000. it scales the basis of a DUST MODE mint. it never changes delta, tracked LP or H. both values ship at 10000, so a DUST MODE loss mints on its full basis. every change emits DmBasisChanged, so the value is a public record. on devnet it was recorded before DUST MODE was switched on.
after launch
moving $DUST to a wallet, a market for it and a buyback are not in the program. each needs a reviewed upgrade first.
