hello@arrowrpc.com

Getting started

Robinhood Chain is an Ethereum L2 built on the Arbitrum stack, with 100ms block times and 24/7 tokenized-asset markets. ArrowRPC gives you low-latency endpoints for it. Here's everything you need for your first request. For chain-level reference, see the official Robinhood Chain docs.

Network

NetworkMainnet
Chain ID4663 (0x1237)
HTTPS endpointhttps://rpc.arrowrpc.com
WebSocket endpointwss://ws.arrowrpc.com

Your first request

The endpoints speak standard Ethereum JSON-RPC. Confirm you're talking to the right chain:

curl
curl https://rpc.arrowrpc.com \
  -X POST -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"eth_chainId"}'

# → {"jsonrpc":"2.0","id":1,"result":"0x1237"}

Add the network to a wallet

Use these parameters in MetaMask, Rabby, or any EVM wallet:

FieldValue
Network nameRobinhood Chain
RPC URLhttps://rpc.arrowrpc.com
Chain ID4663
Currency symbolETH
Block explorerrobinhoodchain.blockscout.com

Rate limits

Limits are per IP and published up front. The HTTPS endpoint allows 100 requests per second with bursts of up to 200 requests absorbed on top. The WebSocket endpoint allows one concurrent connection per IP; multiplex all your subscriptions over it. Exceeding either limit returns HTTP 429; back off and retry. Nothing is silently dropped. If you need more, email hello@arrowrpc.com.

JSON-RPC methods

ArrowRPC endpoints expose the standard Ethereum JSON-RPC surface. Anything built for Ethereum (viem, ethers, wagmi, foundry) works unmodified.

Reads & state

MethodNotes
eth_chainId, net_versionReturns 0x1237 (4663) on mainnet
eth_blockNumber, eth_getBlockByNumber, eth_getBlockByHashBlocks arrive every ~100ms
eth_getBalance, eth_getCode, eth_getStorageAt, eth_getTransactionCountHistorical block tags require archive access
eth_call, eth_estimateGasGas estimates include the L1 data-posting component, so expect higher totals than the pure L2 execution cost
eth_getLogsMax 10,000-block range per request

Transactions

MethodNotes
eth_sendRawTransactionForwarded straight to the sequencer
eth_getTransactionByHash, eth_getTransactionReceiptReceipts include Arbitrum-style L1/L2 gas breakdown fields
eth_gasPrice, eth_maxPriorityFeePerGasPriority fees are typically zero, since the sequencer is first-come-first-served

WebSocket subscriptions

Connect to wss://ws.arrowrpc.com and use eth_subscribe with:

  • newHeads: a new header every ~100ms
  • logs: filtered contract events as they land
  • newPendingTransactions: sequencer-accepted transactions
wscat
wscat -c wss://ws.arrowrpc.com
> {"jsonrpc":"2.0","id":1,"method":"eth_subscribe","params":["newHeads"]}
< {"jsonrpc":"2.0","id":1,"result":"0x9ce59a13059e417087c02d3236a0b1cc"}

One WebSocket connection per IP: open a single socket and run all your subscriptions over it. A second connection attempt from the same IP is rejected with 429.

Debug, trace & chain-specific notes

  • debug_traceTransaction, debug_traceCall, and debug_traceBlockByNumber are available on request, backed by archive nodes. Email hello@arrowrpc.com to get access.
  • Robinhood Chain settles to Ethereum; finality follows the Arbitrum model: soft confirmation from the sequencer feed is near-instant, and L1 finality follows batch posting.
  • Fees have two parts: L2 execution plus L1 data. Use eth_estimateGas rather than hand-computing gas.
  • Some precompiles from Arbitrum (e.g. ArbSys at 0x64) are available for L1↔L2 messaging.
Missing a method you need? Tell us at hello@arrowrpc.com. If Nitro supports it, we can usually enable it.

Run your own node

Robinhood Chain runs on Arbitrum Nitro, and anyone can run a full node that follows the chain. A node is a Nitro instance configured for chain ID 4663: it receives blocks from the sequencer feed, verifies them against batches posted to Ethereum L1, and serves standard JSON-RPC locally once synced.

Hardware requirements

ComponentRequirement
CPUModern multi-core (8+) with strong single-core performance
RAM64 GB minimum, 128 GB recommended
StorageLocally attached NVMe SSD with (2 × current chain size) + 20% buffer; expect several TB. Network-attached storage will throttle sync badly.
ClockAccurate system time via ntp or chrony, since a drifting clock breaks feed validation

You'll also need Docker, an Ethereum L1 execution RPC endpoint, an L1 beacon endpoint for blob data, and the chain config files (robinhood-chain-info.json plus the genesis file) from the official docs in a local ./config directory.

Start a mainnet full node

shell
docker run --rm -it \
  -v $(pwd)/data:/home/nitro/.arbitrum \
  -v $(pwd)/config:/home/nitro/config \
  -p 8547:8547 -p 8548:8548 \
  offchainlabs/nitro-node:v3.11.2-3599aca \
  --parent-chain.connection.url=<YOUR_L1_RPC_URL> \
  --parent-chain.blob-client.beacon-url=<YOUR_L1_BEACON_URL> \
  --chain.id=4663 \
  --chain.name="Robinhood Chain" \
  --chain.info-files=/home/nitro/config/robinhood-chain-info.json \
  --init.genesis-json-file=/home/nitro/config/robinhood-genesis.json \
  --node.feed.input.url=wss://feed.mainnet.chain.robinhood.com \
  --http.addr=0.0.0.0 \
  --http.port=8547 \
  --http.api=net,web3,eth

Port 8547 serves HTTP JSON-RPC and 8548 serves WebSockets. To sync much faster than from genesis, pass --init.url=<SNAPSHOT_URL> with a recent database snapshot on first start. For the Sepolia-settled testnet, swap in --chain.id=46630, the testnet info file, and the testnet feed (wss://feed.testnet.chain.robinhood.com), use Sepolia L1 endpoints, and drop the genesis-file flag (testnet doesn't use one).

Verify it's working

curl
curl http://localhost:8547 \
  -X POST -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"eth_chainId"}'

# → {"jsonrpc":"2.0","id":1,"result":"0x1237"}

Compare eth_blockNumberagainst the public explorer; you're synced when they match. Initial sync from genesis can take a long time; a recent database snapshot gets you there much faster. Running an RPC node is permissionless; becoming a validator additionally requires allowlist inclusion and a 1 WETH bond.

Or don't. Running 64 GB+ NVMe boxes with perfect clocks is literally our job. Grab an endpoint and ship your app instead. You can always bring the infrastructure in-house later.

For AI agents

Building with an AI agent, coding assistant, or LLM pipeline? Everything on this page is available as plain markdown at a stable URL, following the llms.txt convention.

llms.txt
https://arrowrpc.com/llms.txt

Point your agent at that file (or paste it into context) and it gets the endpoints, chain parameters, rate limits, a test request, and a viem setup snippet in one shot. No key or signup is needed to start making requests, so agents can verify the endpoint works with a single eth_chainId call.