Summary
Choosing a Solana RPC provider means weighing throughput, reliability, data access, and cost against your application's needs. This comparison focuses on the key technical and operational factors that separate public, shared, and dedicated Solana RPC services, helping you evaluate providers on the criteria that actually matter for production workloads.
Quick Recommendation: How to Evaluate Solana RPC Providers
Before diving into feature lists, define what your application actually needs. A portfolio tracker that polls account balances every few seconds has different requirements than a trading bot that streams order book updates over WebSocket. Start by answering these questions:
- What is your request pattern? Bursty reads, continuous polling, or real-time subscriptions?
- How much historical data do you need? Recent slots only, or full transaction history for analytics?
- What is your tolerance for rate limits and downtime? Can you retry requests, or does a failed call mean lost revenue?
- Do you need dedicated capacity? Shared endpoints are fine for development, but production apps often need guaranteed throughput.
Once you have those answers, you can compare providers on the dimensions that matter most: throughput, reliability, data access, and cost. The rest of this article walks through each focus area and provides a comparison framework you can apply to any Solana RPC provider.
Why Solana RPC Is Different from Ethereum RPC
Solana's architecture makes RPC provider selection more nuanced than on EVM chains. Solana processes thousands of transactions per second, and its JSON-RPC API includes methods that are rarely used on Ethereum, such as getProgramAccounts and getSignaturesForAddress. These methods can be extremely heavy, especially when scanning large accounts or fetching transaction history.
Additionally, Solana's WebSocket subscriptions are essential for real-time applications. Unlike Ethereum's eth_subscribe, Solana's accountSubscribe and programSubscribe can generate a high volume of notifications. A provider that handles HTTP requests well may still struggle with WebSocket load.
Finally, Solana's state is large and grows quickly. Running a full node requires significant storage and bandwidth, which is why many teams choose a managed RPC provider instead of self-hosting. Understanding these differences helps you ask the right questions when comparing providers.
Focus Area 1: Throughput and Rate Limits
Throughput is the most obvious differentiator among Solana RPC providers. Public endpoints are free but typically have strict rate limits, often measured in requests per second (RPS) or requests per minute. These limits are fine for testing but can cause failures in production.
Shared RPC endpoints, offered by many providers, pool multiple users onto the same infrastructure. They offer higher limits than public endpoints but still have caps. If your application exceeds those caps, you may see HTTP 429 errors or dropped WebSocket connections.
Dedicated nodes provide the highest throughput because you get your own infrastructure. With a dedicated Solana RPC node, you control the rate limits and can scale vertically or horizontally as needed. This is critical for applications that process large volumes of data, such as indexers, trading bots, or NFT marketplaces.
When comparing providers, ask about:
- Rate limit policy: What are the exact limits for HTTP and WebSocket?
- Burst handling: Can you handle short spikes without errors?
- Scaling options: Can you upgrade to a dedicated node if needed?
Focus Area 2: Reliability and Uptime
Reliability is about more than uptime percentages. It includes how the provider handles node failures, network partitions, and maintenance windows. A provider with high uptime may still have frequent brief interruptions that affect your application.
Look for providers that offer:
- Load balancing: Multiple nodes behind a single endpoint to distribute traffic.
- Failover: Automatic switching to healthy nodes when one fails.
- Health monitoring: Real-time status pages and alerts.
- SLA guarantees: Contractual commitments for uptime, with credits if violated.
OnFinality, for example, routes requests across a global network of nodes and provides health monitoring for all supported networks. While we can't guarantee specific uptime numbers, our architecture is designed to minimize single points of failure.
Focus Area 3: Data Access and Archive Nodes
Solana's RPC API includes methods that require historical data. For example, getSignaturesForAddress returns past transaction signatures, and getTransaction retrieves full transaction details. If you need to query data older than a few days, you need an archive node.
Not all providers offer archive nodes. Some only provide full nodes, which store recent state but not the entire history. If your application needs historical data, verify that the provider offers archive access and understand the additional cost.
Also consider the depth of data: some providers offer limited history (e.g., last 100,000 slots), while others offer full history since genesis. The right choice depends on your use case. For analytics or compliance, full history is essential; for simple balance checks, recent data may suffice.
Focus Area 4: WebSocket Support and Real-Time Data
Real-time applications rely on WebSocket subscriptions. Solana's WebSocket API supports accountSubscribe, programSubscribe, logsSubscribe, and slotSubscribe. Each subscription can generate a high volume of messages, especially for popular programs.
When comparing providers, check:
- WebSocket endpoint: Is it stable and load-balanced?
- Subscription limits: How many concurrent subscriptions are allowed?
- Message throughput: Can the provider handle the message rate your app needs?
- Reconnection handling: What happens when the connection drops? Does the provider support resubscription?
Some providers charge extra for WebSocket access or limit the number of connections. Make sure you understand the pricing model before committing.
Focus Area 5: Cost and Pricing Models
Solana RPC providers use various pricing models: pay-as-you-go, monthly subscriptions, or usage-based tiers. Some offer free tiers with limited requests, while others require a minimum commitment.
When comparing costs, consider:
- Request volume: How many requests does your app make per day?
- WebSocket connections: Are they included or charged separately?
- Archive access: Is there an additional fee for historical data?
- Dedicated nodes: What is the monthly cost, and what hardware is included?
OnFinality offers transparent pricing for both shared and dedicated RPC services. You can view our RPC pricing page for details, and our supported networks page shows which chains we support.
Comparison Table: Solana RPC Provider Focus Areas
| Focus Area | What to Check | Why It Matters |
|---|---|---|
| Throughput | RPS limits, burst handling, scaling options | Prevents 429 errors and dropped requests |
| Reliability | Load balancing, failover, health monitoring, SLA | Ensures consistent availability for production |
| Data Access | Archive nodes, historical depth, method support | Enables queries beyond recent state |
| WebSocket | Endpoint stability, subscription limits, message rate | Supports real-time apps and trading bots |
| Cost | Pricing model, hidden fees, dedicated node options | Aligns with budget and usage patterns |
How to Test a Solana RPC Provider
Before committing to a provider, run a simple test to evaluate performance. Use a script that sends a mix of common requests and measures latency and error rates. Here's an example using curl to call the getSlot method on OnFinality's public Solana endpoint:
curl -X POST https://solana.api.onfinality.io/public \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"getSlot"}'
For WebSocket testing, you can use a tool like wscat to subscribe to account updates:
wscat -c wss://solana.api.onfinality.io/public-ws
Then send a subscription request:
{"jsonrpc":"2.0","id":1,"method":"accountSubscribe","params":["Vote111111111111111111111111111111111111111",{"commitment":"finalized"}]}
Monitor the response time and message frequency. If you see high latency or frequent disconnections, that provider may not be suitable for your workload.
Common Pitfalls When Choosing a Solana RPC Provider
- Ignoring rate limits: Even shared endpoints have limits. Read the fine print.
- Assuming all providers offer archive nodes: Not all do, and those that do may charge extra.
- Overlooking WebSocket costs: Some providers charge per connection or per message.
- Choosing based on price alone: The cheapest option may not meet your reliability or throughput needs.
- Not testing with your actual workload: A simple
getSlotcall doesn't reflect the load ofgetProgramAccounts.
Key Takeaways
- Solana RPC differs from Ethereum RPC due to its high throughput and heavy methods like
getProgramAccounts. - Focus on throughput, reliability, data access, WebSocket support, and cost when comparing providers.
- Dedicated nodes offer the most control and scalability, but shared endpoints may be sufficient for development or low-traffic apps.
- Always test a provider with your real workload before committing.
- OnFinality provides both shared and dedicated Solana RPC options; check our RPC pricing and supported networks for more details.
Frequently Asked Questions
What is the difference between a full node and an archive node on Solana?
A full node stores the current state and recent history, while an archive node stores the entire transaction history since genesis. Archive nodes are necessary for queries that go back further than a few days.
Can I use a public Solana RPC endpoint for production?
Public endpoints are not recommended for production due to rate limits and potential instability. They are best for development and testing.
How do I know if a provider supports WebSocket subscriptions?
Check the provider's documentation for a WebSocket endpoint and subscription methods. You can also test with a simple subscription as shown above.
What is a dedicated Solana RPC node?
A dedicated node is a single-tenant infrastructure instance that you control. It offers higher throughput, clear rate limits, and more reliability compared to shared endpoints.
Does OnFinality offer Solana RPC?
Yes, OnFinality supports Solana mainnet and devnet. You can find the endpoints on our Solana network page and Solana Devnet page.