Skip to content
0%
Overview page background

What is the Solana Geyser Plugin? A 2026 guide for builders

Author headshot

Written by Alchemy

Published on May 20, 20266 min read

Solana Geyser Plugin data stack

TL;DR: Geyser, Yellowstone, and when to stream

  • Geyser: A validator-side plugin that pushes account updates, slots, transactions, blocks, and entries to external systems. No polling.
  • Yellowstone gRPC: The network protocol most builders use today. It wraps Geyser and exposes streams over the network.
  • Use streaming when: You need every account write, sub-second confirmations, or you're looping getProgramAccounts (indexers, MEV, fill engines, AMM monitors).
  • Use RPC when: Occasional reads (balances, single txs, current slot).
  • Alchemy: Runs validator + Geyser + Yellowstone-compatible gRPC. 5-15ms average delivery, multi-node redundancy, from $75/TB with no monthly minimum.

If you only read one section, read When should your team care about Geyser?.

The Solana Geyser Plugin is a validator-side interface that streams real-time state changes (account updates, slot status, transactions, blocks, and entries) out of a Solana validator to external systems like databases, message queues, or indexers.

Geyser is the mechanism inside the validator. The protocol most builders interact with today, Yellowstone gRPC, sits on top of Geyser and exposes those streams over the network so apps can consume them without running their own validator. Use Solana RPC for occasional queries. Use a Yellowstone-compatible Geyser stream when you need every account change, transaction, or slot in real time without calling getProgramAccounts in a loop.

What changed for the Solana Geyser Plugin since 2023

Geyser landed in Solana 1.9 as a plugin trait inside the validator. In 2023 most teams ran their own validator with a PostgreSQL or Kafka plugin compiled directly into it. That pattern is now rare.

Since then:

  • Yellowstone gRPC (originally developed by Triton One, now community-maintained) emerged as the standard protocol that wraps Geyser and exposes streams over the network. Most "Geyser providers" today actually sell Yellowstone-compatible gRPC.
  • Managed providers (Alchemy, Helius, Triton, and others) run the validators and Geyser plugins for you and expose streaming endpoints behind an API key.
  • Indexing pipelines like Substreams, Carbon, and various proprietary stacks consume Yellowstone streams instead of polling RPC.

If your blog or doc still says "compile the PostgreSQL plugin into your validator," that workflow exists but is no longer the path most teams take. For a side-by-side of the providers running these stacks, see our top Solana RPC providers guide.

What the Solana Geyser Plugin actually does

A Geyser plugin is a shared library the validator loads at startup. The validator implements the GeyserPlugin trait and calls into the plugin every time something interesting happens onchain. The plugin then decides what to do with that data: write it to a database, push it onto a queue, ship it down a gRPC stream, drop it, and so on.

The validator pushes; the plugin reacts. That's the whole model. There is no polling, no RPC call, and no rate limit. The data arrives the moment the validator processes it.

What gets streamed

Geyser exposes hooks for:

  1. Account updates: Every write to every account, with the slot, write version, and full account data.
  2. Slot status changes: processed, confirmed, rooted.
  3. Transactions: Full transaction details, including logs and inner instructions, as the validator confirms them.
  4. Blocks: Block metadata including rewards, parent slot, and entry count.
  5. Entries: Sub-block units (PoH entries), useful for the most latency-sensitive consumers.

A plugin can subscribe to any subset. Yellowstone gRPC exposes the same set of hooks as subscription streams with server-side filtering (by account, program, owner, signature, or data slice).

When should your team care about Geyser?

Use a Geyser-backed stream when any of these is true:

  • You need every account write for a program (e.g., an AMM, an orderbook, a lending market). getProgramAccounts is too slow and too expensive.
  • You're building an indexer, a fill engine, an MEV bot, or a real-time analytics pipeline.
  • You need transaction confirmation events with sub-second latency.
  • You're paginating through large datasets and burning RPC credits doing it.
  • You need ordered, gap-free history of a program's state.

You probably don't need Geyser when:

  • You're making occasional reads (token balance, single transaction lookup, current slot). RPC is the right tool.
  • Your app is read-heavy on user-driven queries, not write-stream consumption.

How Geyser, Yellowstone, gRPC, and indexers fit together

The modern Solana data stack is a four-layer stack:

Layer
What it is
Who runs it

Validator

The Solana node processing transactions

Validator operators (or your provider)

Geyser plugin

Validator-loaded library that receives state-change callbacks

Compiled into the validator

Yellowstone gRPC

Standardized streaming protocol on top of Geyser

Exposed by your provider's endpoint

Indexer / consumer

Your app, your database, your pipeline

You

Most modern Solana apps never touch the validator or Geyser plugin directly. They open a Yellowstone gRPC connection, subscribe to the slices they care about (filter by program, owner, signature, etc.), and stream events into whatever storage or processing layer they've built. The streaming provider runs the validator, loads the Geyser plugin, and exposes Yellowstone on the other end of that connection.

Yellowstone-compatible gRPC is widely supported across Rust, TypeScript, Go, and any language that can compile a .proto, so migration between providers is typically a URL and key swap.

Where Alchemy fits in the modern Solana data stack

Alchemy runs the validator, the Geyser plugin, and the Yellowstone-compatible gRPC layer for you. A few things are worth knowing if you're evaluating providers:

  • Yellowstone-compatible gRPC: Drop-in compatibility across Rust, TypeScript, Go. Migration is a URL change.
  • 5-15ms average delivery: First-slot-data guarantees for latency-sensitive consumers.
  • 48-hour block replay and 6,000+ historical slots: Recoverable on demand, so brief disconnects or restarts don't cost you data.
  • Multi-node redundancy: Every subscription is fanned across multiple upstream nodes, so a single slow or stalled node never surfaces in your stream.
  • Regional endpoints: US East, US West, EU Central, Asia-Pacific.
  • Pay only for what you stream: $75 per TB, no monthly minimum.
  • Prometheus-compatible metrics: Per-stream telemetry built into the Alchemy dashboard.

Alchemy's Solana stack was built from the ground up in collaboration with leading Solana engineers from DexterLab and Bware Labs, and powers Phantom, Solflare, Robinhood, OpenSea, and Circle.

Frequently asked questions

What is the Solana Geyser Plugin?

The Geyser Plugin is a validator-side interface that streams real-time state changes (account updates, slot status, transactions, blocks, and entries) out of a Solana validator to external systems. It's a push model: the validator notifies plugins as data arrives, with no polling or RPC overhead.

What's the difference between Geyser and Yellowstone?

Geyser is the validator-internal plugin interface. Yellowstone is the network protocol (built on gRPC) that exposes Geyser streams to remote clients. Most builders today interact with Yellowstone, not Geyser directly. They connect to a Yellowstone gRPC endpoint operated by a streaming provider rather than compile a Geyser plugin into their own validator.

When should I use Geyser/Yellowstone instead of RPC?

Use streaming when you need every account write, every transaction, or every slot in real time. That's common for indexers, MEV bots, fill engines, AMM/orderbook monitors, and real-time analytics. Use RPC for occasional reads (balances, single transactions, single accounts). If you find yourself calling getProgramAccounts in a loop, that's the signal to switch to streaming.

Do I need to run my own validator to use Geyser?

No. In 2023 that was common; in 2026 most teams use a managed Yellowstone-compatible gRPC endpoint from a provider that handles the validator and Geyser plugin for them. Self-hosting is reserved for teams with regulatory or sovereignty requirements.

What can I stream with a Geyser/Yellowstone subscription?

Account updates, slot status changes (processed/confirmed/rooted), transactions with logs and inner instructions, block metadata, and PoH entries. Yellowstone gRPC supports server-side filtering by account, program, owner, signature, or data slice, so the stream only carries what your app needs.

How do I migrate between Yellowstone providers?

Yellowstone is a standardized protocol, so most migrations are a URL and API key change. Verify the new provider supports the streams and filters you're using, test in staging, and roll traffic gradually. Reconnect-with-backfill behavior varies between providers, so confirm it before switching production workloads.

What does Geyser/Yellowstone streaming cost?

Pricing models vary. Per-TB pricing (Alchemy: from $75/TB, no monthly minimum) is the most predictable for bursty workloads. Some providers bundle gRPC into monthly plans with included data, which can be cheaper at steady volume but expensive if traffic spikes. Always benchmark against your actual subscription filters before committing.

Ready to build on Solana? Stream with Alchemy's Yellowstone-compatible gRPC: drop-in compatibility, multi-node redundancy, and $75/TB with no monthly minimum.

Background gradient

Build blockchain magic

Alchemy combines the most powerful web3 developer products and tools with resources, community and legendary support.