Solana RPC access is not a single product. Providers sell at least two distinct access models: shared endpoints where many teams draw from the same node fleet, and dedicated nodes where capacity is reserved for one workload. The difference shows up in request isolation, compute-unit budgets, WebSocket behaviour, and how much operational control you get over the node itself.
This page compares those models specifically for Solana, then gives you criteria to decide which one fits your application. If you already know you need reserved capacity, dedicated node infrastructure is the relevant OnFinality offering; if you are still evaluating, the Solana RPC network page lists the supported transports.
Which access model fits your Solana workload?
Start with the shape of your traffic rather than the label on the plan. Shared access is usually the right starting point when your request volume is modest, your calls are mostly standard reads, and you can tolerate occasional contention from other tenants. Dedicated access becomes worth evaluating when your application depends on consistent behaviour under load, long-lived subscriptions, or heavy account and signature queries.
Use this quick fit check before you compare providers:
| Workload signal | Shared access is usually fine | Dedicated access is worth evaluating |
|---|---|---|
| Traffic pattern | Bursty, low to moderate RPS | Sustained high RPS or predictable peaks |
| Method mix | getBalance, getAccountInfo, sendTransaction | getProgramAccounts, getSignaturesForAddress, large getTransaction batches |
| WebSocket use | Occasional account or slot subscription | Many concurrent subscriptions or program-level logs |
| Isolation needs | Other tenants' load is acceptable | Noisy-neighbour effects are unacceptable |
| Operational control | Provider manages everything | You want node-level tuning and visibility |
| Compliance or data path | Standard shared path is acceptable | You need a reserved, documented path |
If most of your answers sit in the middle column, a shared Solana RPC endpoint is a reasonable place to start and you can revisit the decision as usage grows. If several answers land in the right column, plan for dedicated capacity rather than trying to tune around contention later.
What shared node access actually means on Solana
A shared Solana RPC endpoint is a managed service where the provider runs a pool of nodes and routes many customers' requests through them. You get an HTTP endpoint, often a WebSocket endpoint, and a rate or compute budget that the provider enforces per key or per plan.
The appeal is operational: no validator or RPC node to run, no snapshot management, no upgrade cycle. The tradeoff is that your requests compete with other tenants for the same node resources. On Solana this matters more than on some chains because the runtime is parallelised and compute-unit limits are enforced per transaction, so a node under heavy load can return different results for the same call at different times.
Shared access is not inherently unreliable. Well-run providers isolate tenants with rate limiting, request queues, and separate node groups. The practical question is whether the provider's isolation model matches your sensitivity to latency variance and method-level limits.
Where dedicated Solana nodes change the picture
Dedicated node access means the provider runs a Solana node, or a small cluster, reserved for your workload. You are not sharing compute with unrelated tenants, and the provider can tune the node for your method mix.
For Solana specifically, dedicated access tends to matter for a few reasons:
-
Compute-heavy reads. Methods like
getProgramAccountsandgetSignaturesForAddresscan scan large amounts of account or signature data. On a shared node these calls compete with everyone else's traffic; on a dedicated node the budget is yours. - WebSocket fan-out. Programs that subscribe to account changes, program logs, or slot updates can hold many concurrent subscriptions. Dedicated nodes give you a clearer ceiling on how many subscriptions the node will carry.
- Consistent latency. Trading bots, liquidators, and indexers care about the distribution of response times, not just the average. Reserved capacity reduces the chance that another tenant's spike becomes your slow request.
- Node-level control. You can influence which RPC methods are enabled, how the node is configured, and how it is monitored, within what the provider supports.
The cost is that you now have a capacity commitment and, usually, a more involved onboarding process than pasting a shared endpoint into a config file.
How to evaluate Solana RPC providers on access model
Provider marketing often blurs the line between shared and dedicated. When you compare Solana RPC providers, ask what is actually reserved, what is shared, and how limits are enforced. The table below is a practical evaluation matrix rather than a feature checklist.
| Evaluation area | What to ask | Why it changes your decision |
|---|---|---|
| Access model | Is the endpoint shared, dedicated, or a mix? | Determines isolation and how limits are applied |
| Rate and compute limits | Per key, per plan, or per method? | Heavy Solana methods hit method-level limits first |
| WebSocket support | Concurrent subscription ceiling and reconnect behaviour | Subscription-heavy apps need a clear ceiling |
| Method coverage | Are getProgramAccounts, getSignaturesForAddress, and transaction history available? | Some workloads depend on these more than on getAccountInfo |
| Transport | HTTP and WebSocket availability | Solana apps often need both |
| Failover | How do you move traffic if a node or region degrades? | Recovery time depends on your endpoint strategy |
| Observability | What metrics and logs do you get? | You cannot tune what you cannot see |
| Onboarding | How long until a dedicated node is live? | Affects migration planning |
OnFinality offers both RPC API access and dedicated node infrastructure, so the same provider can cover a shared starting point and a dedicated production path. That reduces migration friction if your workload grows.
Connecting to a Solana endpoint
Most Solana tooling accepts an HTTP RPC URL and a WebSocket URL. The public OnFinality Solana endpoint is useful for smoke tests and small scripts:
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"}]
}'
For a WebSocket subscription, point your client at the matching WebSocket URL:
import WebSocket from "ws";
const ws = new WebSocket("wss://solana.api.onfinality.io/public-ws");
ws.on("open", () => {
ws.send(
JSON.stringify({
jsonrpc: "2.0",
id: 1,
method: "slotSubscribe",
})
);
});
ws.on("message", (data) => {
console.log("slot update", data.toString());
});
When you move to a dedicated node, the endpoint shape stays similar but the URL and any authentication are issued for your node. Keep the endpoint in configuration rather than hard-coding it, so you can switch between shared and dedicated access without a code change. The Solana network page documents the supported transports and the RPC pricing page covers plan differences.
Migration checkpoints before you move to dedicated
Moving from shared to dedicated Solana access is a capacity and operations change, not just a URL swap. Work through these checkpoints:
- Baseline your current usage. Record request volume, method distribution, and peak concurrency on the shared endpoint so you can size the dedicated node.
-
Identify your heaviest methods. If
getProgramAccountsor signature lookups dominate, confirm they are enabled and budgeted on the dedicated node. - Count WebSocket subscriptions. Subscription fan-out is often the first thing to hit a ceiling.
- Plan failover. Decide whether you keep a shared endpoint as a fallback and how your client selects between endpoints.
- Set up monitoring. Track error rates, latency percentiles, and subscription drops from day one.
- Stage the cutover. Route a percentage of traffic to the dedicated node, compare behaviour, then shift the rest.
A simple health probe helps you compare shared and dedicated behaviour during the transition:
for i in 1 2 3 4 5; do
curl -s -o /dev/null -w "%{time_total}s\n" \
https://solana.api.onfinality.io/public \
-X POST -H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"getHealth"}'
done
Run the same probe against both endpoints and compare the spread, not just the average. Variance is usually the clearest signal that shared contention is affecting your workload.
Common pitfalls when comparing access models
- Assuming dedicated always means faster. Dedicated access removes noisy-neighbour effects, but a badly sized dedicated node can still be slower than a well-run shared pool for light workloads.
- Ignoring method-level limits. A provider may allow high request rates but restrict expensive Solana methods. Check the method list, not just the rate card.
- Forgetting WebSocket reconnect behaviour. Long-lived subscriptions need a reconnect strategy regardless of access model.
- Hard-coding endpoints. Keep RPC URLs in configuration so you can move between shared and dedicated access, or between regions, without redeploying.
- Skipping observability. Without latency and error metrics you cannot tell whether a change in access model actually helped.
Key Takeaways
- Shared Solana RPC pools many tenants on the same node fleet; dedicated access reserves node capacity for your workload.
- The decision usually comes down to method mix, WebSocket fan-out, latency variance tolerance, and how much node-level control you need.
- Heavy Solana methods such as
getProgramAccountsandgetSignaturesForAddressare often the trigger for moving to dedicated nodes. - Evaluate providers on isolation model, method-level limits, WebSocket ceilings, failover, and observability, not just headline rate limits.
- OnFinality provides both shared RPC API access and dedicated node infrastructure, with Solana endpoints documented on the Solana network page.
Frequently Asked Questions
Is a dedicated Solana node always better than a shared endpoint?
No. Dedicated access removes contention and gives you more control, but it also comes with a capacity commitment and more setup. For light or bursty workloads, a well-run shared endpoint is often the better fit.
Can I start on shared access and move to dedicated later?
Yes, and that is a common path. Keep your RPC URL in configuration, baseline your usage on the shared endpoint, then size and stage a dedicated node when your method mix or subscription count justifies it.
What Solana methods push teams toward dedicated nodes?
Methods that scan large amounts of data, such as getProgramAccounts and getSignaturesForAddress, plus high-volume transaction history queries and many concurrent WebSocket subscriptions.
Does OnFinality offer both access models for Solana?
OnFinality offers shared RPC API access and dedicated node infrastructure. You can review the access options on the RPC API service page and dedicated node page, and check RPC pricing for plan details.
Related resources
Originally published at OnFinality.
Top comments (0)