NoLimitNodes
PricingDocsBlogAbout
SupportContact
Log in
  1. Home/
  2. Products/
  3. Hosted Services/
  4. Solana Geyser Plugin Hosting
Solana Geyser Plugin Hosting

Validator-level
execution.
Without the validator.

Geyser is the deepest data surface Solana exposes: your code runs at the source, catching every account write and every transaction the instant it happens. The price of admission used to be operating a mainnet validator. We removed it. You ship a .so. We run the hard part.

Talk to an engineer

Start free. No card to look around the dashboard. Live on mainnet in under 30 minutes.

Solana mainnetstreaming
your_plugin.soexecuting
on_update_account · on_update_transaction
your systems
PostgresKafkaRedisgRPCWebhook
Managed · zero RPC hops
< 30 min
Upload to live
8
In-process callbacks
$65
Per shared plugin
∞
On a dedicated host
Why Geyser

There are two ways to read Solana.
Only one of them is the source.

RPC and WebSockets stand outside the chain and ask for data. Geyser is inside, holding it as it forms. That difference is the whole reason every serious team eventually goes looking for it.

From the outsideRPC · WebSocket
app → network → node → JSON → chain
  • ✕A network round trip on every single read
  • ✕A JSON encode and decode on every payload
  • ✕Polling gaps that silently drop intra-slot writes
At the sourceGeyser plugin
your code ∈ the stream → chain
  • ✓An in-process callback, no network in the path
  • ✓Raw Rust structs, nothing to serialize
  • ✓Every account write, every slot, nothing skipped

It is why Yellowstone gRPC, Helius LaserStream, and Bitquery all run Geyser under the hood. The question was never whether you want this. It was whether you could afford to run it.

The wall

Running the plugin was never the hard part.
Running the validator under it was.

The monthly floor
Hardware lease
256 GB / 4 TB NVMe, EPYC class
$800 – $2,000
Bandwidth
10 Gbps unmetered uplink
$300 – $800
Colocation / cloud
rack space or instance overhead
$200 – $500
On-call validator engineer
someone who knows Agave snapshots
$1,000 – $3,000
Before one line of plugin code$2,300 – $6,300
With redundancy and a real rotation
$5k–$15k/mo

The hardware is the easy line item. The hard one is the person who can triage a stuck snapshot or a turbine retransmit storm at 2am, every month, even when the cluster behaves.

$ solana-validator --geyser-plugin-config plugin.json
error: snapshot for slot 0 not found, rebuilding…
this is your weekend now▌
The unlock

Now the whole job
is two files.

You hand us a compiled plugin and a config. We verify the ABI, smoke test it, and put it live on mainnet. No server to provision, no snapshot to rebuild, no pager to carry. The hard part is already running. You deploy into it.

everything you upload
your_plugin.so4.2 MB✓ABI verified
config.json1.0 KB✓secrets resolved
→ loaded and running on mainnet live

No Dockerfile, no Terraform, no kubernetes manifest, no PagerDuty schedule. Two files.

Upload to live
under 30 minutes
01
Build against the pinned ABI
cargo build --release
02
Upload .so + config.json
upload
03
Automated ABI and symbol check
dlopen() check
04
Smoke run on staging
staging
05
Promote to production mainnet
promote
What you can build

One callback. Then the whole product is yours.

The function fires the instant the chain moves. What you do inside it, decode, filter, fan out, is the entire business. Six patterns teams run today.

on_update_account→PostgreSQL

Filter by program owner, decode account data with a Borsh schema, upsert into a relational table keyed by pubkey. The classic. Replaces a five-figure data-vendor bill for most single-program queries.

fn on_update_account(&self, acc: ReplicaAccountInfoVersions, slot: u64, _startup: bool) -> Result<()> {
    let info = match acc { ReplicaAccountInfoVersions::V0_0_3(a) => a, _ => return Ok(()) };
    if info.owner != &self.target_program { return Ok(()); }

    self.db.execute(
        "INSERT INTO accounts (pubkey, owner, lamports, data, slot)
         VALUES ($1,$2,$3,$4,$5)
         ON CONFLICT (pubkey) DO UPDATE SET lamports=$3, data=$4, slot=$5",
        &[&b58(info.pubkey), &b58(info.owner),
          &(info.lamports as i64), &info.data, &(slot as i64)],
    )?;
    Ok(())
}
Pricing

Two ways to run. One flat bill.

Start shared and pay per plugin. Move to a dedicated host the moment you outgrow it. No event meters, no compute tiers, no bandwidth surprises on either path.

Sharedstart here
$65/mo
per plugin

One plugin, one price. Add more as you need them.

  • ✓One compiled plugin, live on mainnet
  • ✓Every Geyser callback, every output target
  • ✓Upgrades, logs, health metrics, on-call
  • ✓Live in under 30 minutes
  • ○Runs on shared, pooled hosting

Best for 1 to 3 plugins.

DedicatedBEST VALUE · 4+ PLUGINS
$200/mo
unlimited

Your own host. Run as many plugins as you want, no neighbors.

  • ★Unlimited plugins on one flat bill
  • ★Your own host. Zero noisy neighbors.
  • ✓Full IOPS, full isolation, no contention
  • ✓Everything in Shared, plus priority upgrades
  • ✓Live in under 30 minutes
Talk to an engineer

Best for teams at scale and anything production-critical.

Find your plan
How many plugins will you run?
4plugins
112
Shared · 4 × $65$260/mo
Dedicated · flat, unlimited$200/mo
winner
★

Dedicated saves you $60/mo at 4 plugins, with unlimited room and no one sharing your host.

Either path skips the $5,000 to $15,000 a month it costs to stand up and operate this yourself.

Running dozens of plugins, or need a contractual SLA with credits?Enterprise inquiry→
The full surface, handled

Every callback Geyser fires. None of the operations.

Your plugin gets the complete interface. We carry the upgrades, the patching, and the 2am pages that come with keeping it live.

The callback surfacesolana-geyser-plugin-interface
on_update_accountvery high

Fires on every account write. You receive AccountInfo with owner, lamports, data, executable flag, and rent epoch in the same slot it is committed on mainnet.

on_update_transactionvery high

Every confirmed transaction with full TransactionStatusMeta: logs, pre/post balances, inner instructions, return data, compute units consumed.

on_update_slot_statushigh

Slot transitions across processed, confirmed, and rooted. Drives reorg-safe indexing and finality alerts.

notify_block_metadatamedium

Once per block. Leader identity, parent slot, block height, rewards array, and block time in epoch seconds.

notify_entryhigh

Per entry inside a block. Useful for ordering analysis and tx-batch parallelism research.

notify_transaction_statushigh

Final transaction status as it is recorded on chain. Confirm settlement before downstream effects fire.

on_loadlow

Called once when your .so is loaded. Parse config, open database connections, prepare worker threads here.

on_unloadlow

Called on plugin shutdown. Flush buffers, close sockets, drain queues so you do not lose data on restart.

When Solana ships a new version

Your plugin does not break silently. We test against staging first, flag any change in the GeyserPlugin trait, and only move you to the new version once your binary loads cleanly. That coordination is the difference between hosting and a folder of upload scripts.

< 72h
Back online per release
1.18+
Solana ABI supported
Questions worth asking

The things teams ask before they ship.

Geyser is the official plugin interface baked into the Solana validator. Plugins compile to a Rust shared library (.so) that the validator dlopen()s at startup. From that point on, your code receives synchronous in-process callbacks for every account write, every transaction, every slot transition, and every block. There is no RPC, no WebSocket, no JSON. That is why every serious indexer, MEV firm, and on-chain analytics provider runs Geyser plugins. Yellowstone gRPC, Helius LaserStream, and Bitquery's Solana ingestion all run on Geyser internally.

Where Geyser plugins fit in the stack

Yellowstone gRPC nodes

The streaming layer most Geyser plugins eventually feed into. If your output is a gRPC stream, run it on top.

Enhanced Streams

Pre-built, decoded feeds for Pump.fun, Raydium, Orca, Meteora, and more. Use these when you do not need a custom plugin.

Solana RPC nodes

The complementary side of the same fleet, with shared health metrics and the same uptime SLO.

Historical blocks archive

Backfill your plugin output from any historical slot range without running a snapshot rebuild yourself.

Program streams explorer

Browse every decoded instruction the major Solana programs emit before deciding which ones to plug into.

Why run a validator
just to host a plugin?

Ship a compiled .so and a config. We verify it, smoke test it, and put it live on mainnet. Validator-level execution, none of the validator.

Talk to an engineer
Start free · billed monthly · cancel anytimeHave us build it for you→

Ready to get started?

Get your free API key and start building in under 30 seconds.

Talk to Sales
NoLimitNodes

Solana RPC infrastructure built for performance and scale.

RPC Access
  • HTTP RPC
  • WebSocket
  • gRPC
Infrastructure
  • Compute Platform
  • VPS
  • VDS
  • Bare Metal
  • Geyser Plugin Hosting
Enhanced Streams
  • PumpFun
  • PumpSwap
  • Raydium
  • Orca
  • Meteora
  • System Events
  • Browse All →
Program Streams
  • PumpFun
  • PumpSwap
  • Raydium CLMM
  • Orca Whirlpool
  • Meteora DLMM
  • Jupiter Swap
  • Jupiter Perps
  • Kamino Lending
  • Browse All 37 →
Trading
  • EZWallet
Analytics
  • Historical Datasets
  • Historical Raw Blocks
Company
  • About
Resources
  • Pricing
  • Custom Development
  • Documentation
  • Blog
  • Support
  • Contact Sales
Compare
  • Yellowstone gRPC vs LaserStream
  • Triton vs Helius
  • Raydium API vs Helius
  • PumpSwap API vs Bitquery
  • QuickNode Streams vs NLN
  • All comparisons →
Legal
  • Terms & Conditions
  • Privacy Policy
© 2026 CLR3 Inc., operating as NoLimitNodes. Registered in Ontario, Canada. All rights reserved.solana mainnet