V2 vs V1
Dusk keeps V1's core idea, a lending market inside an AMM pool, and adds senior and junior LP shares, hedged single-sided deposits, concentrated depth and leverage.
Updated Nov 9, 2026
Omnipair V1 introduced the Generalized Automated Market Maker: a constant-product pool with an isolated lending market inside it, priced by its own reserves. V2, called Dusk, keeps that idea and rebuilds everything around it as a standalone program with its own IDL, account model and SDK. This page is the map between the two.
Trading
| V1 | V2 (Dusk) | |
|---|---|---|
| Curve | Constant product | A constant-product tail plus optional concentrated core and shoulder bands, up to 2,000× deeper, around a slow-moving centre |
| Price source | The pool's own reserves | The market's own reserves, or optionally guided toward one oracle feed within a weight and an adjustment cap, both fixed at creation; a stale report stops price-sensitive actions |
| Risk prices | A symmetric and a fixed directional average; the lower one for borrowing and liquidation | Symmetric and directional averages with half-lives from one minute to twelve hours, plus depth and centre averages; the lower price for borrow admission, the symmetric one for liquidation |
| Swap fees | One base fee | A base fee, divergence and volatility surcharges and an optional launch schedule, capped at 50% combined |
| Flash loans | Yes, 5 bps | None; atomic flash fills exist only for liquidation and hedged-vault recovery |
Liquidity and yield
| V1 | V2 (Dusk) | |
|---|---|---|
| LP shares | omLP, one class | srLP (senior), jrLP (junior, first loss) and a base and a quote hLP (hedged) |
| First-loss capital | None; every LP shares a loss | The junior tranche takes funded losses first for a governed share of LP income, 50% by default (10–90%), seeded with a thousandth of the creator's deposit |
| Single-sided liquidity | None | Hedged vaults: one token's price exposure at about 2× gross, LP income, funding paid to the other LPs, and stop-loss and stop-rate orders |
| LP yield | Swap fees and interest credited to reserves | Swap fees split between compounding and claimable yield; interest paid through income books as borrowers pay |
| Leaving | A 1% withdrawal fee, paid to the remaining LPs | No fee for srLP or hLP; leaving the junior tranche pays 50 bps and waits seven to ten days' notice, then a two-day window |
Lending and rates
| V1 | V2 (Dusk) | |
|---|---|---|
| Collateral factor | Impact-aware at the lower average, dynamic up to 85% or fixed per pool, with a 5% borrow buffer | Impact-aware on a shadow tail at the pessimistic price and conservative depth, dynamic only, up to 85% with a 5% buffer, stored per position and debt side |
| Borrow limits | The collateral factor, net of debt already drawn from the pool | Cash, collateral, the market health floor and a daily bucket for new public borrowing: 20% of conservative depth by default, at most 30%; utilization never refuses a loan |
| Interest | A band on utilization, with per-pool minimum, maximum, initial rate and half-life | Two bands, junior coverage (5–6.25%) and utilization (75–80%): the rate rises when either is out of line and falls only when both are comfortable; 14-day half-life (12 hours to 30 days), 4% start, 1% floor, no cap |
Liquidation and losses
| V1 | V2 (Dusk) | |
|---|---|---|
| Trigger | Debt above impact-aware value times the factor | Debt above collateral marked at the symmetric average against the stored factor |
| Execution | Any caller; half the debt when solvent, a full write-off when not; a 3% penalty, 0.5% of it to the caller | Keepers' atomic flash fills at a 0.5–5% discount; an internal fallback at or below 70% of maintenance, with a 0.3–1% caller reward |
| Charge | The 3% penalty | A fixed 300 bps solvent charge: 20% to the protocol, the rest to the junior tranche |
| Bad debt | Shared by all LPs | Burns junior capital first; reaches senior srLP only after all junior capital is gone |
Leverage
| V1 | V2 (Dusk) | |
|---|---|---|
| Positions | Manual loops of borrow and swap, up to about 6.67× | Isolated positions in one instruction; maintenance tiers of 7%, 12% and 17% by size, which cap a small position at 10×; 20× is only a circuit breaker |
| Orders | None | Take-profit, stop-loss and limit entries lasting one hour to thirty days, run by keepers on a separate delegate program; 10 bps protocol fee per executed order |
| Protection | None | Sponsor-funded protection orders that repay debt or add collateral when health drops |
Governance and revenue
| V1 | V2 (Dusk) | |
|---|---|---|
| Market settings | Fixed at creation | Changed by the market's operator, set at launch, or an optional manager: seven families of settings, one pending bundle that waits the longest junior exit notice plus a day, then a seven-day execution window; nothing executes while either side's utilization is at or above 80% |
| Protocol settings | A futarchy authority held by a team multisig | A futarchy authority over protocol fees, referrals and auctions; a fixed emergency key for reduce-only mode |
| Protocol revenue | A share of swap fees and a fee added to interest, split between treasury, buybacks and team | 20% of swap fees and a 20% markup on top of interest by default, 20% of the liquidation charge and 10 bps on executed orders, sold through protocol auctions |
| Operator revenue | None | An operator share of 0–50% of base interest, chosen at launch and taken from the LPs' part |
| Referrals | None | Listed partners earn a share of protocol interest on debt they refer |
Tokens and tooling
| V1 | V2 (Dusk) | |
|---|---|---|
| Market tokens | SPL tokens | SPL or Token-2022 tokens with nine decimals or fewer; transfer hooks and other unsupported extensions are refused |
| LP tokens | SPL | Token-2022 mints with transfer hooks that keep yield accounting exact |
| Market creation | Permissionless, 0.2 SOL | Permissionless, 0.2 SOL; the creator chooses the base and quote order and becomes the operator |
| Programs | One program | The Dusk market program plus a leverage-delegate program for orders |
| SDK and data | @omnipair/program-interface and an indexer | @omnipair/dusk-sdk with typed builders and previews, and an indexer serving REST, server-sent events and gRPC-Web streams |
| Keepers | Any caller can liquidate | Keepers run liquidations, orders, protection and hedged-vault recovery, and are paid for each |
What stayed the same
- The GAMM identity. A cash-backed borrow moves cash into debt and leaves the live reserve unchanged, so borrowing never moves the price. With no hedged vaults the V2 ledger collapses to the V1 one.
- Isolated markets. Losses stay in the market that took the risk.
- Impact-aware collateral. Collateral is worth what selling it into the market would return, price impact included, never a quoted price alone.
- Proportional LP math. srLP mints and burns in proportion to the reserve, with a permanently locked minimum liquidity, as omLP did. Unpaid interest is now left out of that basis and paid to the holders who earned it.
- Permissionless everything. Anyone can create a market, borrow against any token that has one, and run a liquidation.