What is a Solana Geyser plugin?
Updated August 2026
Geyser is Solana's plugin interface for streaming data out of a validator as it processes blocks. Instead of polling an RPC endpoint asking what changed, a Geyser plugin receives account updates, transactions, and slot changes directly from the validator as they happen.
Yellowstone gRPC is the most widely deployed Geyser plugin, which is why the two names are often used interchangeably.
Geyser solves one problem well — reacting to Solana activity as it happens. It does not solve storage, history, or decoding; for a pipeline that needs those too, Substreams covers the same live path plus full history and decoding, from one piece of module code.
Why does Geyser exist?
Because polling Solana over RPC does not keep up. Solana produces slots roughly every 400 milliseconds, and an application that needs to react to activity cannot ask repeatedly whether something has changed — the request volume is impractical and the latency is poor.
Geyser inverts it. The validator pushes data out as it processes, so consumers receive updates rather than requesting them.
What can a Geyser plugin stream?
| Stream | Contains |
|---|---|
| Account updates | Account data changes as they are written |
| Transactions | Processed transactions with status |
| Slots | Slot status changes — processed, confirmed, finalised |
| Blocks | Block metadata |
| Entries | Lower-level entry data |
Consumers usually filter to specific programs or accounts rather than taking everything, since the full firehose of a busy validator is a great deal of data.
What are the constraints?
You need a validator. A Geyser plugin runs inside a validator process. To run your own you operate a validator, which is significant infrastructure. Most teams use a provider instead.
Limited history. This is the important one. A validator streams what is happening now; it is not an archive. Yellowstone implementations add a replay buffer for reconnection — Helius documents about 24 hours — but that is for catching up after a disconnect, not for querying the past.
No transformation. Geyser gives you raw account and transaction data. Decoding it into meaningful records — which instruction ran, what a swap contained — is your problem, unlike Substreams, which decodes as part of the transformation step rather than leaving it to you. Anchor programs need the IDL applied; programs without one need work.
What if I need history as well?
Then Geyser alone is not enough, and it is better to know that before you build.
Substreams processes Solana history in parallel and continues into live streaming with the same module code, so history and real-time come from one pipeline. It also handles decoding as part of the transformation step rather than leaving it to you.
Some teams run both — Geyser for the lowest-latency reaction path, Substreams for history and completeness. Most teams building anything beyond a live reaction path standardise on Substreams and skip operating Geyser at all.
Frequently asked questions
Is Geyser the same as Yellowstone? No. Geyser is Solana's plugin interface; Yellowstone is a widely used gRPC plugin built on it.
Do I need to run a validator to use Geyser data? To run your own plugin, yes. Providers offer access without operating one.
Can Geyser give me data from last year? No. Replay windows cover recent activity — Helius documents roughly 24 hours. For older data, use a source built for full history, like Substreams.
Get an API key at thegraph.market — no personal information required.
Related: How far back can Yellowstone gRPC replay Solana data? · Polling vs streaming blockchain data