Skip to content
← all posts

Is your Solana RPC actually production-ready?

2026-06-11·3 min read·0 views

When you build anything on Solana — a bot, a wallet, an indexer, a data pipeline — you need an RPC. The usual way to pick one: grab a free endpoint, or one a friend recommended, and pray.

The problem is that "is the RPC online?" is the wrong question. An RPC can return 200 OK while:

  • its slot lags a few seconds behind → you get stale data,
  • its blockhash is already expired → your transaction fails,
  • getProgramAccounts is disabled → your indexer dies,
  • latency looks great on a quick check, then chokes under real traffic.

And you find out in production, not in a one-off test.

So I built sol-doctor

sol-doctor (solana-infra-doctor on crates.io) is a Rust CLI that diagnoses Solana RPC production-readiness. The real question isn't "is this RPC online?" — it's "which RPC should I actually trust for this workload?"

What it checks:

  • Real health — core JSON-RPC methods, blockhash freshness, slot data, latency, performance samples. Not just a ping.
  • Compare endpoints, scored 0–100 — feed it 2+ RPCs, get a score for each, side by side. Pick with numbers, not vibes.
  • Workload profiles — scoring adapts to wallet, bot, indexer, ci, or general. A good RPC for a wallet isn't the same as a good one for an indexer.
  • Token readiness — whether the RPC serves SPL Token + Token-2022 as executable accounts (plenty don't).
  • WebSocket readinessslotSubscribe time-to-first-event. A WS that "connects" doesn't always stream.
  • Yellowstone gRPCgrpc check + grpc compare for the Geyser path heavy indexers lean on.
  • Data-readinessgetProgramAccounts enablement + archival depth, for indexer/data workloads.

Output is terminal, JSON, or Markdown, with automatic credential redaction — tokens in the URL never leak into reports or CI logs.

Try it

Install:

cargo install solana-infra-doctor

Check one endpoint:

sol-doctor check --rpc https://api.mainnet-beta.solana.com

Compare a few, with the indexer profile:

sol-doctor compare \
  --rpc https://rpc-a... \
  --rpc https://rpc-b... \
  --profile indexer

Don't want to install? There's a mini version running right in the browser: /tools/rpc-check. Paste an RPC URL, see its health + latency. (It's a small slice of what the CLI does — but enough for a feel.)

Honest about scope

sol-doctor is a local-first diagnostic — it gives you a point-in-time picture and comparable scores, not 24/7 monitoring or an SLA guarantee. For that you still want observability. But for choosing an RPC, or reviewing infra before putting real load on it, this is the thing I wished existed.

Why I care

Picking a Solana RPC is mostly vibes, and a flaky RPC bites you in production — not in a quick test. sol-doctor turns the vibes into numbers you can compare and trust.

Code + prebuilt binaries: GitHub · crates.io.

If you're picking or watching a Solana RPC, give it a run — and tell me what other check would save you a 3am page.