Self-hosted Solana swap API

21 pool types, priced with each venue's own math. Geyser or plain RPC. Sub-millisecond quotes. Live /swap-stream WebSocket broadcasting every confirmed DEX swap with native + USD prices. On-chain fee enforcement with an immutable router program.

<1 ms
Quote Latency
21
Pool Types
~110/slot
Swap Stream Rate
curl "http://localhost:8080/quote?\ input=So11111111111111111111111111111111111111112&\ output=EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v&\ amount=1000000000"

Built for Speed

⚡

Geyser-Native Streaming

Pool state, vault balances and tick arrays via Yellowstone gRPC, or from blocks over plain RPC. No RPC on the quote path.

🔗

Generic N-Hop Routing

1 to 5 hops in one instruction, one slippage check on the final output.

🔒

On-Chain Router

Every swap settles through the open-source flow-router program: sequential DEX CPIs, a route-level minimum, an optional output-token fee. First generation audited by SigIntZero.

🚀

500 Pools/Minute Discovery

Dual-channel Geyser discovery — account stream + block stream. SQLite persistence for instant restart.

📡

Live Swap Stream

WS /swap-stream broadcasts every confirmed DEX swap with native + USD prices. Filter by DEX, mint, pool, or trade size. About 110 swaps per slot on mainnet.

🛠

Exact Venue Math

Tick walks, bonding curves, vault shares, fee tiers: quotes match the program's output to the atom.

📂

Open Source

Server and router are MIT-licensed Rust: flow-trades-solana and flow-router-solana. Build them yourself with cargo build --release.

Ready to integrate?

Read the API docs, point the server at an RPC (and optionally a Geyser endpoint), and start serving quotes in minutes.

Get Started