Skip to main content
Our pricing is simple: 1 RU per full request, 2 RUs per archive. For which EVM methods are full vs archive, see Request units — EVM methods affected by block age. Elysium is an Arbitrum Orbit chain from Kinetiq that settles to HyperEVM and uses HYPE for gas. Chainstack serves Elysium Mainnet (chain ID 99901) and Elysium Testnet (chain ID 99801) on Nitro, the Arbitrum client. The availability below applies to both networks on Global Nodes.

Tracing

Tracing is served through the debug_* namespace — debug_traceTransaction, debug_traceBlockByNumber, debug_traceBlockByHash, and debug_traceCall — back to genesis. They accept these tracers:
  • Default native tracers — callTracer, prestateTracer, 4byteTracer, and noopTracer.
  • Extended tracers — flatCallTracer, muxTracer, and erc7562Tracer.
  • stylusTracer — records the host I/O calls of Stylus (WebAssembly) contracts.
  • The struct/opcode logger — used when you pass no tracer.
See Available native tracers. The Parity-style arbtrace_* and trace_* namespaces are not exposed and return -32601. For traces in the Parity-style flat format, use flatCallTracer. On Nitro, the top-level entry of a flatCallTracer trace, like the top-level callTracer frame, also carries beforeEVMTransfers and afterEVMTransfers, which list the fee payment, gas refund, and fee collection transfers. See Debug and trace APIs. For a walkthrough that reads these traces, see Elysium: Trace internal calls and HYPE transfers.

Pending transactions are accepted but never delivered

Elysium has a single sequencer and no public mempool. eth_newPendingTransactionFilter returns a filter ID and eth_subscribe("newPendingTransactions") returns a subscription ID, but neither delivers a transaction, including the transactions you send through the same endpoint. txpool_status returns -32601. txpool_content and txpool_inspect return -32601 too, because Global Nodes do not serve them on any EVM chain. See What gives you mempool access.

eth_getProof window

eth_getProof returns a proof only for blocks less than 127 behind the tip. A request for an older block returns -32000 historical state <state root> is not available. debug_accountRange, debug_getModifiedAccountsByHash, and debug_getModifiedAccountsByNumber read the same state and have the same window; for an older block, they return -32000 missing trie node. See EVM eth_getProof history limits.

Why safe and finalized blocks lag behind the latest block

On Elysium, the safe and finalized block tags trail latest by minutes, which is thousands of blocks. Nitro advances both tags only after the batch that contains a block lands on HyperEVM, so the two tags usually return the same block. A transaction receipt is available as soon as the sequencer includes the transaction in a block at latest. Wait for finalized only when your application needs the batch that contains the transaction to be on HyperEVM.

Conditional transactions

eth_sendRawTransactionConditional sends a signed transaction that the sequencer includes only if the conditions you set hold in the block it builds. The method takes the signed transaction and an options object with any of these fields:
  • knownAccounts — a map of contract addresses to the expected storage root hash, or to the expected values of specific storage slots
  • blockNumberMin and blockNumberMax — a range for the HyperEVM block number
  • timestampMin and timestampMax — a range for the Elysium block timestamp, in seconds
The block-number conditions compare against the parent chain block number, which each Elysium block reports in its l1BlockNumber field, not against the Elysium block number. Take the bounds from l1BlockNumber. A range built from Elysium block numbers rejects or accepts the transaction at the wrong time, because the two chains produce blocks at different rates.
When a condition does not hold, the method returns -32003 and names the condition, for example -32003 BlockNumberMax condition not met, and the sequencer does not include the transaction.

Method availability

Last modified on November 9, 2026