Home
Coming soon · devnet soak

ThalassaFi

An oracle-pegged automated market maker on Solana — engineered around a single number. The onchain oracle update costs 56 compute units: roughly three orders of magnitude cheaper than reshaping a central limit order book on the same chain. That is the difference between a passive curve and an executable venue.

Solana SDK 3.0Rust 1.79+Agave runtimeprogram ID · 4jSP…bA8H
56
CU · oracle hot path
21 B
oracle payload
320 B
pool layout
11
instructions
85
tests passing
Live preview

The pusher, the program, the pool.

live · simulation
ACTIVECPI_ONLY
Exchange Feeds
Binancew=5
170.452300
170.4513/170.4533
Coinbasew=3
170.452500
170.4499/170.4551
OKXw=2
170.452450
170.4509/170.4540
Composite Mid
170.452390
Σ(mid × w) / Σw · stale-filtered
Onchain Depth · concentrated x·y=koracle_update · #18341
170.2818oracle 170.4523170.62280.7 bps+0.7 bps
bid · executable inventoryexecutable inventory · ask
Pool Hot-Path
price
170.452300
nonce
18,341
last_update_slot
298,114,476
bid_offset
0.7bps
ask_offset
0.7bps
Reserves
reserve_a (SOL)
4812.41
reserve_b (USDC)
819,204
cumulative_volume
14,204,812
Transaction Logoracle_update · 21 B · 56 CU
waiting for first push…

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

How it works

Pricing offchain. Execution onchain.

An offchain pusher composes a fair value from three exchanges, applies volatility-aware widening and inventory-aware skew, and pushes it onchain inside a Jito bundle. The onchain program applies the oracle faithfully, runs SPL Token transfers, and enforces a small set of safety invariants — nothing more.

Strategy lives in the pusher, not the program. Iteration doesn't require redeploying. Audits only have to certify that the program applies spreads faithfully — not that it computes them correctly.

program/src/entrypoint_custom.rs

Zero-copy entrypoint

A hand-written extern "C" entrypoint walks the runtime buffer with compile-time-constant offsets — no AccountInfo vec, no Clock::get(), no allocator. The 56-CU success path falls out of the layout.

oracle-pusher/src/price_feed.rs

Integer-only price feed

ASCII exchange prices are parsed by string surgery — split on '.', pad to 9 digits, parse to u64. f64 never touches the path that feeds onchain. A dropped fractional digit at $170 is $170 of slippage on a single trade.

composite + vol estimator

Multi-exchange composite mid

Binance, Coinbase, and OKX websocket feeds fan into a weighted composite with per-exchange staleness filtering. A rolling-window vol estimator widens spreads when realized vol exceeds the configured baseline.

oracle-pusher/src/jito.rs

Jito bundle inclusion

Oracle updates land via Jito's block engine with hard-clamped tips and per-bundle inclusion-rate logging. The maker can refresh its quote in the same slot a toxic taker arrives — effectively cancel-priority.

jupiter-sdk/src/lib.rs

Bit-identical Jupiter SDK

The Jupiter Amm trait implementation dispatches directly to the program's curve crate. The quote a taker sees through Jupiter is the amount the swap instruction lands onchain — no math duplication, no drift.

runbook/kill_switch.md

Defensive surface

Price sanity band, post-fill spread penalty, staleness multipliers (1×/2×/5× then reject), CPI-only routing, and a single-instruction kill switch. The runbook is regression-tested on localnet.

Roadmap

Path to mainnet.

last updated · April 2026
  1. Phase 01
    complete

    Core program complete

    11 instructions, 320-byte pool layout, 56-CU hot path, 85 tests passing including byte-equivalence between hot and cold paths.

  2. Phase 02
    in progress

    Devnet stability soak

    Pusher running against live exchange websockets at production cadence; oracle latency, inclusion rate, and inventory drift under continuous observation.

  3. Phase 03
    scheduled

    External audit

    Required before renouncing upgrade authority and seeding material capital. Scope locked to the onchain program plus the pusher's tx-construction path.

  4. Phase 04
    scheduled

    Mainnet deployment

    Initial pair: SOL / USDC. Liquidity scaling on demonstrated execution quality — markout at t+5 and t+10 against the published mid.

Early access

Be on the list when ThalassaFi opens to integration partners.

Aggregators, takers, and operators evaluating onchain venues — drop a line and we'll share devnet endpoints, the Jupiter-SDK quote shim, and a walkthrough of the audit scope when it firms up.

Thalassa Labs© 2026 Thalassa Labs
thalassalabs.xyz