Geyser Plugin
Validator & infra
A Geyser plugin is a Rust dynamic library loaded by a Solana validator at startup. The validator calls into the plugin every time an account changes, a slot status updates, or a transaction lands. The plugin decides what to do next: write to Kafka, push to gRPC, drop into Postgres. It runs in the validator process, so the data is as fresh as it gets.
Detailed explanation
The Geyser interface is defined by the Agave client in the solana-geyser-plugin-interface crate. A plugin implements a trait with hooks like update_account, notify_transaction, update_slot_status, and notify_block_metadata. The validator picks up the plugin via a JSON config file passed with the --geyser-plugin-config flag at launch.
Because the plugin runs in process, anything it does on the hot path blocks the validator. Real Geyser plugins offload work immediately: they push the update onto an internal channel and let a worker thread handle the network or disk IO. A bad plugin can stall block production. A good plugin adds microseconds of overhead and nothing else.
The most common production plugins are Yellowstone gRPC by Triton, the Solana Foundation's Postgres plugin (now mostly historical), and various closed-source plugins shipped by RPC providers. If you are running a private Solana node, picking a Geyser plugin is the single biggest decision in your stack design after hardware.
One opinion: writing your own plugin is rarely worth it for application teams. Yellowstone gRPC plus a typed decoder layer covers 90% of use cases and you do not have to redeploy your validator every time you change a filter.
When you'll see this
Any pipeline that needs sub-slot data freshness uses a Geyser plugin. That includes MEV searchers, market makers, real-time analytics providers, and indexers backing block explorers. The standard production choice is Yellowstone gRPC. The validator binary that loads it is agave-validator running on mainnet-beta or your own staked node.
How NoLimitNodes uses this
Our entire streaming stack runs on top of Yellowstone gRPC plugins on dedicated nodes. If you want raw access, our gRPC nodes give you the Yellowstone surface directly. If you want managed plugin hosting on hardware we operate, see Geyser plugin hosting.
Related terms
- Yellowstone gRPC · The Triton-built Geyser plugin that exposes a gRPC stream of accounts, transactions, and slots over the wire.
- Processed, Confirmed, Finalized · The three Solana commitment levels, ordered from "this validator saw it" to "supermajority will not roll it back."
- IDL · An Anchor Interface Definition Language file. JSON describing a program’s instructions, accounts, and event layouts.
- Anchor Discriminator · The 8-byte SHA-256 prefix Anchor prepends to every instruction and account so a program can route a call.
- Program Derived Address · A PDA. An off-curve address derived from seeds plus a program ID, signable only by the program that owns it.