The curve and fees
Swaps run on a constant-product curve that can be deepened around a slow-moving centre. The fee rises when trades push the price away from that centre or chop back and forth.
Updated Nov 9, 2026
Every swap executes on the market's ordinary liquidity tranche: the executable reserves with hLP ownership removed. The shape of that tranche is a constant-product tail plus up to two nested bands of extra depth around a centre.
The reserve path
Write for the square root of the marginal quote-per-base price. The curve is a full-range tail of liquidity plus ranges with liquidity and square-root bounds . With the price clipped into range :
The inner range is the core, the wider one the shoulder. In the core both are active; in the shoulder only the wider one; outside both, the tail alone. Within any one region active liquidity is constant, so a base input moves the price by
and a quote input is the mirror image. A swap that reaches a boundary continues in the next region: a bounded walk across a handful of segments, not an iterative solve. With amplification one and zero widths the whole thing is exactly .
Shape controls
| Control | Meaning |
|---|---|
| Peak amplification | Depth in the core relative to the tail. 1x is exact constant product; the maximum is 2,000x |
| Core half-width | Half the width of the full-depth band, in basis points of the centre price |
| Fade width | The shoulder beyond the core on each side, at half the extra depth; zero disables it |
Concentrated liquidity is split between the core and the shoulder with rounding in the core's favour. In a concentrated region the marginal price differs from the inventory ratio ; the app shows the marginal price.
The centre
The centre is persistent state. It follows the market through its own moving average, but it does not jump on every trade: a centre controller commits a previously deferred target before quoting, and the trade's own observation can at most schedule a later target.
Thresholds, a maximum step, a minimum interval and an economic admission check constrain every move, and the move itself is funded from surcharge the market has retained for that purpose. A curve that recenters is therefore spending a specific bucket, not printing depth.
An operator concentration change starts a guarded gradual ramp after the full notice. Ramps last at least one nominal day; positive targets stay within 0.1×–10× their starting values.
Explicit zero-width transitions can enable or disable concentrated bands. Price and LP-value checks can reject a candidate transition.
Fees
A swap pays three Dusk components and, for Token-2022 mints, a transfer fee the token program charges on its own.
| Component | When it applies | Budget |
|---|---|---|
| Base fee | Every swap | The market's swap fee, 30 bps by default |
| Divergence surcharge | Trades that push the price outward from the centre, evaluated over the whole trade path | Its own cap |
| Volatility surcharge | Repeated chop; priced from decayed prior state, and a filled trade updates the signal | Its own cap |
| Launch premium | New markets, above the base fee, decaying by time or by price milestones | At most 50% at start |
The fee basis is the input asset, base only or quote only, as the creator chose. When fees are taken from the input, the budget is measured on the reserve credit after the token transfer fee; when taken from the output, on the gross curve output.
Dusk fees together are capped at half of that basis, rounded down. Token transfer fees and price impact are outside the cap.
While a launch limiter is on, a directional size premium can price a single large buy. It is stateless across transactions, so the program refuses more than one swap-like top-level action on the same market in one transaction rather than let the premium be split away.
Where the fees go
The LP-owned part of the base fee and any distributed surcharge is divided by the market's fee profile: a compounding share enters reserve principal and lifts the value of every srLP; the remainder is claimable yield, held in custody outside the executable reserves and paid out through growth indexes. Realized borrow interest follows its own distribution path. A governed share of both goes to the protocol.
Surcharge retained for recentering enters the protected bucket and is neither claimable nor tradable until a recentering deploys it. Yield eligibility is measured at the right transition boundary, so a trade cannot assign its fee to shares that did not exist when it began.