Run a Robinhood Chain node
Robinhood Chain is an Arbitrum chain running Nitro, so a full node is the Nitro image pointed at Robinhood's chain config and an Ethereum endpoint. Hardware, the Docker command, both sequencer feeds, sync checks and snapshots, from Robinhood's full-node guide, read 2026-10-13.
Updated
Do you need a node?
Robinhood's own guide puts it plainly: if you do not already know why you need your own node, you probably do not. For reads and transactions, the public RPC endpoints (with live status) and the keyed providers cover it. A node earns its cost when you need wide eth_getLogs ranges without a rate limit, trace and debug calls on your own terms, or no third party between your app and the chain.
Robinhood Chain node hardware and prerequisites
- CPU
- Modern multi-core CPU, 8+ cores, strong single-core performance
- RAM
- 64 GB (128 GB recommended)
- Storage
- Locally attached NVMe SSD: 2 x the current chain size plus 20%, several TBArchive nodes need substantially more disk
- Ethereum execution RPC
- RequiredYour own L1 node or a provider. Your own must be fully synced first
- Ethereum beacon endpoint
- RequiredRobinhood Chain posts its data to Ethereum as blobs; the beacon endpoint is how the node reads them
- Docker
- Installed and running
Chain config files and mounts
Download the files from Robinhood's full-node guide into one directory, for example $HOME/rh/config.
- Mainnet
- robinhood-chain-info.json + robinhood-genesis.jsonChain info and a custom genesis
- Testnet
- robinhood-chain-testnet-info.jsonNo custom genesis, so the testnet command drops --init.genesis-json-file
- Config mount
- /home/nitro/configWhere the commands below read the files from
- Data mount
- /home/nitro/.arbitrumThe image runs as the nitro user; mounted anywhere else, the node cannot persist chain data
Start a Robinhood Chain mainnet node
Robinhood's command with both sequencer feeds added, as its guide recommends. The image tag is the one the guide named on 2026-10-13; check the notices before you pin it.
L1_RPC="https://..." # Ethereum execution endpoint, yours or a provider's
L1_BEACON="https://..." # Ethereum beacon endpoint, needed for blob data
DATA_DIR="$HOME/rh/robinhood-nitro-data"
docker run --rm -it \
-v "$DATA_DIR":/home/nitro/.arbitrum \
-v "$HOME/rh/config":/home/nitro/config \
-p 8547:8547 -p 8548:8548 \
offchainlabs/nitro-node:v3.11.2-3599aca \
--chain.info-files=/home/nitro/config/robinhood-chain-info.json \
--parent-chain.connection.url="$L1_RPC" \
--parent-chain.blob-client.beacon-url="$L1_BEACON" \
--init.genesis-json-file=/home/nitro/config/robinhood-genesis.json \
--node.feed.input.url=wss://feed.mainnet.chain.robinhood.com \
--node.feed.input.url=wss://delayed-feed.mainnet.chain.robinhood.com \
--http.addr=0.0.0.0 --http.port=8547 \
--http.api=net,web3,ethRobinhood Chain sequencer feeds
The feed is how a node hears about new transactions as the sequencer orders them, instead of waiting for batches on Ethereum. Feed URLs must be wss://, and they are not JSON-RPC.
- Primary feed
- wss://feed.mainnet.chain.robinhood.comReal time, best-effort, no uptime guarantee. Compressed-only since 17 September 2026, per Robinhood's notices
- Delayed feed
- wss://delayed-feed.mainnet.chain.robinhood.comAbout 500 ms behind the primary, on separate hardened capacity: the supported fallback
- Testnet feed
- wss://feed.testnet.chain.robinhood.com
Two ways to wire the delayed feed. Pass both URLs to --node.feed.input.url, as in the command above, and the node connects to both and de-duplicates by sequence number: no added latency, and no reconnect gap if the primary degrades. Robinhood recommends this. Or keep the delayed feed as a strict standby that only takes over when the primary drops:
--node.feed.input.url=wss://feed.mainnet.chain.robinhood.com \
--node.feed.input.secondary-url=wss://delayed-feed.mainnet.chain.robinhood.comRobinhood Chain testnet node
The testnet (chain ID 46630) runs the same image with robinhood-chain-testnet-info.json as its chain info file and no --init.genesis-json-file flag. Its feed is wss://feed.testnet.chain.robinhood.com.
Check the node and its sync
The first sync takes a long time and spends a lot of L1 requests, so watch your provider's quota. A transaction sent before the node has caught up can fail with "nonce has already been used": wait for the sync to finish.
Start from a database snapshot
- Mainnet snapshots
- snapshot-explorer.arbitrum.io
- Testnet snapshots
- snapshot-explorer.arbitrum.io
- Restore
- --init.url=<snapshot-url>On the node's first start, instead of syncing from genesis
Running a validator
Robinhood Chain resolves disputes with BoLD through a permissioned set of validators. A validator has to be on the allowlist and stake a 1 WETH bond; Robinhood encourages defensive validators.
Robinhood Chain node questions
How do I run a Robinhood Chain node?
Run the Arbitrum Nitro image (offchainlabs/nitro-node:v3.11.2-3599aca as of 2026-10-13) with Robinhood's chain info file (robinhood-chain-info.json) and genesis file (robinhood-genesis.json) mounted at /home/nitro/config, a data directory mounted at /home/nitro/.arbitrum, and an Ethereum execution and beacon endpoint passed as --parent-chain.connection.url and --parent-chain.blob-client.beacon-url. Add the sequencer feed with --node.feed.input.url, then wait until eth_syncing returns false.
What hardware does a Robinhood Chain node need?
Robinhood's guide asks for a modern multi-core cpu, 8+ cores, strong single-core performance, 64 GB (128 GB recommended) of RAM, and locally attached NVMe SSD: 2 x the current chain size plus 20%, several TB. That is for a full node; an archive node needs substantially more disk.
What is wss://feed.mainnet.chain.robinhood.com?
Robinhood Chain's sequencer feed: a WebSocket stream of the sequencer's ordered transactions that Nitro nodes subscribe to with --node.feed.input.url so they see new blocks with low latency. It is real time but best-effort, with no uptime guarantee; wss://delayed-feed.mainnet.chain.robinhood.com is the backup, about 500 ms behind on separate capacity. Running both at once is what Robinhood recommends.
Can I use wss://feed.mainnet.chain.robinhood.com as a WebSocket RPC?
No. The feed speaks Nitro's broadcast protocol, not JSON-RPC, so eth_subscribe and eth_call do not work on it. For a WebSocket RPC on chain 4663, use a provider such as Alchemy, dRPC or Tatum, or run your own node and enable its WebSocket port.
Do I need my own Ethereum node to run a Robinhood Chain node?
No, but you need two Ethereum (L1) endpoints, your own or a provider's: an execution RPC and a beacon (consensus) endpoint, which the node uses to read blob data. If you run your own L1 node it must be fully synced first. The initial sync uses a lot of L1 requests, so watch your provider quota.
Can I run a Robinhood Chain validator?
Only from an allowlist. Robinhood Chain resolves disputes with BoLD through a permissioned set of validators; a validator must be added to the allowlist and stake a 1 WETH bond. Robinhood encourages defensive validators.