github OffchainLabs/nitro v3.10.0-rc.5
Arbitrum Nitro v3.10.0-rc.5

pre-release12 hours ago

This release is available as a Docker Image on Docker Hub at offchainlabs/nitro-node:v3.10.0-rc.5-b9d1452
This Docker image specifies default flags in its entrypoint which should be replicated if you're overriding the entrypoint: /usr/local/bin/nitro --validation.wasm.allowed-wasm-module-roots /home/user/nitro-legacy/machines,/home/user/target/machines

Important for any chains still on ArbOS40:

If you're running a validator without a split validation server (this will be true of most validators), you should instead use the image offchainlabs/nitro-node:v3.10.0-rc.5-b9d1452-validator which has the extra script /usr/local/bin/split-val-entry.sh as the default entrypoint (no need to override the default entrypoint). This will run both v3.10.0 and v3.7.6 validator workers for you.
If you are using a split validator, you do not want to use -validator image, you need to run a validator worker on v3.7.6 as well as a worker for v3.10.0

v3.10.0-rc.5 - 2026-03-18

Added

  • Group rollback for cascading redeem filtering using deferred statedb clone. [PR]

Changed

  • Update Go to 1.25.8 in Dockerfile. [PR]
  • Preflight the worst-case fragment read gas during multi-fragment Stylus activation, then charge the actual EXTCODECOPY-style cost after the fragment code is read. [PR]
  • Enable http communication between block validator and validation server. [PR]
  • Split ResourceKindStorageAccess into ResourceKindStorageAccessRead and ResourceKindStorageAccessWrite for finer-grained multi-dimensional gas metering. [PR]
  • Upgrade to wasmer 7.1.0-rc.2 [PR]

Fixed

  • Part 2 of integrating MEL into master. [PR]
  • Once timeout attempts are exhausted, treat it as any other, possibly fatal failure. [PR]
  • Use proper comparison for attempts. [PR]
  • Fix bold StopWaiter usage: start child structs on their own StopWaiters instead of the parent's. Fix StopAndWait ordering. [PR]
  • Fix multi-gas refunds in retryables (ArbOS60). [PR]
  • Fix StopWaiter lifecycle ordering: stop children before parent in StopAndWait, and pass managed context to children in Start. [PR]
  • Fix MEL feature flag bugs: nil message dereference in delayed sequencer, incorrect waitingForFinalizedBlock domain, and missing BatchPoster+MEL config validation. [PR]
  • Fix ValidationSpawnerRetryWrapper lifecycle: reuse one wrapper per module root instead of creating and leaking one per validation. [PR]
  • Fix BroadcastClients launching coordination goroutine on child Router's StopWaiter instead of its own. [PR]
  • Fix ValidationServer and ExecutionSpawner missing StopAndWait for their children. [PR]
  • Handle too-short AnyTrust certificate data as empty batches instead of crashing. [PR]

Internal

  • ArbGasInfo.GetMultiGasPricingConstraints now returns resources in deterministic order. [PR]
  • Move exponent validation in ArbOwner.SetMultiGasPricingConstraints outside the per-constraint loop. [PR]
  • Add JWT authentication support to the Rust validation server. [PR]
  • Move express lane service and tracker from execution/gethexec to the timeboost package. [PR]
  • Block sequencing until address filter rules are loaded. [PR]

Don't miss a new nitro release

NewReleases is sending notifications on new releases.