Products
In development · Phase 2

Nereus

A uniform automated market maker for onchain prediction markets. Built around the loss-versus-rebalancing minimum for outcome-token price dynamics — the first AMM whose expected loss is independent of price and, under the dynamic design, independent of time.

Solana SDK 3.xAnchor 1.0program ID · not yet deployed
~35%
tighter than CPMM · P=0.5
V₀/2
calibrated LP retention ceiling
60
bps slippage · 1% pool swap
100%
drift recaptured to LPs
560
python-reference vectors · parity
46
tests · pm-amm-math
Live preview

Trade the curve. Deposit liquidity. Skip time forward.

live · simulation
P(YES)0.500P(NO)0.500freeze35m 0s
Market State?Snapshot of the pool right now. Price is the marginal probability the market assigns to each outcome. Reserves are the YES and NO token balances the pool holds. Liquidity describes how concentrated the pool's quoting is — higher L_eff means tighter spreads for the same trade size.
price · YES
0.5000
price · NO
0.5000
time to resolution
36m 0s(100.0%)
Liquidity?L_eff is the invariant scale — the pool's depth parameter. It starts at L₀ at market creation and shrinks on a √-time schedule toward a safety margin at the freeze boundary. The deterministic portion of that shrinkage routes to LPs via the drift accumulator on every swap; the stochastic portion is the pool's cost of price discovery.
L_eff · current
250,663
L₀ · at creation
250,663
L_eff / L₀
100.00%
Reserves?YES and NO token balances held by the pool. A balanced pool quotes tight markets near P = 0.5; an imbalanced pool (most of one outcome drained) quotes asymmetrically — the scarce side becomes expensive. The pool's imbalance now is 0.0%.
YES
100.0k
NO
100.0k
imbalance
0.0%|x−y| / (x+y)
Freeze boundary?swap_freeze is a protocol safety margin before expiry. After swap_freeze, swap and deposit revert; only withdraw, fee collection, and resolution remain permitted. This prevents the Newton solver from operating in the L_eff → 0 regime where numerical precision breaks down.
time to swap_freeze
35m 0s
Invariant · pm-AMM curve?The set of reserve states where the pool earns constant expected LVR per unit time. The curve shrinks toward the origin as expiry approaches — that's the "dynamic L" mechanism, and it's what gives LPs a fair calendar spread. Reserves move along the curve on swaps; after a deposit they sit slightly above the current curve, and the next swap re-centers.current + prior snapshot
0
x · YES
y · NO
P = 0.5
nowpriorx: YES · y: NO
Spend · NO~$50.00
you receiveshares of YES
99.50YES
if YES resolves → you collect $99.50
avg price1.0020 NO / YES
mid price1.0000 YES/NO
slippage vs mid+20.1 bps
price impact3.2 bps
fee (30 bps)0.30 NO
Advance clock?Time moves only when you click. Each step advances the simulated market clock; L_eff shrinks on a √-time schedule, and drift is captured on the next swap. Try "→ freeze" to see the pool compress against the safety boundary — that's the Phase 2 swap_freeze_slot mechanism you can't watch anywhere else.
Transaction Logsimulated events
waiting for first action…

Mock telemetry · representative of devnet behavior · not live mainnet data

initial pool V₀ $100,000 · fee 30 bps · min_tau 60s
commercial pitch

LPs lose in proportion to realized volatility. Under the dynamic L schedule with calibrated Brownian score dynamics, the expected LP retention at resolution is V₀/2 — but that is an expectation, not a guarantee. At zero realized vol, LPs retain 100% of wealth.

drift offset

The pool's deterministic shrinkage is routed to LPs via a separate accumulator. On every swap, reserves scale by L_new/L_last and the difference transfers to the drift vault — proportional to each LP's share of total liquidity.

~35% tighter

slippage versus a constant-product curve at P = 0.5 for a representative 1% pool swap. Liquidity density concentrates where trader interest concentrates — near fair value — and sparsifies where outcomes are already priced.

scripts/measure-slippage.ts

noteSimulator math models the planned Phase 2 protocol — immutable L₀, static decay trajectory, drift capture via scale-form on every swap. Current Phase 1 devnet code mutates L₀ on deposit; the simulator and the on-chain program reconverge at Phase 2 mainnet. The "large first swap after deposit" behavior is a feature, not a glitch: it reflects how Target 2 reserves re-center onto the L₀ curve when the next swap fires.

How it works

Uniform LVR. Decomposable yield.

A prediction market is a stream of forecast revisions. The pool is a passive counterparty to every revision — it absorbs information asymmetry and pays to do so. That payment is loss-versus-rebalancing, and under the paper's dynamic invariant it accrues at a constant rate over the market's life.

Existing AMMs don't. Constant-product loses a predictable fraction of pool value at every resolution — the closer to expiry, the worse the LVR rate. The pm-AMM flattens that profile, and the drift-capture step turns the deterministic portion of pool decay into LP yield instead of arbitrageur profit.

crates/pm-amm-math/src/invariant.rs

Closed-form pm-AMM invariant

A single normal-CDF-based curve for binary outcome tokens. Liquidity is concentrated near fair value and sparsifies at the tails — tighter slippage near 0.5, graceful degradation near 0/1. Proven monotone in y, which locks Newton bracketing for the swap solver.

crates/pm-amm-math/src/dynamic.rs

Time-varying liquidity

L_eff shrinks from L₀ at market open to a narrow safety margin at the freeze boundary on a √-time schedule. The design target is uniform expected LVR per unit time under calibrated Gaussian score dynamics — a fair calendar spread for LPs.

programs/pm-amm-program/.../swap.rs

Drift capture on every swap

The dollar value the pool loses to time decay doesn't evaporate — it routes to a separate drift vault, distributed per-LP-share. Closed-form scale-form: reserves shrink by (1 − L_new/L_last); LPs keep the deterministic portion of pool decay as yield.

docs/PHASE_2_DESIGN.md

Four-accumulator design

Fee growth and drift growth track on separate X/Y accumulators at the pool level. LP positions snapshot all four at entry and settle against them on collect. The decomposition isn't cosmetic — it's how sponsored-liquidity LPs will report subsidy cost vs. trading yield separately at the protocol layer.

Paradigm · Moallemi & Robinson, Nov 2024

Uniform LVR under Gaussian score dynamics

The dynamic L schedule is calibrated against the paper's Brownian-score model: at constant σ, expected LVR per unit time is constant over the market life. LP losses scale with realized volatility — at zero realized vol, LPs retain 100% of wealth.

programs/.../resolve_market.rs (planned)

Multisig oracle, optimistic later

Phase 2 resolves via multisig oracle_authority — deliberately conservative, audit-friendly. Optimistic-oracle path (UMA-style bonded dispute) is Phase 4 work, gated on the commercial wedge decision. Resolution mechanism is not load-bearing for the pool math.

Roadmap

Path to mainnet.

last updated · April 2026
  1. Phase 01
    complete

    Math library and static pool

    Closed-form invariant, Chebyshev-degree-27 Φ/φ in Q64.64 (~7-10k CU), safeguarded Newton swap solver (p99 4 iterations on Phase 1 histogram), 560-vector scipy-Brent parity at 100% match, full e2e happy-path tagged phase-1-e2e-happy-path.

  2. Phase 02
    in progress

    Dynamic L, drift capture, fee + drift accumulators

    Chunk 1 merged: time-varying L_eff, closed-form scale-form drift capture on every swap, MIN_TAU freeze boundary, sum-conservation and form-equivalence property tests. Chunks 2-4 cover LP position PDAs, fee config, and integration hardening.

  3. Phase 03
    scheduled

    External audit

    Engagement window being scoped with security firms already familiar with Anchor 1.0 and Solana 3.x. Target: Phase 2-complete code plus the off-chain Brent harness used as parity oracle.

  4. Phase 04
    scheduled

    Mainnet + initial markets

    Deploy to mainnet; open to sponsored-liquidity LPs and vertical frontends. Initial market candidates being evaluated against the three commercial wedges — infrastructure, vertical, and sponsored-information.

Early access

Be on the list when Nereus opens to integration partners.

Prediction market protocols, vertical frontends, sponsored- liquidity LPs — drop a line and we'll share devnet endpoints when they're live, the Phase 2 design doc, and the backtester harness once it clears internal review.

Thalassa Labs© 2026 Thalassa Labs
Privacythalassalabs.xyz