Skip to main content

Free Arbitrum One RPC (ETH)

Popular

Discover Arbitrum One, a Layer 2 scaling solution for Ethereum. Build faster, low-cost decentralized applications using the RPC gateway.

99.9%
4
24/7
FREE
Gateway

Connect to Arbitrum One

Access reliable, enterprise-grade endpoints that power your dApp with ultra-low latency and 99.9% uptime.

Connect to Arbitrum One Gateway

Make your first RPC call on Arbitrum One's Blockchain Gateway.

Mainnet

Mainnet
Mainnet Explorer
JSON-RPC
https://arbitrum-one-mainnet.gateway.tatum.io
WebSocket
wss://arbitrum-one-mainnet.gateway.tatum.io

Sepolia

Testnet
Sepolia Explorer
JSON-RPC
https://arbitrum-one-sepolia.gateway.tatum.io
WebSocket
wss://arbitrum-one-sepolia.gateway.tatum.io

* Rate limit enabled - perfect for testing and development. For production, we recommend to Upgrade.

Ready for production?

Get 200 requests/second, priority support and advanced blockchain features.

Global Load Balancer

Route to nearest node

Batch RPC Calls

Multiple requests at once

Archive Nodes

Historical blockchain data

Debug & Trace

Advanced debugging

Advanced Analytics

Usage & performance

Bring Your Own RPC

Custom RPC gateways

Upgrade
Get Free API Key

Increase your limit and access all network features in Tatum Development Platform.

Estimate Gas on Arbitrum One

Calculate the optimal gas fee for any transaction on Arbitrum One.

Smart Contract Tools on Arbitrum One

Deploy, create, and interact with smart contracts on Arbitrum One.

Accessible to Everyone

No signup. No paywalls. Just RPC that works. Great ideas come from everywhere.

Our Mission

With love by Tatum

Method reference

Arbitrum One methods

Every method the Arbitrum One gateway accepts, grouped by interface. 58 in total, read live from the node rather than kept by hand.

Mainnet is the live Arbitrum One network. Every transaction it accepts is final, and every ETH balance it reports is real money.

Sepolia is the test network. It answers the same methods as Mainnet, with tokens that are free and deliberately worthless, so you can rehearse edge cases at no risk. Moving to Mainnet is a URL change and nothing more.

Arbitrum One answers over 2 interfaces: JSON-RPC and WebSocket. Each is listed once below with every method it accepts. The endpoints differ per network, and all of them are in the gateway list above.

What sits between you and Arbitrum One

A node is a machine running Arbitrum One with a copy of the chain. Your code cannot ask the chain directly, it asks a node. The gateway picks a healthy one for every call, so you point at one URL instead of one machine.

  • One URL, nothing to run or keep patched yourself.
  • Calls routed to a node that is up and in sync.
  • A failing node is skipped rather than returned to you as an error.

JSON-RPC

58 methods
https://arbitrum-one-mainnet.gateway.tatum.io

The default. Every wallet, library and framework speaks it, and it is what you want unless you specifically need something else.

One POST carries a method name, its parameters and an id, and the response comes back on the same connection carrying that same id. Requests are independent, so there is no session to keep alive and nothing to reconnect, which is why it runs unchanged behind a load balancer or inside a serverless function. Send an array instead of a single object and the node works through the whole batch in one round trip.

Where it fits

  • Anything your library already does for you. ethers, web3.js, viem and their equivalents all target this.
  • Batching reads. One array of twenty calls costs one round trip instead of twenty.
  • Stateless and serverless deployments, because nothing has to stay connected between calls.
  • Historical queries, by passing a block number where you would otherwise pass latest.

Trade-offs

  • It cannot push. Finding out that a block landed means polling for it, or moving to WebSocket.
  • Wide log queries get refused. Page through in fixed block windows and merge the results yourself.
  • Batch responses may come back in any order. Match them on id, never on position.

Enabled and tested methods

Read live from the endpoint, so this is what it actually serves today rather than what the protocol allows in principle. Anything not on this list returns a method-not-found error.

arbtrace_block
Returns Parity-style call traces for every transaction in a block.
arbtrace_call
Runs a call and returns Parity-style traces, without submitting it.
arbtrace_callMany
Runs several calls in sequence and returns Parity-style traces for each.
arbtrace_filter
Returns Parity-style traces matching a filter of address and block range.
arbtrace_replayBlockTransactions
Replays a block and returns traces, state diffs and VM output.
arbtrace_replayTransaction
Replays one transaction and returns traces, state diffs and VM output.
arbtrace_transaction
Returns Parity-style call traces for a single transaction.
debug_getBadBlocks
Returns blocks the node rejected as invalid.
debug_storageRangeAt
Walks a range of a contract storage, starting from a given key.
debug_traceBlock
Replays every transaction in an RLP-encoded block and returns execution traces.
debug_traceBlockByHash
Replays every transaction in a block, located by hash, returning execution traces.
debug_traceBlockByNumber
Replays every transaction in a block, located by height, returning execution traces.
debug_traceCall
Executes a call and returns a full execution trace, without submitting it.
debug_traceTransaction
Replays one transaction and returns its step-by-step execution trace.
eth_blockNumber
Returns the height of the most recent block.
eth_call
Executes a read-only call against current state, without sending a transaction or spending gas.
eth_callMany
Executes several calls in sequence against the same state snapshot.
eth_chainId
Returns the chain ID used for replay-protected transaction signing.
eth_estimateGas
Estimates how much gas a transaction would consume, without submitting it.
eth_feeHistory
Returns base fee and priority fee percentiles across a range of recent blocks.
eth_gasPrice
Returns the current gas price in wei.
eth_getBalance
Returns the native token balance of an address at a given block.
eth_getBlockByHash
Returns a block identified by its hash.
eth_getBlockByNumber
Returns a block identified by its height.
eth_getBlockReceipts
Returns the receipts for every transaction in a block, in a single call.
eth_getBlockTransactionCountByHash
Returns how many transactions a block contains, located by hash.
eth_getBlockTransactionCountByNumber
Returns how many transactions a block contains, located by height.
eth_getCode
Returns the contract bytecode deployed at an address.
eth_getLogs
Returns event logs matching a filter of address, topics and block range.
eth_getProof
Returns a Merkle proof for an account and any of its storage slots.
eth_getStorageAt
Reads a single storage slot from a contract.
eth_getTransactionByBlockHashAndIndex
Returns a transaction by its position in a block, located by hash.
eth_getTransactionByBlockNumberAndIndex
Returns a transaction by its position in a block, located by height.
eth_getTransactionByHash
Returns a transaction identified by its hash.
eth_getTransactionCount
Returns how many transactions an address has sent, which is its next nonce.
eth_getTransactionReceipt
Returns the receipt of a mined transaction: status, gas used, and emitted logs.
eth_getUncleByBlockHashAndIndex
Returns an uncle (ommer) block by parent hash and index.
eth_getUncleByBlockNumberAndIndex
Returns an uncle (ommer) block by parent height and index.
eth_getUncleCountByBlockHash
Returns how many uncles a block has, located by hash.
eth_getUncleCountByBlockNumber
Returns how many uncles a block has, located by height.
eth_maxPriorityFeePerGas
Suggests a priority fee (tip) per gas for timely inclusion.
eth_sendRawTransaction
Broadcasts an already signed, serialized transaction to the network.
eth_signTypedData
Signs EIP-712 structured data.
eth_signTypedData_v3
Signs EIP-712 structured data using the v3 encoding.
eth_syncing
Reports whether the node is still syncing, and how far behind it is.
net_peerCount
Returns how many peers the node is currently connected to.
net_version
Returns the network ID the node is connected to.
trace_block
Returns Parity-style call traces for every transaction in a block.
trace_call
Runs a call and returns Parity-style traces, without submitting it.
trace_callMany
Runs several calls in sequence and returns Parity-style traces for each.
trace_rawTransaction
Traces a signed, serialized transaction without broadcasting it.
trace_replayBlockTransactions
Replays a block and returns traces, state diffs and VM output.
trace_replayTransaction
Replays one transaction and returns traces, state diffs and VM output.
trace_transaction
Returns Parity-style call traces for a single transaction.
txpool_content
Lists the pending and queued transactions currently held in the mempool.
txpool_inspect
Summarises the mempool in a human-readable form.
txpool_status
Returns counts of pending and queued transactions in the mempool.
web3_clientVersion
Returns the node client name and version string.

Common JSON-RPC errors

What you are most likely to hit calling this interface, and what to do about it.

-32700
Parse error. The request body was not valid JSON. Check that the body is serialised JSON and that Content-Type is application/json.
-32600
Invalid request. The JSON parsed, but it is not a well-formed JSON-RPC call. Include jsonrpc, method and id fields. A batch must be a non-empty array.
-32601
Method not found. This node does not expose the method you called. Check the spelling and the namespace, and confirm the method is in the list above for this network. Tracing methods in particular are not enabled everywhere.
-32602
Invalid params. The method exists but the arguments are wrong. Check argument order and types. Most EVM methods want hex-encoded quantities, and a block parameter such as latest or a hex height.
-32603
Internal error. The node failed while handling an otherwise valid request. Retry with backoff. If it persists on one method, it is usually that method rather than the node.
-32000
Server error. A catch-all the node uses for execution failures, most often a reverted call or a request over a limit. Read the accompanying message. Execution reverted means your call failed on chain, not in transport. Narrow the block range if you are querying logs.
HTTP 429
Rate limited. You have exceeded the free tier request allowance. Back off and retry, batch reads into single calls, or move to a dedicated endpoint for production traffic.
HTTP 413
Payload too large. The request body exceeded what the node accepts. Split large batches into smaller ones.

WebSocket

wss://arbitrum-one-mainnet.gateway.tatum.io

One connection held open, so the node pushes events to you instead of waiting to be asked.

You subscribe once and the node sends a message every time the thing you asked about happens: a new head, a log matching your filter, a transaction hitting the pool. Each subscription hands back an id you later pass to unsubscribe. It replaces the polling loop outright, and it is the only way to hear about something in the same second it occurs.

Where it fits

  • Live data: new blocks, contract logs, pending transactions, confirmations.
  • Cutting request volume, since one subscription replaces a method polled on a timer forever.
  • Reacting fast, because you hear about an event as the node sees it rather than on your next poll.

Trade-offs

  • Nothing is replayed. Whatever was emitted while the socket was down is gone for good.
  • Keep the last block you handled, and after reconnecting backfill the gap over JSON-RPC before trusting the stream again.
  • Idle connections get dropped by proxies. Send periodic pings, and reconnect with backoff rather than in a tight loop.
  • Endpoints cap subscriptions per connection, so share one connection instead of opening several.

This endpoint does not publish a machine-readable method list, so there is nothing to enumerate here. Use server reflection against the endpoint above to see what it exposes.

Common WebSocket errors

What you are most likely to hit calling this interface, and what to do about it.

1006
Connection closed abnormally, with no close frame. Usually an idle timeout, a network change, or a proxy dropping the connection. Reconnect with exponential backoff and re-establish every subscription. Send periodic pings to keep the connection from idling out.
1013
Try again later. The server is shedding load or you have opened too many connections. Back off before reconnecting, and reuse one connection for many subscriptions rather than opening one each.
-32601
Method not found. Subscriptions use a different method name from the HTTP interface. Use eth_subscribe and eth_unsubscribe on EVM chains, or the chain-specific subscribe methods listed above.
Missed events
Not an error code. Anything emitted while the socket was down is gone, because subscriptions are not replayed on reconnect. Record the last block you processed, and after reconnecting backfill the gap over JSON-RPC before trusting the live stream again.
HTTP 429
Rate limited during the upgrade handshake, or too many concurrent subscriptions. Reduce concurrent connections and consolidate subscriptions, or move to a dedicated endpoint.
Blockchain Data

Indexed Arbitrum One Data Insights

Complete on-chain data access, no infrastructure to run yourself. Query wallets, tokens, NFTs, and transaction history with lightning-fast APIs.

Blockchain Notifications

Real-time Arbitrum One Alerts

Real-time webhooks for on-chain events. Stop polling the network - get instant alerts for transactions, smart contract events, and wallet activities.

Learn more

About Arbitrum One

What it is, and guides for building on it.

Arbitrum One’s RPC documentation serves as a comprehensive resource for developers looking to integrate with this Layer 2 scaling solution for Ethereum. The documentation outlines the key API endpoints necessary for interacting with the Arbitrum chain, querying blockchain data, managing smart contracts, and submitting transactions. Built on optimistic rollups, Arbitrum One enhances Ethereum’s scalability by offering faster transactions and lower fees. This guide provides examples and best practices to streamline dApp development on Arbitrum One while leveraging Ethereum’s security.

FAQ

Frequently Asked Questions

Everything you need to know about Arbitrum One RPC endpoints

Quick Answer: What is Arbitrum One RPC?

RPC (Remote Procedure Call) is the standard way to interact with the network programmatically - reading on-chain data, submitting transactions, and deploying smart contracts through JSON-RPC calls. The free tier ships 5 requests per minute with no registration required, which covers most learning and testing workflows. Production applications typically move to Tatum Premium for 200 requests per second and enterprise-grade reliability.

What is Arbitrum One RPC?

RPC (Remote Procedure Call) is the interface that lets developers interact with the network: read on-chain data, submit transactions, and deploy smart contracts programmatically over standard JSON-RPC methods, without running your own node.

How do I connect to Arbitrum One using these RPC endpoints?

Simply copy the RPC endpoint URL from above and configure it in your Web3 library (ethers.js, web3.js), wallet (MetaMask, Trust Wallet), or development tool (Hardhat, Truffle). The endpoint works immediately with no registration required for the free tier.

What are the rate limits for the free RPC tier?

Free tier RPC endpoints are limited to 5 requests per minute. This is perfect for testing and development. For production applications, we recommend upgrading to Tatum Premium which offers 200 requests per second with no daily limits.

When should I upgrade to Premium?

Consider upgrading to Premium when you're moving to production, need higher rate limits (200 req/sec), require 99.9% uptime SLA, want access to archive nodes for historical data, or need advanced features like batch RPC calls, debug/trace methods, and priority support.

Is Arbitrum One RPC free forever?

Yes! Our free tier RPC endpoints are free forever with 5 requests per minute. This tier is perfect for learning, testing, and small projects. There are no hidden fees or time limits on the free tier.

What happens if I exceed the free tier rate limit?

If you exceed 5 requests per minute on the free tier, you'll receive an HTTP 429 (Too Many Requests) error. This is a standard rate limiting response. To avoid this, you can upgrade to Tatum Premium which offers 200 requests per second with no daily limits, perfect for production applications.

Can I use these Arbitrum One RPC endpoints with MetaMask?

Yes! You can configure MetaMask to use our RPC endpoints. Simply copy the endpoint URL from above, go to MetaMask Settings > Networks > Add Network (or edit existing), and paste the RPC URL. This works with all EVM-compatible networks, including this one.

Are these RPC endpoints secure?

Yes, all our RPC endpoints use HTTPS encryption and follow enterprise-grade security practices. They're powered by Tatum's infrastructure which maintains 99.9% uptime.

What's the difference between mainnet and testnet RPC endpoints?

Mainnet carries real transactions with real value, so every write is final. Testnet runs on a separate network funded with free test tokens, which makes it the safe place to try new code, retry failed calls, and simulate edge cases. Always validate on testnet before pointing production traffic at mainnet.

How do I troubleshoot RPC connection errors?

If you're experiencing connection errors, check: 1) The RPC endpoint URL is correct, 2) You're not exceeding rate limits (5 req/min for free tier), 3) Your network allows HTTPS connections, 4) The network is currently operational. For persistent issues, check our status page or contact support.

Can I use these endpoints in production?

Free tier endpoints can be used in production for low-traffic applications (under 5 req/min). For production apps with higher traffic, we strongly recommend Tatum Premium for guaranteed uptime, faster rate limits, and enterprise SLA.
Related Blockchains

Discover RPC endpoints for other popular blockchain networks