← Back to guides
September 6, 2026·7 min read

Dragon's Mouth vs Fumarole: Triton's Two Solana Streams, and When Each Wins

TritonYellowstoneComparisongRPCSolana

Triton One wrote Yellowstone gRPC — the protocol nearly every Solana streaming provider now speaks, including us. What confuses people is that Triton now offers two streaming products with different designs, and the naming does not make the difference obvious. Dragon's Mouth and Fumarole are not tiers of the same thing.

Yellowstone is the protocol, not a product

First, the terminology, because this is where most confusion starts. Yellowstone gRPC is the open-source Geyser plugin and protocol definition. Anyone can run it, and providers who say "Yellowstone-compatible" mean their endpoint speaks that wire format. Dragon's Mouth is Triton's own hosted Yellowstone service. Fumarole is a different Triton product with different delivery semantics. Subglow, Helius LaserStream, QuickNode, Chainstack, and Solana Tracker all speak the same Yellowstone wire format from their own infrastructure.

Dragon's Mouth: optimised for the front of the queue

Dragon's Mouth is Yellowstone as originally designed — a direct pipe from validator to client, tuned so the interval between a validator seeing a transaction and your process receiving it is as small as possible. The trade-off is inherent to that design: it is a live stream, so if you are not connected, the data is gone. There is no buffer to ask.

Pick it when you are competing on time. Sniping a launch, racing an arbitrage, front of an MEV queue — cases where an event delivered two seconds late has no value at all, so the ability to recover it later is worth nothing.

Fumarole: optimised for not losing anything

Fumarole is built around persistence and resumability. It keeps a durable record of the stream so a consumer can reconnect and pick up where it stopped rather than at the live head, which changes what a disconnect costs from "data loss" to "delay".

Pick it when completeness is the requirement: indexers, accounting and settlement systems, analytics pipelines, anything that will be asked to reconcile against on-chain truth later. For those, a gap is a bug — arriving 50ms later is not.

What a disconnect costs, measured

This is the difference the two products are really arguing about, so here is what we measured with fault injection against client-side strategies. Resuming from the last processed slot is what a persistent stream buys you; the naive row is what a live stream leaves you with:

Client strategyWorst coverageWorst gapDuplicates
Naive reconnect
Reconnect and subscribe from the live head. The default in most tutorials, including ones we have published.
85.0%17 slots1420
Resume from last slot
Track the last processed slot and resubscribe from it. What a provider replay buffer or Triton-style auto-reconnect buys you.
100.0%0 slots1500
Dual overlapping streams
Keep two subscriptions open permanently and deduplicate by signature. Costs double and cannot be beaten on coverage.
100.0%0 slots5632

Worst case across 4 fault-injection scenarios, 3 repeats each, verified 2026-10-01. These measure client-side reconnect logic against a mock stream, not named providers — we hold no accounts on competitors and do not measure their reconnect behaviour.

A naive reconnect to the head loses everything produced during the outage and reports no error. Resuming recovers it, at the price of duplicates at the boundary that you must deduplicate by signature. That is the whole Dragon's Mouth versus Fumarole trade-off in two rows. Full methodology on the reconnect benchmark — note that it measures client strategies against a mock, not Triton's products, since we hold no Triton account.

Where Subglow sits

We are closer to Dragon's Mouth: a live Yellowstone stream, no replay buffer, priced flat at $99/mo with server-side parsing so pubkeys and instruction data arrive as JSON. That makes us a reasonable fit for latency-sensitive trading on a fixed budget, and a poor fit for an indexer that must not miss a slot. For that, a persistent stream — Fumarole, or Helius LaserStream's replay window — is the right tool, and we would rather say so than sell you a stream that drops data you need.

Choosing, in one pass

  • Late data is worthless to you → live stream. Dragon's Mouth, or us on price.
  • Missing data is a correctness bug → persistent stream. Fumarole, or LaserStream replay.
  • Both, on one budget → live stream plus a JSON-RPC backfill path, and instrument your gaps so you know when it fires.
  • Enterprise contract, dedicated capacity, direct support → Triton. That is their market, not ours.

Related

Ready to try it?

Get your API key and start receiving filtered data in under 5 minutes. Free tier available.

Get started →