Summary
Scroll is an EVM-compatible zero-knowledge rollup on Ethereum. A Scroll RPC endpoint lets wallets, dApps, and scripts interact with the Scroll network using standard Ethereum JSON-RPC methods. This article explains the network parameters, how to connect, and how to choose a reliable RPC provider for production.
Quick recommendation: what to use for Scroll RPC
If you are building on Scroll, the first decision is whether to use the public RPC endpoint, a shared provider endpoint, or a dedicated node. For production dApps, a managed RPC provider is usually the right choice because it handles load balancing, failover, and rate limiting for you. Public endpoints like https://rpc.scroll.io are fine for testing, but they can become congested and are not designed for high-throughput applications.
When evaluating providers, check for:
- Reliability: Does the provider offer multiple endpoints and automatic failover?
- Performance: What is the latency and throughput for typical JSON-RPC calls?
- Support: Does the provider offer WebSocket connections for real-time updates?
- Pricing: Are there free tiers or pay-as-you-go options that fit your usage?
OnFinality provides managed Scroll RPC endpoints with global infrastructure. You can see RPC pricing and the list of supported networks to get started.
Scroll network parameters at a glance
Scroll is an EVM-compatible zero-knowledge rollup. This means you can use the same tools and libraries you use for Ethereum, just with a different RPC URL and chain ID.
| Parameter | Value |
|---|---|
| Network Name | Scroll Mainnet |
| RPC URL | https://rpc.scroll.io (public) |
| Chain ID | 534352 |
| Currency Symbol | ETH |
| Block Explorer | https://scrollscan.com |
| WebSocket URL | wss://scroll-rpc.publicnode.com (example) |
These parameters are what you need to add Scroll to a wallet like MetaMask or to configure a dApp.
Adding Scroll to a wallet or dApp
Most EVM wallets allow you to add a custom network. Here is a typical configuration:
{
"chainId": "0x82750",
"chainName": "Scroll Mainnet",
"rpcUrls": ["https://rpc.scroll.io"],
"nativeCurrency": {
"name": "Ether",
"symbol": "ETH",
"decimals": 18
},
"blockExplorerUrls": ["https://scrollscan.com"]
}
In MetaMask, you can click "Add Network" and paste these values. For programmatic access, you can use ethers.js or viem:
import { ethers } from "ethers";
const provider = new ethers.JsonRpcProvider("https://rpc.scroll.io");
const network = await provider.getNetwork();
console.log(network.chainId); // 534352n
Making your first JSON-RPC call
Once you have an endpoint, you can interact with Scroll using standard Ethereum JSON-RPC methods. Here is a simple curl example to get the latest block number:
curl -X POST https://rpc.scroll.io \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
The response will look like:
{
"jsonrpc": "2.0",
"id": 1,
"result": "0x2104a3b"
}
You can also use WebSocket for real-time subscriptions:
const ws = new WebSocket("wss://scroll-rpc.publicnode.com");
ws.onopen = () => {
ws.send(JSON.stringify({
jsonrpc: "2.0",
method: "eth_subscribe",
params: ["newHeads"],
id: 1
}));
};
ws.onmessage = (event) => {
console.log(event.data);
};
How to choose a Scroll RPC provider
When selecting a provider for Scroll, consider the following criteria:
| Criterion | What to check | Why it matters |
|---|---|---|
| Uptime | Historical uptime and SLAs | Downtime means your dApp is unavailable |
| Latency | Geographic distribution and response times | Lower latency improves user experience |
| Throughput | Rate limits and concurrent request handling | High traffic apps need headroom |
| Data availability | Archive nodes, trace support | Debugging and analytics may require historical data |
| WebSocket support | Real-time subscriptions | Essential for live updates and notifications |
| Pricing | Free tier, pay-as-you-go, dedicated options | Cost scales with usage |
OnFinality offers both shared and dedicated Scroll RPC options. You can start with a free tier and upgrade as your project grows. See RPC pricing for details.
Common pitfalls and troubleshooting
1. Chain ID mismatch
If you get an error like chainId mismatch, make sure your wallet or dApp is configured with the correct chain ID 534352. Double-check that you are not accidentally using an Ethereum mainnet chain ID.
2. Rate limiting
Public endpoints often have rate limits. If you see 429 Too Many Requests, consider using a provider with higher limits or a dedicated node.
3. WebSocket disconnects
WebSocket connections can drop due to network issues or server restarts. Implement reconnection logic in your application.
4. Block finality
Scroll is a zkRollup, but finality is not instant. Transactions are considered final after the proof is submitted to Ethereum, which can take a few minutes. Do not assume a transaction is final just because it is included in a block.
Debugging with eth_getTransactionReceipt
When a transaction fails, you can inspect the receipt to understand why:
curl -X POST https://rpc.scroll.io \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_getTransactionReceipt","params":["0x..."],"id":1}'
Check the status field: 0x1 means success, 0x0 means failure. If it failed, you can use eth_call with the same parameters to simulate the transaction and see the revert reason.
Production readiness checklist
Before launching on Scroll, make sure you have:
- A reliable RPC provider with failover
- WebSocket support for real-time features
- Proper error handling for rate limits and timeouts
- Monitoring and alerting on RPC health
- A strategy for handling chain reorganizations
Key Takeaways
- Scroll is an EVM-compatible zkRollup, so you can use standard Ethereum tooling.
- The mainnet chain ID is
534352and the native token is ETH. - Public RPC endpoints are fine for testing, but production apps should use a managed provider.
- Evaluate providers on uptime, latency, throughput, and support.
- OnFinality offers managed Scroll RPC endpoints with flexible pricing.
Frequently Asked Questions
What is the Scroll RPC URL?
The public RPC URL is https://rpc.scroll.io. For production, consider using a managed provider like OnFinality.
What is the Scroll chain ID?
The Scroll mainnet chain ID is 534352 (hex 0x82750).
Is Scroll EVM compatible?
Yes, Scroll is a Type 1 zkEVM, meaning it is bytecode-level compatible with Ethereum. You can deploy existing smart contracts without modification.
How do I get Scroll testnet ETH?
Scroll Sepolia testnet was shut down after July 30, 2026. For current testnet options, check the Scroll documentation.
Can I use WebSocket with Scroll?
Yes, many providers offer WebSocket endpoints for real-time subscriptions.
How do I choose between shared and dedicated Scroll RPC?
Shared endpoints are cost-effective and sufficient for most applications. Dedicated nodes offer predictable performance and are better for high-traffic or latency-sensitive apps. See our guide on choosing an RPC provider for more details.