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

Ethereum RPC List: How to Pick the Right Endpoint for Your App

Summary

An Ethereum RPC list is a collection of endpoints that let your dApp read and write data on Ethereum. Choosing the right one depends on your workload: public endpoints are fine for testing, while production apps need managed or dedicated infrastructure. This guide explains the types of RPC endpoints, how to evaluate them, and how to connect using popular tools.

When you search for an "Ethereum RPC list," you are likely looking for a set of endpoints you can plug into a wallet, a dApp, or a backend service. The list itself is only half the answer: the more important question is which type of endpoint fits your use case. This guide walks through the main categories of Ethereum RPC endpoints, what to check before you commit, and how to connect with common tools.

Quick Recommendation: Match the Endpoint to Your Workload

Before you copy a URL into your config, think about what your app actually needs. A public endpoint is fine for a hackathon or a local script, but it will not survive production traffic. A managed RPC service gives you reliability and scalability without the operational overhead. A dedicated node gives you full control and isolation for heavy or sensitive workloads.

WorkloadRecommended Endpoint TypeWhy
Prototyping, testing, low volumePublic endpointFree, no setup, but rate-limited and often unreliable
Production dApp, moderate trafficManaged RPC (shared)Balanced performance, scalability, and support
High throughput, archive data, trace callsDedicated nodeFull control, no noisy neighbors, custom configuration
Compliance, data privacy, custom logicDedicated nodeYou own the infrastructure and can audit everything

If you are unsure, start with a managed RPC service like OnFinality's Ethereum RPC and scale to a dedicated node when you hit its limits. Check RPC pricing to understand what you pay for.

What Is an Ethereum RPC Endpoint?

Ethereum nodes expose a JSON-RPC API over HTTP or WebSocket. An RPC endpoint is simply the URL where that API is available. For example, OnFinality's public Ethereum endpoint is https://eth.api.onfinality.io/public. You send JSON-RPC requests to this URL to read blockchain data, estimate gas, or submit transactions.

The Ethereum JSON-RPC specification defines methods like eth_blockNumber, eth_getBalance, eth_call, and eth_sendRawTransaction. Every Ethereum node implements these methods, but the quality of the endpoint—its speed, reliability, and data depth—varies widely.

Types of Ethereum RPC Endpoints

Public Endpoints

Public endpoints are free and open to anyone. They are great for learning and quick tests, but they come with significant drawbacks:

  • Rate limits: You may get throttled or blocked after a certain number of requests.
  • Uptime: They can go down without notice.
  • Data limitations: Often only recent state, not full archive data.
  • No support: If something breaks, you are on your own.

Managed RPC Services

Managed services operate Ethereum nodes for you and expose them via a reliable API. They handle infrastructure, monitoring, and scaling. OnFinality, for example, offers a global network of Ethereum nodes with HTTP and WebSocket support. You get a stable endpoint, clear pricing, and access to supported networks.

Dedicated Nodes

A dedicated node gives you a private instance of an Ethereum node. You get exclusive access to the node's resources, which means clear rate limits from shared usage and no "noisy neighbor" effects. This is ideal for high-throughput applications, archive data needs, or when you require custom node configuration.

How to Evaluate an Ethereum RPC Provider

When comparing providers, look beyond the endpoint URL. Here are the key criteria:

CriterionWhat to CheckWhy It Matters
Uptime and reliabilityHistorical uptime, SLAsDowntime means your app is down
Throughput and latencyResponse times, request limitsSlow RPC makes your UI sluggish
Data availabilityArchive data, trace supportNeeded for analytics and debugging
Transport supportHTTP, WebSocketWebSocket needed for real-time updates
SecurityAuthentication, TLSProtects your API keys and data
SupportDocumentation, SLAsHelps you resolve issues quickly
Pricing modelFree tier, pay-as-you-go, dedicatedMust fit your budget and scale

OnFinality's Ethereum RPC provides a managed endpoint with global coverage, and you can upgrade to a dedicated node for full control.

Connecting to an Ethereum RPC Endpoint

Using curl

You can test any Ethereum RPC endpoint with a simple curl request. Here is an example that gets the latest block number:

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

Using ethers.js

In a JavaScript project, you can use ethers.js to connect to an Ethereum RPC endpoint:

const { ethers } = require("ethers");

const provider = new ethers.JsonRpcProvider("https://eth.api.onfinality.io/public");

async function getBlockNumber() {
  const blockNumber = await provider.getBlockNumber();
  console.log("Latest block:", blockNumber);
}

getBlockNumber();

Using viem

Viem is another popular library. Here is how you set up a public client:

import { createPublicClient, http } from 'viem';
import { mainnet } from 'viem/chains';

const client = createPublicClient({
  chain: mainnet,
  transport: http('https://eth.api.onfinality.io/public'),
});

const blockNumber = await client.getBlockNumber();
console.log(blockNumber);

Wallet Configuration

If you are adding Ethereum to a wallet like MetaMask, you need the chain ID (1) and an RPC URL. Use a reliable endpoint like https://eth.api.onfinality.io/public for the network.

Common Pitfalls and How to Avoid Them

Rate Limiting

Public endpoints often return 429 Too Many Requests when you exceed their limits. To avoid this, use a managed service with higher limits or implement retry logic with exponential backoff.

WebSocket vs. HTTP

If your app needs real-time updates (e.g., new blocks, pending transactions), you need a WebSocket endpoint. HTTP is fine for one-off requests. OnFinality supports both HTTP and WebSocket on Ethereum.

Archive Data

Many endpoints only keep recent state. If you need historical data (e.g., for analytics), you need an archive node. OnFinality offers archive data on its managed and dedicated nodes.

Security

Never expose your API key in client-side code. Use environment variables and proxy requests through a backend if necessary.

When to Move from Public to Managed or Dedicated

If you are building a production app, you should not rely on a public endpoint. Signs that you need to upgrade include:

  • Your app experiences frequent rate limit errors.
  • You need consistent low latency for a global user base.
  • You require archive data or trace methods.
  • You need a WebSocket connection for real-time features.
  • You want a service-level agreement and support.

OnFinality's managed RPC is a good middle ground. For maximum performance and control, consider a dedicated node.

Key Takeaways

  • An Ethereum RPC list is just a starting point; the real decision is which type of endpoint to use.
  • Public endpoints are fine for testing but not for production.
  • Managed RPC services offer a balance of reliability, scalability, and support.
  • Dedicated nodes provide full control and are best for high-throughput or specialized needs.
  • Evaluate providers on uptime, throughput, data availability, transport, security, and support.
  • Always use secure connections and protect your API keys.

Frequently Asked Questions

What is the difference between HTTP and WebSocket RPC endpoints?

HTTP endpoints are request-response based, suitable for one-off queries. WebSocket endpoints maintain a persistent connection, allowing the server to push updates, which is essential for real-time applications.

Can I use a public Ethereum RPC endpoint for production?

It is not recommended. Public endpoints are rate-limited and may be unreliable. For production, use a managed service or a dedicated node.

What is an archive node?

An archive node stores the entire history of the blockchain, allowing you to query historical state at any block. This is useful for analytics, debugging, and compliance.

How do I get a dedicated Ethereum node?

You can get a dedicated node from a provider like OnFinality. Visit the dedicated node page to learn more and request one.

What is the chain ID for Ethereum?

The chain ID for Ethereum mainnet is 1. This is used to prevent replay attacks between different networks.

How do I test an Ethereum RPC endpoint?

You can use curl or a library like ethers.js to send a simple request, such as eth_blockNumber, to verify the endpoint is working.

Does OnFinality support Ethereum testnets?

Yes, OnFinality supports Ethereum Sepolia. You can find the endpoint on the Sepolia network page.

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