Slipstream
Sender-agnostic, leader-proximity-aware Solana transaction relay with production-ready client SDKs in Rust, TypeScript, and Python.
What is Slipstream?
Slipstream is a smart transaction routing layer that automatically selects the optimal sender for your transactions based on real-time leader proximity. Instead of being locked into a single provider, Slipstream dynamically routes through the sender closest to the current slot leader.
The SDK connects via auto-discovery — it probes available regions, ranks them by latency, and connects using a protocol fallback chain (QUIC → gRPC → WebSocket → HTTP).
Protocols & Ports
| Protocol | Port | Timeout | Use Case |
|---|---|---|---|
| QUIC | 4433 | 2 s | Primary — tried first |
| gRPC | 10000 | 3 s | Streaming + structured data |
| WebSocket | 9000 | 3 s | Browser clients, streaming |
| HTTP | 9091 | 5 s | Polling fallback, always available |
Protocol fallback is automatic: QUIC → gRPC → WebSocket → HTTP.
Installation
Rust SDK
[dependencies]
allenhark-slipstream = "0.3"
tokio = { version = "1", features = ["full"] }TypeScript SDK
npm install @allenhark/slipstreamPython SDK
pip install AllenHarkSlipstreamQuick Example
Rust SDK
use allenhark_slipstream::{Config, SlipstreamClient};
let config = Config::builder()
.api_key("sk_live_...")
.build()?;
let client = SlipstreamClient::connect(config).await?;
let result = client.submit_transaction(&tx_bytes).await?;
println!("Signature: {:?}", result.signature);
println!("Status: {:?}", result.status);TypeScript SDK
import { SlipstreamClient, configBuilder } from "@allenhark/slipstream";
const config = configBuilder()
.apiKey("sk_live_...")
.build();
const client = await SlipstreamClient.connect(config);
const result = await client.submitTransaction(txBytes);
console.log("Signature:", result.signature);
console.log("Status:", result.status);Python SDK
from allenhark_slipstream import SlipstreamClient, config_builder
config = config_builder().api_key("sk_live_...").build()
client = await SlipstreamClient.connect(config)
result = await client.submit_transaction(tx_bytes)
print(f"Signature: {result.signature}")
print(f"Status: {result.status}")Features
- Leader Proximity Routing — Automatically routes to the sender closest to the current leader
- Multi-Protocol — QUIC, gRPC, WebSocket, HTTP with automatic fallback chain
- Atomic Bundles — Submit 2-5 transaction bundles (5 tokens / 0.00025 SOL per bundle)
- Real-Time Streams — Leader hints, tip instructions, priority fees, blockhash, slot notifications
- Token Billing — 1 token = 0.00005 SOL (50,000 lamports), pay-per-use
- Dynamic Regions — Auto-discovered via discovery service, regions change as infrastructure scales
- RPC Proxy — Proxied Solana RPC methods + transaction/bundle simulation
- Webhooks — Transaction/bundle/billing event notifications with HMAC-SHA256 verification
- TPU Submission — Direct UDP to validator TPU for fire-and-forget scenarios (0.0001 SOL)
Next Steps
- Quick Start — Get your first transaction submitted in 5 minutes
- Configuration — API keys, protocol preferences, timeouts
- Transactions — Submit individual transactions
- Bundles — Atomic multi-transaction bundles
- Real-Time Streams — Subscribe to live data feeds
- Multi-Region — Dynamic region discovery and failover
- Billing & Tokens — Token system and tiers
