AsyncAPI description of the WebSocket surface that Arbitrum exposes from publicly documented endpoints. ## Important scope notes (from Arbitrum docs) Arbitrum's public RPC endpoints — `arb1.arbitrum.io/rpc`, `nova.arbitrum.io/rpc`, and `sepolia-rollup.arbitrum.io/rpc` — **do not expose JSON-RPC over WebSockets**. The Arbitrum documentation states explicitly: "Arbitrum public RPCs do not provide Websocket support." Production teams use Alchemy, QuickNode, Infura, Chainstack, dRPC, Ankr, Allnodes, or a self-hosted Nitro node to obtain a WSS JSON-RPC endpoint. The *only* WebSocket interface Arbitrum publishes on its own domains is the **Nitro Sequencer Feed**, a public, read-only broadcast of ordered `BroadcastFeedMessage` envelopes. This document describes: 1. The Nitro Sequencer Feed channels (`arb1`, `nova`, `sepolia`). 2. The `eth_subscribe` channels that work against an Arbitrum Nitro JSON-RPC WebSocket *when one is available* (self-hosted node or third-party provider). These are included so consumers can model the message shape with Arbitrum's documented block extensions (`l1BlockNumber`, `sendRoot`, `sendCount`, modified `mixHash`, fixed `difficulty` / `gasLimit`, custom transaction types). ## eth_subscribe support on Arbitrum Nitro * `newHeads` — supported. Blocks include the Arbitrum-specific fields documented under "RPC methods" (`l1BlockNumber`, `sendRoot`, `sendCount`, `extraData == sendRoot`, mixed `mixHash`, fixed `difficulty` / `gasLimit`). * `logs` — supported. * `newPendingTransactions` — Arbitrum has a single centralized Sequencer and orders transactions on receipt; there is no public mempool, so the practical utility differs from L1 Ethereum. The subscription topic is accepted by Nitro for compatibility but does not surface a mempool the way Ethereum does. * `syncing` — accepted by Nitro for go-ethereum compatibility. No `arb_subscribe` family of methods is documented by Offchain Labs at the time of writing.
View SpecView on GitHubLayer 2EthereumRollupJSON-RPCStylusNitroOrbitBridgeAsyncAPIEventsWebSockets
Channels
/feed/arb1
subscribereceiveArb1SequencerFeed
Receive ordered sequencer broadcast messages from Arbitrum One.
Nitro Sequencer broadcast feed for Arbitrum One. The connection is a raw WebSocket; each text frame is a JSON `BroadcastMessage`.
/feed/nova
subscribereceiveNovaSequencerFeed
Receive ordered sequencer broadcast messages from Arbitrum Nova.
Nitro Sequencer broadcast feed for Arbitrum Nova.
/feed/sepolia
subscribereceiveSepoliaSequencerFeed
Receive ordered sequencer broadcast messages from Arbitrum Sepolia.
Nitro Sequencer broadcast feed for Arbitrum Sepolia testnet.
eth_subscribe/newHeads
publishsubscribeNewHeads
Open a `newHeads` subscription.
`eth_subscribe("newHeads")` on a Nitro JSON-RPC WebSocket. Emits a notification for every new L2 head produced by the Sequencer. Blocks include Arbitrum-specific fields (`l1BlockNumber`, `sendRoot`, `sendCount`, modified `mixHash`, fixed `difficulty` / `gasLimit`).
eth_subscribe/logs
publishsubscribeLogs
Open a `logs` subscription with an address/topics filter.
`eth_subscribe("logs", {address, topics})` on a Nitro JSON-RPC WebSocket. Emits a notification for each log matching the supplied address/topics filter.
eth_subscribe/newPendingTransactions
publishsubscribeNewPendingTransactions
Open a `newPendingTransactions` subscription.
`eth_subscribe("newPendingTransactions")`. Accepted by Nitro for go-ethereum compatibility, but Arbitrum's centralized Sequencer orders transactions on receipt — there is no public mempool, so the stream is effectively empty / of limited use compared to L1 Ethereum.
eth_subscribe/syncing
publishsubscribeSyncing
Open a `syncing` subscription.
`eth_subscribe("syncing")`. Accepted by Nitro for go-ethereum compatibility. Notifications reflect the local node's sync status.
Messages
✉
BroadcastMessage
Nitro Sequencer Broadcast Envelope
Top-level envelope emitted by the Nitro Sequencer feed broadcaster.
✉
JsonRpcSubscribeRequestNewHeads
eth_subscribe newHeads request
✉
JsonRpcSubscribeRequestLogs
eth_subscribe logs request
✉
JsonRpcSubscribeRequestNewPendingTxs
eth_subscribe newPendingTransactions request
✉
JsonRpcSubscribeRequestSyncing
eth_subscribe syncing request
✉
EthSubscriptionNewHead
eth_subscription notification — newHeads
✉
EthSubscriptionLog
eth_subscription notification — logs
✉
EthSubscriptionPendingTxHash
eth_subscription notification — pending tx hash
✉
EthSubscriptionSyncing
eth_subscription notification — syncing
Servers
wss
arb1-feedarb1-feed.arbitrum.io/feed
Public Nitro Sequencer broadcast feed for Arbitrum One mainnet (chain ID 42161). Read-only stream of ordered `BroadcastFeedMessage` envelopes. The `blockNumber` carried inside messages refers to the parent-chain (L1) block; L2 block number is computed as `genesisBlockNumber + sequenceNumber` (Arbitrum One genesis is 22207817).
wss
nova-feednova-feed.arbitrum.io/feed
Public Nitro Sequencer broadcast feed for Arbitrum Nova (chain ID 42170, AnyTrust DAC chain).
wss
sepolia-feedsepolia-rollup.arbitrum.io/feed
Public Nitro Sequencer broadcast feed for Arbitrum Sepolia testnet (chain ID 421614).
wss
nitro-rpc-ws{host}
Generic JSON-RPC WebSocket endpoint exposed by a self-hosted Nitro node or a third-party provider (Alchemy, QuickNode, Infura, Chainstack, dRPC, Ankr, Allnodes). Arbitrum's own public RPC hosts (`arb1.arbitrum.io/rpc`, `nova.arbitrum.io/rpc`, `sepolia-rollup.arbitrum.io/rpc`) do not accept WebSocket upgrades.
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.