Logo
New RPC users get 35% off their first monthView the offer
RPC Assistant

RPC Service and Dedicated Node Access for Solana Projects: What Should You Compare?

Summary

Solana projects hit different bottlenecks than EVM apps: high request volume, WebSocket subscriptions, and heavy getProgramAccounts-style reads can overwhelm shared public endpoints. This article explains how to evaluate RPC services and dedicated node access for Solana, including what to test before you commit, how to configure endpoints, and where dedicated infrastructure fits. OnFinality offers Solana RPC API access and dedicated node options, and you can review supported networks and pricing to match your workload.

Solana projects rarely fail because of a single slow request. They fail when request volume, subscription load, and heavy account reads collide on a shared endpoint that was never sized for that pattern. If you are evaluating an RPC service with dedicated node access for a Solana project, the useful question is not "which provider is best" but "which access model fits my workload, and how do I verify it before I commit?"

This page walks through that decision: what shared and dedicated access actually change for Solana, what to test, how to configure endpoints, and where the common failure modes show up. OnFinality provides Solana RPC API access and dedicated node options, and the same evaluation logic applies whether you use OnFinality or another provider.

Quick recommendation: shared, dedicated, or hybrid

Start by classifying your workload. Solana traffic is not uniform, and the right access model depends on which of these patterns dominates your request mix.

Workload patternTypical access modelWhy
Wallet UI, occasional balance and blockhash readsShared RPC APILow, bursty volume; shared capacity is usually sufficient
dApp with steady read traffic and some subscriptionsShared RPC API with WebSocket, plus a fallback endpointPredictable volume, but you still need redundancy
Trading bot, indexer, or backend with sustained high RPSDedicated nodeYou need consistent capacity and isolation from other tenants
Heavy getProgramAccounts / getSignaturesForAddress scansDedicated node, often with archive-style accessThese calls are expensive and dominate shared capacity
Real-time subscriptions at scale (many concurrent accounts)Dedicated node with WebSocketSubscription fan-out is the limiting factor, not raw RPS

A hybrid pattern is common: route latency-sensitive reads and subscriptions to a dedicated node, and keep a shared endpoint as a fallback for non-critical calls. If you are still comparing providers at a high level, the RPC provider selection guide covers the general criteria; this article focuses on the Solana-specific parts.

What dedicated node access changes for Solana

A shared RPC service pools many customers onto a fleet of nodes. A dedicated node gives your project its own node process (or a reserved set of resources) so your traffic does not compete with other tenants.

For Solana, the practical differences are:

  • Capacity isolation. Your heavy getProgramAccounts scan does not degrade another project's traffic, and their traffic does not degrade yours.
  • Subscription headroom. WebSocket subscriptions (accountSubscribe, logsSubscribe, slotSubscribe) hold server-side state per connection. Dedicated capacity gives you more room before you hit connection or subscription limits.
  • Consistent behavior under load. Shared endpoints can show variable latency during network-wide spikes. A dedicated node gives you a more stable baseline, though it is still bounded by Solana network conditions.
  • Configuration control. Depending on the provider, dedicated access may allow tuning around indexing, retention, or RPC method availability.

What dedicated access does not do: it does not remove Solana network congestion, it does not make getProgramAccounts cheap, and it does not eliminate the need for failover. Treat it as capacity and isolation, not as a guarantee.

Solana endpoint settings and connection basics

Solana RPC uses JSON-RPC over HTTP and WebSocket. There is no chain ID handshake like EVM networks; you point your client at a URL and call methods. OnFinality's public Solana endpoint is available for testing:

  • HTTP: https://solana.api.onfinality.io/public
  • WebSocket: wss://solana.api.onfinality.io/public-ws

A minimal JSON-RPC call looks like this:

curl https://solana.api.onfinality.io/public \
  -X POST -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "getLatestBlockhash",
    "params": [{"commitment": "confirmed"}]
  }'

In a JavaScript client, the same call through @solana/web3.js:

import { Connection, clusterApiUrl } from "@solana/web3.js";

const connection = new Connection(
  "https://solana.api.onfinality.io/public",
  { commitment: "confirmed", wsEndpoint: "wss://solana.api.onfinality.io/public-ws" }
);

const { blockhash, lastValidBlockHeight } =
  await connection.getLatestBlockhash("confirmed");
console.log(blockhash, lastValidBlockHeight);

For development and testing, Solana Devnet is available so you can validate your client configuration before pointing at mainnet. The mainnet Solana network page lists the current endpoints and supported transports.

Production readiness checklist

Before you commit to a Solana RPC service or dedicated node, verify these items against your actual workload. Do not rely on published benchmarks alone; test with your own request mix.

CheckWhat to verifyWhy it matters
Method coverageAre the methods you call supported (including getProgramAccounts, getTokenAccountsByOwner, simulateTransaction)?Some providers restrict expensive methods on shared tiers
WebSocket supportCan you open and sustain the number of subscriptions you need?Subscription limits are often the first constraint you hit
Commitment levelsDoes the endpoint honor processed, confirmed, and finalized?Incorrect commitment handling causes inconsistent reads
FailoverCan you switch endpoints without redeploying?Single-endpoint setups fail during provider incidents
Rate behaviorWhat happens when you exceed your plan's limits?Hard failures vs. throttling change your retry design
ObservabilityCan you see request volume, error rates, and latency?You cannot tune what you cannot measure

Run a load test that mirrors your production request mix, including the expensive calls, and watch error rates and latency percentiles rather than averages.

Failure modes to expect and how to debug them

Solana RPC issues tend to cluster into a few recognizable patterns.

  • 429 or throttling responses. You are exceeding your plan's request budget or burst capacity. Check whether your client retries with backoff, and whether a dedicated node would give you the headroom you need.
  • getProgramAccounts timeouts. These calls scan large account sets. If they time out consistently, you likely need dedicated capacity or a narrower filter (for example, filtering by data size or memcmp offsets).
  • WebSocket disconnects. Long-lived subscriptions drop on network changes or server restarts. Your client should reconnect and re-subscribe automatically, and you should track subscription count per connection.
  • Stale or inconsistent reads. Mixing commitment levels across calls produces results that look wrong. Standardize on one commitment level per workflow.
  • Blockhash expiry during transaction submission. If your transaction sits too long before submission, the blockhash expires. Fetch a fresh blockhash close to submission time and handle lastValidBlockHeight.

A simple monitoring probe helps you catch these early:

# Check endpoint health and latest slot
curl -s https://solana.api.onfinality.io/public \
  -X POST -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"getSlot","params":[{"commitment":"finalized"}]}'

Run this on a schedule and alert on failures or unexpected slot lag.

How to evaluate a Solana RPC provider

When you compare providers for a Solana project, weight the criteria by your workload rather than by generic feature lists.

ProviderAccess modelsSolana-specific considerations
OnFinalityShared RPC API and dedicated nodesSolana HTTP and WebSocket endpoints, dedicated node options for sustained or subscription-heavy workloads
Other managed RPC providersVaries by planCheck method restrictions on shared tiers and WebSocket limits
Self-hosted nodeFull controlHighest operational overhead; you own upgrades, monitoring, and failover

Questions worth asking any provider:

  1. Which Solana RPC methods are available on each plan, and are any restricted?
  2. How many concurrent WebSocket subscriptions are supported per connection and per account?
  3. What is the documented behavior when you exceed rate limits?
  4. Is there a status page or incident history you can review?
  5. Can you move from shared to dedicated access without changing your integration?

For pricing and plan structure, see RPC pricing, and for the full list of chains, see supported RPC networks.

Migration checkpoints

If you are moving from a public endpoint or another provider to a dedicated Solana node, sequence the change to avoid downtime.

  1. Add the new endpoint alongside the old one. Do not replace your current endpoint immediately.
  2. Route a small percentage of traffic to the new endpoint and compare error rates and latency.
  3. Move subscriptions first or last, deliberately. WebSocket migrations are the most disruptive; test reconnection logic separately.
  4. Verify method parity. Confirm every method you call works on the new endpoint before shifting production traffic.
  5. Keep a fallback endpoint configured. Even with a dedicated node, maintain a secondary endpoint for failover.
  6. Monitor for a full cycle (at least one week of normal traffic) before decommissioning the old endpoint.

If your project also runs on EVM chains, the same migration discipline applies; the dedicated node page describes how OnFinality structures dedicated access.

Key Takeaways

  • Solana RPC performance depends on your workload mix, not just raw request volume. Expensive reads and WebSocket subscriptions are usually the real constraints.
  • Shared RPC API access fits low-to-moderate, bursty traffic. Dedicated node access fits sustained high RPS, heavy account scans, and large subscription fan-out.
  • Dedicated access provides capacity isolation and configuration control, but it does not remove Solana network congestion or eliminate the need for failover.
  • Test with your own request mix before committing, and verify method coverage, WebSocket limits, commitment handling, and rate-limit behavior.
  • Always keep a fallback endpoint and monitor endpoint health on a schedule.

Frequently Asked Questions

Do I need a dedicated Solana node for a small dApp?

Usually not. A shared RPC API endpoint handles typical dApp read traffic. Consider dedicated access when you have sustained high request volume, heavy getProgramAccounts usage, or many concurrent WebSocket subscriptions.

Does dedicated node access reduce Solana RPC latency?

It can provide a more stable baseline under load because your traffic is not competing with other tenants, but latency is still influenced by Solana network conditions and your own infrastructure. Test with your workload rather than assuming a fixed improvement.

Can I use the public OnFinality Solana endpoint in production?

The public endpoint is useful for testing and low-volume use. For production workloads, review RPC pricing and consider a plan that matches your request volume and subscription needs.

How do I handle WebSocket disconnects on Solana?

Implement automatic reconnection with re-subscription, track active subscriptions per connection, and avoid opening more subscriptions than your plan supports. Test disconnect behavior deliberately rather than waiting for it to happen in production.

What is the difference between Solana mainnet and devnet endpoints?

Devnet is a separate network for development and testing, with its own endpoints and state. Use Solana Devnet to validate client configuration, then move to the mainnet Solana network endpoints for production.

Next step

Classify your Solana workload using the table at the top of this page, then run a load test against the endpoint model you are considering. If your traffic is sustained or subscription-heavy, review dedicated node options and RPC pricing to see what fits, and check the Solana network page for current endpoint details.

RPC Knowledge Base

Related RPC details

Never Worry about Infrastructure Again

OnFinality takes away the heavy lifting of DevOps so you can build smarter and faster.

Get Started