Documentation
Everything you need to connect to Subglow filtered Solana gRPC streams. From API key to first filtered transaction in under 5 minutes.
Industry Standard Compatibility
Subglow is fully compatible with the Yellowstone (Dragon's Mouth) gRPC specification. We don't force you to use a proprietary SDK or learn a custom protocol. If your bot already uses standard Yellowstone client libraries, you are ready to use Subglow — just change the endpoint. Same wire protocol, but with pre-parsed JSON that eliminates the 15-30ms parsing bottleneck from your execution path.
| Layer | Specification |
|---|---|
| Consensus | Solana Mainnet-Beta |
| Transport | gRPC over HTTP/2 + Protobuf 3 |
| Compression | Zstandard (zstd) / Gzip |
| Finality | Slot confirmation (~400ms) · Alpenglow target: ~150ms |
| Interface | Yellowstone SubscribeRequest / SubscribeUpdate |
| Client Libraries | @triton-one/yellowstone-grpc (JS) · yellowstone-grpc-client (Rust) |
| Execution Advantage | Pre-parsed JSON eliminates 15-30ms Borsh/Protobuf parsing overhead |
Prepared for Alpenglow
As Solana transitions to Alpenglow consensus with faster finality, Subglow's Yellowstone-compatible interface means your integration requires zero code changes. We track the Alpenglow rollout and will surface finality metadata as soon as it's available on Mainnet-Beta.
Quickstart
Create an account
Sign up at subglow.io/register. Choose a paid plan for instant access, or apply for a free trial (100 requests/day, reviewed within 24 hours).
Choose your filters
In your dashboard, select which programs to stream: pump_fun, raydium, jupiter, or provide custom Program IDs (Pro tier).
Connect and trade
Point your gRPC client at grpc.subglow.io:443 with your API key in the x-api-key metadata header. You'll start receiving filtered transactions immediately.
Authentication
All requests require an API key passed as gRPC metadata. Your key determines your tier (Sniper, Pro, or Dedicated) and which filters are available.
API keys are 32-character alphanumeric strings. Never expose your key in client-side code or public repositories.
Migration Guide
Switching from providers like Triton One, Helius, or any Yellowstone-compatible endpoint to Subglow takes less than 60 seconds. Because we support the standard Yellowstone SubscribeRequest schema, your existing code works as-is — and you gain pre-parsed JSON that eliminates 15-30ms of parsing overhead.
Update your endpoint
Replace your old provider's connection string with the Subglow global load-balancer. We auto-route to the nearest region (Frankfurt, NY4).
Update authentication
We use the standard x-api-key metadata header. Coming from a provider that uses x-token? Our proxy accepts both — or simply rename the header key in your connection settings.
Keep your filters
We support the standard Yellowstone SubscribeRequest schema. Your existing filter configurations for Program IDs, Account Mentions, and transaction subscriptions work exactly as they do now. On top of that, Subglow adds pre-parsed JSON output — a free upgrade to your existing pipeline.
Filter Configuration
Filters determine which transactions reach your client. Filtering happens server-side before data leaves our infrastructure — reducing your bandwidth and CPU consumption.
| Filter ID | Program | Events | Tier |
|---|---|---|---|
| pump_fun | Pump.fun | buy, sell, create, migrate | All |
| raydium | Raydium v5 | swap, add_liq, remove_liq, create_pool | All |
| jupiter | Jupiter v6 | swap, limit_order, dca | All |
| custom | Any Program ID | All instructions | Pro+ |
Node.js Example
Uses the standard @triton-one/yellowstone-grpc client library. No proprietary SDK required.
npm install @triton-one/yellowstone-grpc — works with any Yellowstone-compatible endpoint.
Rust Example
Uses the standard yellowstone-grpc-client crate. Our proxy maps x-token to the internal API key automatically.
cargo add yellowstone-grpc-client — same crate used with Triton, Helius, and other Yellowstone endpoints.
Python Example
Output Schema
Every transaction arrives as a structured JSON object. The parsed field contains program-specific data with human-readable field names and native types (no base58/base64 encoded blobs).
Pump.fun
Raydium AMM
Error Codes
| Code | Status | Description |
|---|---|---|
| UNAUTHENTICATED | 401 | Missing or invalid API key |
| PERMISSION_DENIED | 403 | Filter not available on your tier |
| RESOURCE_EXHAUSTED | 429 | Rate limit exceeded (Sniper tier) |
| UNAVAILABLE | 503 | Upstream node temporarily unreachable |
| INTERNAL | 500 | Server error — retry with backoff |
Rate Limits by Tier
| Tier | Concurrent streams | Filters | Delivery |
|---|---|---|---|
| Sniper | 2 | pump_fun, raydium, jupiter | Standard |
| Pro | 10 | All + custom Program IDs | Full-speed |
| Dedicated | Unlimited | All + custom | Full-speed + SLA |
WebSocket Fallback
For environments where gRPC is not available (browsers, serverless functions), we offer a WebSocket endpoint with the same filtered output.
WebSocket adds ~2-5ms wire latency compared to native gRPC. Both deliver pre-parsed JSON, so execution latency stays low regardless of transport.
Health Endpoint
Monitor our infrastructure's real-time slot lag versus the Solana network. Use this to verify data freshness and detect upstream issues.
Requires authentication. Pass your API key via the x-api-key header.
Never guess if you're behind. Check your real-time slot lag directly from your bot.