eth_subscribe on Sei
Everything below was measured on 2026-10-13 by calling eth_subscribe on Sei through the same endpoint customers use, and is re-measured weekly.
What eth_subscribe does
Opens a subscription over WebSocket: newHeads pushes each new block header, logs pushes matching events, and newPendingTransactions pushes mempool transaction hashes where the node exposes them. It replaces polling, and it only works over WebSocket, not HTTP.
eth_subscribe on Sei: what we measured
| newHeads | supported |
|---|---|
| First header after subscribing | 507 ms |
| Median gap between headers | 460 ms |
| Headers in 15 seconds | 31 |
| logs | supported |
| newPendingTransactions | not supported: no "newPendingTransactions" subscription in eth namespace |
What this means on Sei
Headers pushed over WebSocket are not identical to eth_getBlockByNumber over HTTP on Sei. Only the WebSocket header has blobGasUsed, excessBlobGas, parentBeaconBlockRoot, withdrawalsRoot, withdrawlsRoot. Only the HTTP block has size, totalDifficulty. Fetch the block over HTTP if you need those fields.
newPendingTransactions is not available, so mempool watching on Sei is not possible through this endpoint.
Subscriptions end when the connection drops. Reconnect with backoff and, after reconnecting, fetch the blocks you missed with eth_getBlockByNumber.
Example request
wscat -c "wss://rpc.swiftnodes.io/ws/sei?key=YOUR_API_KEY"
> {"jsonrpc":"2.0","id":1,"method":"eth_subscribe","params":["newHeads"]}import { createPublicClient, webSocket } from "viem";
const client = createPublicClient({
transport: webSocket("wss://rpc.swiftnodes.io/ws/sei?key=YOUR_API_KEY", { reconnect: true }),
});
const unwatch = client.watchBlocks({
onBlock: (block) => console.log(block.number, block.hash),
});
// Events from one contract, pushed as they are mined
client.watchContractEvent({ address: token, abi: erc20Abi, eventName: "Transfer", onLogs: (logs) => console.log(logs) });Other methods on Sei
- eth_blockNumberSupported
- eth_chainIdSupported
- eth_getBalanceSupported
- eth_getBlockByNumberSupported
- eth_getTransactionByHashNot measured
- eth_getTransactionReceiptNot measured
- eth_callSupported
- eth_estimateGasSupported
- eth_gasPriceSupported
- eth_maxPriorityFeePerGasSupported
- eth_sendRawTransactionSupported
- eth_getTransactionCountNot measured
- eth_getCodeSupported
- eth_getLogsSupported
- eth_getBlockReceiptsSupported
- eth_feeHistorySupported
- eth_getProofNot available
- eth_createAccessListSupported
- debug_traceCallSupported
- trace_blockNot available
- trace_transactionNot available
eth_subscribe on other chains
- Ethereum
- Base
- Arbitrum
- Optimism
- Polygon
- BNB Smart Chain
- Avalanche
- Sonic
- Linea
- Scroll
- zkSync Era
- Blast
- Mantle
- Gnosis
- Celo
- Berachain
- Monad
- Unichain
- Kaia
- PulseChain
- World Chain
- Ronin
- Abstract
- ApeChain
- MegaETH
- Fantom
- Lisk
- Hemi
- X Layer
- BOB
- Plasma
- Fraxtal
- Zora
- Story
- Soneium
- Hyperliquid
- Taiko
- Morph
- Ink
- Katana
- Ethereum Classic
- opBNB
- Mode
- Flare
- Core
- Chiliz
- Telos EVM
- Tempo
- Cronos
- Manta Pacific
- Shibarium
- Boba Network
- Arbitrum Nova
- Immutable zkEVM
Frequently asked questions
Does Sei support eth_subscribe?
Yes. eth_subscribe answered on the SwiftNodes Sei endpoint when our weekly probe called it through the customer path (2026-10-13).
Does Sei support WebSocket subscriptions?
Yes. newHeads and logs worked through wss://rpc.swiftnodes.io/ws/sei on 2026-10-13.
Can I watch the Sei mempool?
No: newPendingTransactions is not available.
Sei endpoints, live block height and WebSocket status are on the Sei RPC page.
One key covers every chain we serve, and SwiftNodes has a free tier.