Overview
The app uses only public instructions and reads, so anything it does can be built with the SDK and the indexer API.
Updated Nov 9, 2026
Omnipair V2 is two Solana programs, a TypeScript SDK that wraps them, and an indexer that turns their events into history and live snapshots. Everything a user can do in the app is an instruction you can send yourself; everything the app shows is a read you can make.
@omnipair/dusk-sdkPick your path
Install the SDK, read a market, preview a swap and send it. Ten minutes.
Run a keeperFill liquidations, execute orders, and recover vaults. What each job pays and how to do it safely.
Build on the programEvery instruction, account, event and error, generated from the pinned IDL.
The pieces
| Piece | What it is | Where |
|---|---|---|
| Dusk program | Markets, liquidity, credit, leverage, liquidations, governance, referrals | 2rYBVfGubUVbHrLeut6Dn4A9ShM695dGSPCErdsGo16Y |
| Leverage delegate program | Take-profit, stop-loss, entry and hLP orders, executed through approval hooks | AXUucZuwuCu6voVQGf6tYMQ5LoRwLr9u4ESLpiPqqHbX |
@omnipair/dusk-sdk | Typed writes, reads, previews, operator helpers and an indexer client, with both IDLs | npm · source |
| Indexer | Finalized event history, live snapshots, REST, SSE and gRPC-Web | omnipair/dusk-indexer |
| Reference keeper | Dual-runtime Rust and TypeScript keepers with a shared conformance suite | omnipair/dusk-keepers |
| Program source | The Anchor workspace, tests, whitepaper and verifiable builds | omnipair/dusk |
Three rules that save time
- Pin the revision. The program, its IDL hash, the SDK version and the indexer's protocol identity travel together. The app refuses to transact when they disagree; so should you. Addresses lists the current pins.
- Do not sort mints. The creator's base and quote order defines a market and its price direction. Derive the market address from the mints in that order and the creator's parameter hash.
- Raw atoms everywhere. Amounts are integer atoms in the mint's decimals. Prices are quote per base in fixed nine-decimal
NADprecision. Convert at the UI boundary only, and use the token program's own conversion for mints with UI-amount extensions.
Integration methods
dusk.write for transactions, dusk.get for accounts and previews, dusk.fetch for history.
Instruction builders from the IDL in any language; the SDK's PDA helpers document every seed.
REST API and streamsMarkets, users and positions over REST; native Dusk snapshots, history and change notifications.
Support
- Discord has a developer channel.
- Bugs and feature requests go to GitHub issues on the relevant repository.
- Security issues go to security@omnipair.fi, never to a public issue. See Security.