Summary
An Arbitrum RPC endpoint is the gateway for dApps, wallets, and indexers to communicate with Arbitrum One, Nova, or testnets. This article covers chain settings, public vs. private endpoints, sequencer behavior, and criteria for selecting a reliable RPC provider for production use.
Arbitrum RPC decision checklist
Before integrating an Arbitrum RPC endpoint, evaluate these criteria to avoid common pitfalls:
| Criterion | What to check | Why it matters |
|---|---|---|
| Network selection | Confirm chain ID (42161 for One, 42170 for Nova, 421614 for Sepolia) | Wrong chain ID causes transaction failures or lost funds |
| Public vs. private | Rate limits, reliability, and data privacy | Public endpoints may throttle or expose IP; private endpoints offer higher limits |
| Sequencer vs. standard RPC | Sequencer endpoints only support eth_sendRawTransaction | Using sequencer for other calls will fail silently |
| WebSocket support | Check if provider offers WSS for real-time subscriptions | Many public endpoints lack WebSocket; needed for event-driven dApps |
| Archive data | Does the provider support archive state? | Required for historical queries, debugging, and analytics |
| Trace API | Stylus tracing for Arbitrum-specific debugging | Needed for advanced contract analysis and gas profiling |
| Fallback strategy | Have multiple endpoints configured | Prevents downtime if primary endpoint fails |
| Pricing model | Pay-as-you-go vs. dedicated node | Shared RPC is cheaper; dedicated nodes offer predictable performance |
Arbitrum network overview
Arbitrum is a leading Layer 2 optimistic rollup that inherits Ethereum's security while offering lower fees and higher throughput. It has two main networks:
- Arbitrum One (chain ID 42161) – the primary rollup using Nitro tech stack.
- Arbitrum Nova (chain ID 42170) – an AnyTrust chain optimized for gaming and social apps.
- Arbitrum Sepolia (chain ID 421614) – the testnet for development.
Each network has its own public RPC endpoints and sequencer endpoints. The sequencer endpoint is a special write-only endpoint that accepts eth_sendRawTransaction (and eth_sendRawTransactionConditional) and provides faster inclusion. It should not be used for read calls.
Public Arbitrum RPC endpoints
Arbitrum provides free public endpoints for all networks:
- Arbitrum One:
https://arb1.arbitrum.io/rpc - Arbitrum Nova:
https://nova.arbitrum.io/rpc - Arbitrum Sepolia:
https://sepolia-rollup.arbitrum.io/rpc
These endpoints are rate-limited and do not support WebSocket. They are suitable for light usage, prototyping, or wallets, but not for production dApps with high traffic.
Third-party RPC providers
Many node providers offer Arbitrum RPC services with higher rate limits, WebSocket support, archive data, and dedicated node options. When evaluating providers, consider:
- Rate limits: Public endpoints may allow only a few requests per second. Paid plans offer higher throughput.
- WebSocket: Essential for real-time applications like DEXs, NFT marketplaces, and gaming.
- Archive data: Needed for historical state queries (e.g.,
eth_callwith past block numbers). - Trace API: Arbitrum Stylus tracing enables deep contract debugging.
- Geographic distribution: Low-latency endpoints improve user experience.
OnFinality provides managed RPC endpoints for Arbitrum One, Nova, and Sepolia, with options for shared and dedicated nodes. Check the Arbitrum network page for current support and RPC pricing for plan details.
How to connect to Arbitrum RPC
Using curl
curl -X POST https://arb1.arbitrum.io/rpc \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
Using ethers.js (JavaScript)
const { ethers } = require("ethers");
const provider = new ethers.JsonRpcProvider("https://arb1.arbitrum.io/rpc");
async function getBlock() {
const blockNumber = await provider.getBlockNumber();
console.log("Current block:", blockNumber);
}
getBlock();
Using web3.py (Python)
from web3 import Web3
w3 = Web3(Web3.HTTPProvider("https://arb1.arbitrum.io/rpc"))
print(w3.eth.block_number)
Sequencer endpoint behavior
Arbitrum's sequencer provides fast transaction inclusion. Key points:
- Only write calls:
eth_sendRawTransactionandeth_sendRawTransactionConditional. - Lower latency: Transactions are confirmed faster than via standard RPC.
- No read support: Do not use for
eth_call,eth_getBalance, etc. - Fallback pattern: Use sequencer for sending transactions, standard RPC for reads.
Example sequencer endpoints:
- One:
https://arb1-sequencer.arbitrum.io/rpc - Nova:
https://nova-sequencer.arbitrum.io/rpc - Sepolia:
https://sepolia-rollup-sequencer.arbitrum.io/rpc
Common pitfalls and troubleshooting
1. Using sequencer for read calls
Sending a read request to the sequencer endpoint will return an error. Always use the standard RPC URL for reads.
2. Rate limiting on public endpoints
Public endpoints have strict rate limits. If you see HTTP 429 responses, switch to a provider with higher limits or a dedicated node.
3. Missing WebSocket support
Many public endpoints do not support WebSocket. For real-time subscriptions, use a provider that offers WSS.
4. Incorrect chain ID
Always verify the chain ID in your wallet or dApp configuration. Using the wrong chain ID can lead to failed transactions or lost funds.
5. Archive data availability
If your application needs historical state, ensure your provider supports archive nodes. Public endpoints typically only serve recent state.
When to use a dedicated node
For high-traffic production applications, a dedicated Arbitrum node offers:
- Guaranteed resources: No contention with other users.
- Custom configuration: Tune node settings for your workload.
- Full archive data: Access to all historical state.
- WebSocket support: Real-time event streaming.
- clear rate limits: Unlimited requests within node capacity.
OnFinality offers dedicated Arbitrum nodes with flexible deployment options. Visit the dedicated node page for more information.
Key Takeaways
- Arbitrum provides public RPC endpoints for One, Nova, and Sepolia, but they are rate-limited and lack WebSocket.
- Sequencer endpoints are write-only; use them only for sending transactions.
- Third-party providers offer enhanced features like higher limits, WebSocket, archive data, and dedicated nodes.
- Evaluate providers based on rate limits, WebSocket support, archive data, trace API, and geographic distribution.
- For production, consider a dedicated node for predictable performance and full control.
Frequently Asked Questions
What is the Arbitrum chain ID? Arbitrum One is 42161, Arbitrum Nova is 42170, and Arbitrum Sepolia is 421614.
Can I use the sequencer endpoint for read calls?
No. The sequencer only supports eth_sendRawTransaction and eth_sendRawTransactionConditional. Use the standard RPC for reads.
Do public Arbitrum RPC endpoints support WebSocket? No. Public endpoints are HTTP-only. For WebSocket, use a third-party provider.
How do I choose between shared and dedicated RPC? Shared RPC is cost-effective for low to moderate traffic. Dedicated nodes are better for high throughput, low latency, and custom requirements.
Where can I find a list of supported Arbitrum networks? Check the supported RPC networks page for the latest list.
For more details on pricing and plans, visit the RPC pricing page.