Skip to main content
Guides
Category
Reliability
Reading time
5 minutes
Published

How SolidRPC matches RPC requests to qualified capacity

A chain logo tells you that a service supports a network. It does not tell you whether a particular historical call, trace, or subscription is available. Those are separate questions, and an application often needs several of them answered before it can move into production.

SolidRPC selects serving capacity by the requirements of the request. The public network catalog and chain guides describe the supported surface, while routing accounts for capability, freshness, and observed health behind one endpoint.

Section 01

Five checks behind a routing decision

A suitable path must match the requested chain and method. It must also be able to serve the requested block context, meet the applicable freshness policy, and remain eligible under observed health and capacity conditions. A path that answers one request is not automatically suitable for another.

Consider a current-state read and a trace of an old transaction. They can share a chain ID but require different retained data and RPC support. The same applies to an indexer requesting a large historical log range. The network catalog is the starting point for checking these differences.

What to verify for a production workload
RequirementQuestion to answer
ChainIs the exact chain ID and environment supported?
MethodIs this method or namespace available on that chain?
HistoryCan the path serve the required block context and data type?
FreshnessIs the observed chain progress suitable for the request?
Health and capacityCan eligible capacity complete the work within its limits?
Section 02

Archive, logs, and traces are distinct capabilities

Historical state, blocks, receipts, logs, execution traces, and historical proofs are different data products. The word archive alone does not establish that every one of them is available at every block.

Likewise, debug methods and Parity-style trace methods are separate interfaces. Support for one family does not establish support for the other. Use the exact method and relevant historical fixture when qualifying an integration. Our archive guide explains the distinctions, and the trace-method guide compares their outputs.

The chain pages make method families visible so a team can identify a mismatch before rollout. They should be read alongside any method-specific restrictions in the documentation.

Section 03

WebSocket support has its own qualification

An HTTPS endpoint does not imply a WebSocket endpoint, and a WebSocket connection does not imply support for every subscription type. Check availability and subscription types for the network you intend to use.

The current WebSocket guide documents ordinary stateless JSON-RPC and native newHeads subscriptions on activated networks for eligible accounts. Applications need to save a processing cursor, reconnect and resubscribe after a disconnect, and reconcile missed or replacement blocks. Live delivery is different from durable replay.

Use the current guide and network response for coverage rather than copying a static network list into application assumptions. A capability can become available without changing the endpoint shape used by your integration.

Section 04

What a useful acceptance test looks like

Choose fixtures from the application rather than testing only eth_blockNumber. Include a recent state read, a historical state read at the oldest depth you require, a known non-empty log range, and a known transaction trace if tracing is part of the workload. Verify the expected result or structural invariants, not just the transport status.

For a log query, retain the filter and exact block range. For state, record the block selector. For a trace, record the transaction hash and tracer options. Use stable or finalized fixtures when comparing results so changing chain state does not invalidate the comparison.

Then test representative concurrency and bursts within the plan. Record failures and completion times alongside successful throughput. A single successful call establishes that fixture at that moment, not sustained capacity for every workload.

Section 05

Capability-aware routing keeps the provider work inside SolidRPC

When an eligible request needs another serving path, SolidRPC manages that selection behind the integration. Your application should not need a separate provider contract for each data type or a table of upstream fallback rules.

There is still an explicit application boundary. The team chooses the required chain and method, checks documented support, and handles application outcomes correctly. An unsupported feature should be identified before migration rather than treated as a transient fault that endless retries will fix.

For a production review, send the required chains, methods, historical depth, peak rate, and latency expectations. Those details make it possible to assess the actual workload and choose a concrete evaluation plan. Start with the migration guide and the production benchmark checklist.

Section 06

Frequently asked questions

Does archive access guarantee every trace method?

No. Historical-state availability and trace-method support are separate capabilities. Check the exact network and method, then test representative historical requests.

Do I need to choose the upstream for each method?

No. SolidRPC manages serving-path selection behind one endpoint. Your team specifies the chain, method, and block context required by the application.

Workload review

Want us to benchmark your current RPC stack?

Send your providers, routing setup, method mix, or monthly bills. We will compare the complete stack with one SolidRPC integration across cost, useful completion rate, failover, and operational work.