Summary
Choosing between shared and dedicated Solana RPC access affects throughput, rate limits, and reliability. Shared endpoints are cost-effective for development and light workloads, while dedicated nodes provide isolated capacity for production apps. This guide compares the tradeoffs and helps you decide based on your traffic patterns and performance needs.
Quick decision guide: shared vs dedicated Solana RPC
If you are evaluating Solana RPC access, the first question is not which provider to use—it is whether your workload can tolerate shared capacity. A shared endpoint is a pool of requests from many users funneled through the same infrastructure. A dedicated node gives you an isolated instance with its own compute, memory, and bandwidth.
Here is a practical way to decide:
- Choose shared access if you are building a prototype, running a hackathon project, or have low and predictable traffic (under a few requests per second). Shared endpoints are also fine for occasional reads like wallet balance checks.
- Choose a dedicated node if your application is in production, you expect bursty traffic, you rely on WebSocket subscriptions, or you need consistent latency for user-facing features.
- Choose dedicated if you need to run heavy queries such as
getProgramAccountswith large filters, or if you are indexing data and need to pull many blocks in a short window.
If you are unsure, start with a shared endpoint and monitor your request volume and error rates. When you see rate limit errors or latency spikes during peak hours, it is time to move to a dedicated node. OnFinality offers both shared and dedicated Solana RPC options, so you can migrate without changing your core integration.
What does shared Solana RPC access actually mean?
Shared RPC means multiple developers and applications use the same underlying node infrastructure. The provider balances requests across a cluster, but you do not control the node configuration. You receive a public or API-keyed endpoint that routes your requests to an available node.
Shared access is the default for most RPC services because it is cost-efficient. The provider amortizes hardware costs across many users. For Solana, shared endpoints are often sufficient for:
- Reading account balances and token metadata
- Sending transactions during non-peak periods
- Simple program queries with small response sizes
- Development and testing on devnet or mainnet
However, shared access has inherent limitations. Because you are sharing capacity, you may experience:
- Rate limits that cap your requests per second or per day
- Latency variability when other users spike
- Throttling on expensive queries like
getProgramAccounts - WebSocket disconnects if you exceed subscription limits
These limits are not necessarily a problem if your traffic is modest. But they become critical when your app grows or when you need consistent performance.
What does dedicated Solana RPC access give you?
A dedicated Solana node is an instance provisioned exclusively for your project. You get a private endpoint, and the node's resources are not shared with other tenants. This provides several benefits:
- Isolated capacity: Your request volume does not compete with other users.
- Custom configuration: You can tune the node, adjust caching, or enable specific features.
- Higher throughput: You can sustain higher request rates without hitting shared limits.
- Stable WebSocket connections: Useful for real-time subscriptions to account or program updates.
- Predictable performance: Latency is more consistent because you are not affected by noisy neighbors.
Dedicated nodes are typically used by:
- DeFi applications with active traders
- NFT marketplaces that poll for metadata
- Indexing services that need to scan large ranges
- Gaming apps with real-time state updates
- Any production app where downtime or slow responses directly impact users
Shared vs dedicated: a side-by-side comparison
| Factor | Shared RPC | Dedicated Node |
|---|---|---|
| Cost | Lower, pay-as-you-go | Higher, predictable monthly fee |
| Rate limits | Yes, often strict | Higher or no hard limits |
| Latency | Variable, depends on load | Consistent, lower variance |
| Throughput | Limited by shared pool | Scales with node specs |
| Isolation | None | Full isolation |
| WebSocket | Limited subscriptions | More stable, higher limits |
| Configuration | Fixed by provider | Customizable |
| Best for | Dev, light usage | Production, high traffic |
This table is a general guide. Actual performance depends on the provider's infrastructure and your specific workload. Always test with your own traffic patterns.
How to evaluate your Solana RPC needs
Before choosing, you need to understand your application's RPC profile. Ask yourself:
- What is your peak request rate? Estimate requests per second during busy periods.
- What types of calls do you make? Heavy queries like
getProgramAccountsconsume more resources. - Do you use WebSocket subscriptions? Real-time features need stable connections.
- What is your tolerance for rate limit errors? If your app breaks when a request is throttled, you need dedicated capacity.
- What is your budget? Shared is cheaper, but downtime or slow responses may cost more in lost users.
You can monitor your usage with tools like Prometheus or by logging response times and error codes. If you see HTTP 429 (rate limited) or 503 (service unavailable) responses, that is a signal you need more capacity.
When shared Solana RPC is the right fit
Shared RPC is not a bad choice—it is often the smart choice for early-stage projects. Here are scenarios where shared access works well:
- Development and testing: You need to interact with Solana devnet or mainnet without worrying about production traffic.
- Low-traffic applications: A side project or internal tool with a few hundred requests per day.
- Prototyping: You are validating an idea and do not want to commit to infrastructure costs.
- Occasional reads: Checking wallet balances or token prices at infrequent intervals.
If you choose shared access, select a provider that offers transparent rate limits and a clear upgrade path. OnFinality's shared Solana endpoint is a good starting point, and you can move to a dedicated node without changing your API calls.
When dedicated Solana RPC is worth the cost
Dedicated nodes become necessary when shared limits start to affect your users. Signs that you need dedicated access include:
- Frequent rate limit errors during peak usage
- Latency spikes that make your app feel slow
- WebSocket disconnects that break real-time features
- Need for custom node configuration (e.g., enabling specific RPC methods)
- Compliance or security requirements that demand isolated infrastructure
For example, a trading bot that submits many transactions per second cannot afford to be throttled. A dedicated node ensures each transaction is processed without delay. Similarly, an NFT marketplace that polls for new listings every few seconds needs consistent throughput.
How to test if you need a dedicated node
You can run a simple load test against your current endpoint to see how it behaves. Use a script to send a burst of requests and measure response times and error rates.
Here is an example using curl to send a basic Solana RPC request:
curl https://solana.api.onfinality.io/public \
-X POST \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"getHealth"}'
If you get a response like {"jsonrpc":"2.0","result":"ok","id":1}, the endpoint is healthy. To test throughput, you can use a tool like hey or wrk to send many requests and observe latency and error rates.
Migration path: moving from shared to dedicated
When you decide to upgrade, the migration is usually straightforward because the RPC interface is the same. You simply change the endpoint URL in your application configuration.
Here is an example of updating a Solana web3.js connection:
import { Connection } from '@solana/web3.js';
// Before: shared endpoint
const sharedEndpoint = 'https://solana.api.onfinality.io/public';
// After: dedicated endpoint (provided by your provider)
const dedicatedEndpoint = 'https://your-dedicated-endpoint.onfinality.io';
const connection = new Connection(dedicatedEndpoint, 'confirmed');
Before switching, make sure to:
- Provision your dedicated node and get the endpoint URL.
- Update your environment variables or config files.
- Test on devnet first if possible.
- Monitor your application for any errors after the switch.
Because the JSON-RPC methods are identical, you do not need to change your code logic. This makes the migration low-risk.
Cost considerations: shared vs dedicated
Cost is often the deciding factor. Shared RPC is typically priced per request or as a flat monthly fee with usage caps. Dedicated nodes are priced based on the hardware specifications and network requirements.
For Solana, dedicated nodes may require more powerful hardware due to the network's high throughput. This can make them more expensive than dedicated nodes on other chains. However, the cost is predictable and can be more economical than paying for overages on a shared plan if you have sustained high usage.
When comparing costs, consider:
- Hidden fees: Some providers charge extra for WebSocket connections or archive data.
- Overage charges: If you exceed your shared plan's limits, you may pay per extra request.
- Hardware specs: Dedicated nodes with more RAM and CPU cost more but handle higher loads.
OnFinality offers transparent pricing for both shared and dedicated options. You can view current rates on the RPC pricing page.
Common pitfalls when choosing Solana RPC access
Developers often make mistakes when selecting RPC infrastructure. Here are some to avoid:
- Underestimating your traffic: You may think your app is low-traffic, but a viral feature can change that overnight.
- Ignoring WebSocket needs: If your app uses real-time updates, shared WebSocket limits can be a bottleneck.
- Not testing with realistic load: A simple health check does not reveal how your endpoint handles heavy
getProgramAccountscalls. - Choosing based on price alone: The cheapest option may not provide the reliability you need.
- Forgetting about geographic distribution: If your users are spread globally, a single node location may add latency.
How OnFinality supports both shared and dedicated Solana RPC
OnFinality provides flexible Solana RPC infrastructure. You can start with a shared public endpoint for testing, then upgrade to a dedicated node when your project matures. The transition is seamless because you use the same API interface.
OnFinality's Solana RPC supports HTTP and WebSocket, and you can find the public endpoint on the Solana network page. For production workloads, dedicated nodes offer isolated capacity and custom configuration. You can also explore the full list of supported networks on the networks page.
If you are still unsure which option fits your needs, the RPC provider selection guide provides a broader framework for evaluating infrastructure.
Key Takeaways
- Shared Solana RPC is cost-effective for development and low-traffic apps, but it comes with rate limits and potential latency variability.
- Dedicated Solana RPC provides isolated capacity, stable performance, and higher throughput, making it suitable for production applications.
- Evaluate your workload by measuring request rates, types of calls, and WebSocket usage before choosing.
- Migration from shared to dedicated is simple because the RPC interface remains the same.
- OnFinality offers both shared and dedicated Solana RPC options, allowing you to scale as your project grows.
Frequently Asked Questions
Can I switch from shared to dedicated Solana RPC without changing my code?
Yes, the JSON-RPC methods are identical. You only need to update the endpoint URL in your configuration.
What is the main difference between shared and dedicated Solana RPC?
Shared RPC pools multiple users on the same infrastructure, while dedicated RPC gives you an isolated node with dedicated resources.
Is shared Solana RPC suitable for production?
It can be for low-traffic applications, but you risk rate limiting and latency issues during peak usage. Dedicated is recommended for high-traffic or latency-sensitive apps.
How do I know if I need a dedicated Solana node?
If you experience frequent rate limit errors, latency spikes, or WebSocket disconnects, it is time to upgrade.
Does OnFinality offer a free Solana RPC endpoint?
OnFinality provides a public endpoint for testing, but for production use you should consider a paid plan. Check the RPC pricing page for details.