What Is Solana Geyser? The Plugin Framework That Powers Real-Time Data

If you've heard terms like "Geyser plugin," "Yellowstone gRPC," or "Dragon's Mouth" and wondered what they mean — this is the guide for you. Geyser is the foundation of real-time Solana data, and understanding it explains why gRPC-based bots have a structural speed advantage.
Geyser in 30 Seconds
Geyser is a plugin interface built into the Solana validator (agave-validator). When a validator processes a slot, Geyser hooks fire synchronously with the validator's execution. Data goes directly from validator memory to the plugin — zero network hops, zero serialization delay.
The Four Callback Types
| Callback | Fires When | Data Provided |
|---|---|---|
on_account_update | Any account changes state | Account pubkey, owner, data, lamports |
on_transaction | A transaction is confirmed | Full transaction with all instructions |
on_slot_status | Slot status changes | Slot number, status (processed/confirmed/finalized) |
on_block_metadata | Block is completed | Block hash, rewards, timestamps |
Why This Is Faster Than RPC
Traditional RPC works like this: your bot asks "what happened?" and the RPC node queries its stored data and responds. This introduces querying latency, serialization overhead, and polling gaps.
Geyser works like this: data is pushed to the plugin the instant it exists in validator memory. No query, no storage round-trip, no polling interval. The data flows: Validator Memory → Geyser Hook → Plugin → Your Bot.
Available Geyser Plugins
Yellowstone gRPC (Dragon's Mouth)
The most popular plugin, maintained by Triton One. Streams data to connected clients via gRPC (HTTP/2 binary protocol). Used by QuickNode, Chainstack, Solana Tracker, and Subglow. Client libraries available for TypeScript, Rust, Python, and Go.
Yellowstone Kafka
Streams Geyser data to Apache Kafka topics. Designed for high-throughput data pipelines where you need replay capabilities and multiple consumers.
Yellowstone PostgreSQL
Writes Geyser data to a PostgreSQL database. Used for historical queries, analytics, and indexing. Not real-time streaming — optimized for storage and querying.
Yellowstone Vixen
A framework for building custom parsers on top of Geyser data. Useful when you need program-specific parsing logic without building a full plugin.
Geyser vs RPC vs WebSocket
| Feature | Geyser (gRPC) | JSON-RPC | WebSocket |
|---|---|---|---|
| Data path | Validator memory → plugin → client | Validator → storage → HTTP response | Validator → pubsub → notification |
| Latency | ~5ms | 200-800ms | 50-200ms |
| Data completeness | Everything (full transactions) | What you query | Notifications only |
| Filtering | Server-side, before transmission | None | Limited (account subs) |
| Missed data | None — persistent stream | Common during congestion | Possible on disconnect |
Running Geyser vs Using a Provider
Running your own Geyser setup: Requires a Solana validator or RPC node ($500-2,000/mo hardware), Yellowstone plugin configuration, DevOps expertise, and 24/7 monitoring. Best for institutional traders with extreme latency requirements.
Using a provider: Managed endpoint, global regions, uptime guarantees, and in Subglow's case, pre-parsed output. Best for most teams — faster to start, lower cost, professionally managed.
How Subglow Uses Geyser
Subglow runs Yellowstone gRPC on professionally managed validators and adds two layers on top:
- Server-side program filtering — only Pump.fun, Raydium, and Jupiter events reach your bot
- Pre-parsed JSON output — Borsh decoding happens on our infrastructure, you get clean JSON
Use the standard @triton-one/yellowstone-grpc client or any gRPC client. Point it at grpc.subglow.io and you're streaming.
Related Guides
- Yellowstone gRPC Tutorial — hands-on connection guide
- Yellowstone gRPC Filters — complete filter reference
- gRPC Provider Comparison — compare providers and pricing
- Solana gRPC vs RPC — detailed protocol comparison
Ready to try it?
Get your API key and start receiving filtered data in under 5 minutes. Free tier available.
Get started →