> ## Documentation Index
> Fetch the complete documentation index at: https://docs.optimism.io/llms.txt
> Use this file to discover all available pages before exploring further.

# op-node Releases

> Release history for op-node. OP Stack consensus-layer client.

**op-node** implements the [rollup-node spec](https://github.com/ethereum-optimism/specs/blob/main/specs/protocol/rollup-node.md), functioning as the consensus layer (CL) client of an OP Stack chain. It builds, relays, and verifies the canonical L2 chain, working alongside an execution layer client such as op-reth.

<Update label="June 2, 2026" description="v1.19.0" tags={["Latest", "Stable"]}>
  > \[!WARNING]
  > This is a mandatory release for all node operators. It includes [Sepolia](https://github.com/ethereum-optimism/superchain-registry/blob/c90d86d2ed13541f16daf5ce8707c688723ca039/superchain/configs/sepolia/op.toml#L25) and [Mainnet](https://github.com/ethereum-optimism/superchain-registry/blob/c90d86d2ed13541f16daf5ce8707c688723ca039/superchain/configs/mainnet/op.toml#L24) timestamps for the Karst hardfork.
  >
  > **Operators must upgrade before the scheduled hard fork times.**
  >
  > The following Sepolia chains will activate on **`1781712001` (Wed Jun 17 2026 16:00:01 UTC)**: op, ink, zora, mode, lisk, metal, unichain, soneium-minato, ethernity, creator-chain-testnet
  >
  > The following Mainnet chains will optimistically activate on **`1783526401` (Wed Jul 8 2026 16:00:01 UTC)**, pending governance approval: op, ink, zora, mode, lisk, metal, unichain, soneium, ethernity, tbn
  >
  > **Reminder**: op-geth has reached [end of support](https://docs.optimism.io/notices/op-geth-deprecation), so you must be running op-reth to support the karst activation. For more details on this network upgrade see our [notice page](https://docs.optimism.io/notices/upgrade-19).

  > \[!IMPORTANT]
  >
  > `--syncmode.offset-el-safe` now defaults to `12h` for execution-layer sync. This keeps safe and finalized heads behind the synced tip after EL sync completes, matching the OP Mainnet sequencing window. Operators who need the previous behavior can set `--syncmode.offset-el-safe=0`.

  When `--syncmode.offset-el-safe` is configured outside `--syncmode=execution-layer`, op-node now logs a warning and ignores the value instead of failing startup.

  [View full release on GitHub →](https://github.com/ethereum-optimism/optimism/releases/tag/op-node/v1.19.0)
</Update>

<Update label="May 19, 2026" description="v1.18.2" tags={["Stable"]}>
  > \[!NOTE]
  > **Optional upgrade.** This upgrade bumps op-geth and contains a few QOL improvements to op-node.

  [View full release on GitHub →](https://github.com/ethereum-optimism/optimism/releases/tag/op-node/v1.18.2)
</Update>

<Update label="May 18, 2026" description="v1.18.1" tags={["Stable"]}>
  This is an optional release containing only metrics changes.

  [View full release on GitHub →](https://github.com/ethereum-optimism/optimism/releases/tag/op-node/v1.18.1)
</Update>

<Update label="May 11, 2026" description="v1.18.0" tags={["Stable"]}>
  > \[!NOTE]
  > This release removes flags and environment variables related to protocol versions: `--rollup.halt` and `--rollup.load-protocol-versions`.

  🤝 The corresponding op-geth release is [v1.101702.2](https://github.com/ethereum-optimism/op-geth/releases/tag/op-geth%2Fv1.101702.2).

  [View full release on GitHub →](https://github.com/ethereum-optimism/optimism/releases/tag/op-node/v1.18.0)
</Update>

<Update label="April 29, 2026" description="v1.17.0" tags={["Stable"]}>
  This release includes new NUT bundle updates for Karst, improvements to signer rotation, removes/relaxes deprecated ProtocolVersions code and fixes bugs in engine-controller management.

  This version includes Superchain Registry updates for Worldchain and is a required update for that network

  [View full release on GitHub →](https://github.com/ethereum-optimism/optimism/releases/tag/op-node/v1.17.0)
</Update>

<Update label="April 21, 2026" description="v1.16.13" tags={["Stable"]}>
  > \[!NOTE]
  > This is an optional release that only contains changes for in-development features.

  [View full release on GitHub →](https://github.com/ethereum-optimism/optimism/releases/tag/op-node/v1.16.13)
</Update>

<Update label="April 13, 2026" description="v1.16.12" tags={["Stable"]}>
  This release is optional, however we recommend updating as it includes stability fixes.

  ⚠️  **Req/Res CL P2P Sync — By Default Is Disabled**

  As previously communicated, we are deprecating the Req/Res CL P2P sync protocol in op-node.

  `--syncmode.req-resp` flag now defaults to `false`, meaning Req/Res CL P2P sync is **disabled by default**.

  Operators that rely on Req/Resp sync should explicitly set the flag to `true` and also update their infrastructure with a healthy EL p2p network.

  🤝 The corresponding op-geth version is `v1.101702.1`.

  ## What's Changed in op-node/v1.16.12

  * op-node: disable Req/Resp p2p sync by default (`--syncmode.req-resp=false`). Operators that rely on Req/Resp sync should explicitly set the flag to `true` ([#18088](https://github.com/ethereum-optimism/optimism/pull/18088))
  * all: upgrade the bundled op-geth dependency for this release candidate ([#19844](https://github.com/ethereum-optimism/optimism/pull/19844))
  * supernode: use denylist output when computing `OptimisticOutputRoot`, improving optimistic output behavior around invalidated blocks ([#19880](https://github.com/ethereum-optimism/optimism/pull/19880))
  * op-service / flashblocks: refactor flashblocks coverage and fix a shutdown race in the flashblock client ([#19942](https://github.com/ethereum-optimism/optimism/pull/19942),
    [#19950](https://github.com/ethereum-optimism/optimism/pull/19950))
  * feat(nuts): add `update-nuts` and `verify-nuts` commands for bundle snapshotting and provenance verification ([#19463](https://github.com/ethereum-optimism/optimism/pull/19463))
  * fault proof test infra: migrate end-to-end fault proof coverage from `CANNON` to `CANNON_KONA` ([#19791](https://github.com/ethereum-optimism/optimism/pull/19791))
  * contracts / dev tooling: remove legacy OPCMv1 Solidity paths and align related deployer/devstack code with OPCMv2-only flows ([#19795](https://github.com/ethereum-optimism/optimism/pull/19795))

  **Full Changelog**: [https://github.com/ethereum-optimism/optimism/compare/op-node/v1.16.11...op-node/v1.16.12](https://github.com/ethereum-optimism/optimism/compare/op-node/v1.16.11...op-node/v1.16.12)

  🚢 Docker Image: [https://us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.16.12](https://us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.16.12)

  [View full release on GitHub →](https://github.com/ethereum-optimism/optimism/releases/tag/op-node/v1.16.12)
</Update>

<Update label="April 2, 2026" description="v1.16.11" tags={["Stable"]}>
  This release is optional, however we recommend updating as it includes stability fixes.

  The corresponding op-geth version is v1.101701.0.

  [View full release on GitHub →](https://github.com/ethereum-optimism/optimism/releases/tag/op-node/v1.16.11)
</Update>

<Update label="March 31, 2026" description="v1.16.10" tags={["Stable"]}>
  This release is optional; however, we recommend updating as it includes a Go version upgrade addressing security fixes, along with enhanced container image hardening.

  🤝 The corresponding op-geth version is [v1.101701.0](https://github.com/ethereum-optimism/op-geth/releases/tag/v1.101701.0).

  [View full release on GitHub →](https://github.com/ethereum-optimism/optimism/releases/tag/op-node/v1.16.10)
</Update>

<Update label="March 20, 2026" description="v1.16.9" tags={["Stable"]}>
  > \[!WARNING]
  > **This is an essential release due to security fixes in op-geth.**

  🤝 The corresponding op-geth version is [v1.101701.0](https://github.com/ethereum-optimism/op-geth/releases/tag/v1.101701.0).

  [View full release on GitHub →](https://github.com/ethereum-optimism/optimism/releases/tag/op-node/v1.16.9)
</Update>

<Update label="March 9, 2026" description="v1.16.8" tags={["Stable"]}>
  > \[!WARNING]
  > **This is an essential release due to security fixes in op-geth.**

  🤝 The corresponding op-geth version is [v1.101609.2](https://github.com/ethereum-optimism/op-geth/releases/tag/v1.101609.2).

  [View full release on GitHub →](https://github.com/ethereum-optimism/optimism/releases/tag/op-node/v1.16.8)
</Update>

<Update label="February 26, 2026" description="v1.16.7" tags={["Stable"]}>
  This is an optional release containing minor optimizations and refactors.

  [View full release on GitHub →](https://github.com/ethereum-optimism/optimism/releases/tag/op-node/v1.16.7)
</Update>

<Update label="February 2, 2026" description="v1.16.6" tags={["Stable"]}>
  This is a maintenance release.

  🤝 The corresponding op-geth release is [v1.101608.0](https://github.com/ethereum-optimism/op-geth/releases/tag/v1.101608.0).

  ## What's Changed in op-node/v1.16.6

  * all: upgrade op-geth (upstream v1.16.8) by @joshklop in [#18338](https://github.com/ethereum-optimism/optimism/pull/18338)
  * op-supernode: multiplex metrics by chain\_id label and serve at a single endpoint by @geoknee in [#18750](https://github.com/ethereum-optimism/optimism/pull/18750)

  **Full Changelog**: [https://github.com/ethereum-optimism/optimism/compare/op-node/v1.16.5...op-node/v1.16.6](https://github.com/ethereum-optimism/optimism/compare/op-node/v1.16.5...op-node/v1.16.6)

  🚢 Docker Image: [https://us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.16.6](https://us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.16.6)

  [View full release on GitHub →](https://github.com/ethereum-optimism/optimism/releases/tag/op-node/v1.16.6)
</Update>

<Update label="January 13, 2026" description="v1.16.5" tags={["Stable"]}>
  > \[!WARNING]
  > **The corresponding release for op-geth includes security fixes and thus this an essential release for all chains.**

  🤝 The corresponding op-geth release is [v1.101605.0](https://github.com/ethereum-optimism/op-geth/releases/tag/v1.101605.0).

  [View full release on GitHub →](https://github.com/ethereum-optimism/optimism/releases/tag/op-node/v1.16.5)
</Update>

<Update label="December 19, 2025" description="v1.16.4" tags={["Stable"]}>
  > \[!WARNING]
  > **This is an essential release for chains impacted by recent superchain registry updates: [Cyber](https://github.com/ethereum-optimism/superchain-registry/commit/8fadc870f1da03dd176cde2f618ba4d1d424d423), [Funki](https://github.com/ethereum-optimism/superchain-registry/commit/d317982f8a46d385d94dcbd57aa88ffc78cbfa3e)**

  🤝 The corresponding op-geth release is [v1.101604.0](https://github.com/ethereum-optimism/op-geth/releases/tag/v1.101604.0) (required for the chains impacted by superchain registry changes).

  [View full release on GitHub →](https://github.com/ethereum-optimism/optimism/releases/tag/op-node/v1.16.4)
</Update>

<Update label="December 4, 2025" description="v1.16.3" tags={["Stable"]}>
  > \[!IMPORTANT]
  > **This is an essential release for all OP stack chains**

  This release contains an important fix of the blob fetching logic to handle the case where multiple blobs with the same content (but different indices in the block) are requested. Without this fix, a *safe head stall* is possible, due to an error triggered if the batcher submits multiple blobs with the same content (#18492).

  Another edge case in the derivation pipeline is fixed where an overlapping span batch has a first singular batch after the current safe head with an outdated origin. This can happen if a large span batch is posted which overlaps with an auto-derived chain (due to sequencing window elapse). Such a span batch should be dropped, but the derivation pipeline stalled instead. This was recently triggered on an OP Stack testnet and hasn't been observed before (#18283).

  The sequencer's L1 origin selection got fixed to properly handle L1 reorgs (#18233).

  [View full release on GitHub →](https://github.com/ethereum-optimism/optimism/releases/tag/op-node/v1.16.3)
</Update>

<Update label="November 14, 2025" description="v1.16.2" tags={["Stable"]}>
  > \[!WARNING]
  > **This is an essential release for the following chains due to [Jovian timestamp changes](https://github.com/ethereum-optimism/superchain-registry/commit/59e22d265b7a423b7f51a67a722471a6f3c3cc39): Bob, Lyra, Mint, Orderly, and Polynomial**

  > \[!NOTE]
  > This release also contains World Chain Mainnet's [Isthmus activation timestamp](https://github.com/ethereum-optimism/superchain-registry/pull/1149)

  This release updates Jovian timestamps for the chains listed above. It is optional for all other chains.

  🤝 The corresponding op-geth release is [v1.101603.5](https://github.com/ethereum-optimism/op-geth/releases/tag/v1.101603.5).

  [View full release on GitHub →](https://github.com/ethereum-optimism/optimism/releases/tag/op-node/v1.16.2)
</Update>

<Update label="November 6, 2025" description="v1.16.1" tags={["Stable"]}>
  > \[!WARNING]
  > **Chains impacted by recent [superchain registry changes](https://github.com/ethereum-optimism/superchain-registry/commit/59e22d265b7a423b7f51a67a722471a6f3c3cc39) should use the [more recent release](https://github.com/ethereum-optimism/optimism/releases/tag/op-node%2Fv1.16.2): Bob, Lyra, Mint, Orderly, and Polynomial**

  > \[!WARNING]
  > **This is an essential release to prepare for the L1 Fusaka fork on Ethereum Mainnet**

  > \[!WARNING]
  > **This is an essential release for chains activating the Jovian hardfork.**

  Node operators should upgrade to this release before Jovian activates on the Sepolia superchain on November 19th (`1763568001`). Doing so will also prepare nodes for Jovian activating on the mainnet superchain on December 2nd (`1764691201`) and for Fusaka activation on Ethereum mainnet on December 3rd (`1764798551`).

  The following are the chains that have opted into the Superchain [hard fork inheritance behavior](https://github.com/ethereum-optimism/superchain-registry/blob/main/docs/hardfork-activation-inheritance.md) and will activate Jovian at the timestamps specified above: Arena Z Mainnet, Arena Z Sepolia, Base Mainnet, Base Sepolia, BOB Mainnet, Ethernity Mainnet, Ethernity Sepolia, Ink Mainnet, Ink Sepolia, Lisk Mainnet, Lisk Sepolia, Derive (formerly Lyra) Mainnet, Metal Mainnet, Metal Sepolia, Mint Mainnet, Mode Mainnet, Mode Sepolia, OP Mainnet, OP Sepolia, Orderly Mainnet, Polynomial Mainnet, Snax Mainnet, Soneium Mainnet, Minato (Soneium) Sepolia, Swell Mainnet, Binary Mainnet, Unichain Mainnet, Unichain Sepolia, Zora Mainnet, and Zora Sepolia.

  Additionally, Swell Mainnet will activate Isthmus 12 hours prior to Jovian, December 2nd (`1764648001`).

  🤝 The corresponding op-geth release is [v1.101603.4](https://github.com/ethereum-optimism/op-geth/releases/tag/v1.101603.4).

  🤝 op-batcher should also be upgraded to [op-batcher/v1.16.2](https://github.com/ethereum-optimism/optimism/releases/tag/op-batcher%2Fv1.16.2).

  [View full release on GitHub →](https://github.com/ethereum-optimism/optimism/releases/tag/op-node/v1.16.1)
</Update>

<Update label="October 31, 2025" description="v1.16.0" tags={["Stable"]}>
  > \[!WARNING]
  > DO NOT USE THIS RELEASE. The Jovian activation timestamps are being updated in a new release.

  [View full release on GitHub →](https://github.com/ethereum-optimism/optimism/releases/tag/op-node/v1.16.0)
</Update>

<Update label="October 24, 2025" description="v1.14.3" tags={["Stable"]}>
  This release adds the worldchain-sepolia Isthmus activation time and improves robustness in the L1 beacon client.

  It also allows L2 chain configs to be passed to NewL1ChainConfig, which was previously preventing L3s from upgrading to a Fusaka compatible release.

  The corresponding op-geth release is [v1.101603.2](https://github.com/ethereum-optimism/op-geth/releases/tag/v1.101603.2)

  [View full release on GitHub →](https://github.com/ethereum-optimism/optimism/releases/tag/op-node/v1.14.3)
</Update>

<Update label="May 24, 2024" description="v1.7.7-rc.1" tags={["Release Candidate"]}>
  # `op-node` Fjord override flag rc

  This is a release candidate on top of [`op-node/v1.7.6`](https://github.com/ethereum-optimism/optimism/releases/tag/v1.7.6) that adds the missing fjord override flag `--override.fjord` (or env var `OP_NODE_OVERRIDE_FJORD`) to `op-node`. [https://github.com/ethereum-optimism/optimism/pull/10648](https://github.com/ethereum-optimism/optimism/pull/10648)

  🚢 Docker Image [https://us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.7.7-rc.1](https://us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.7.7-rc.1)

  [View full release on GitHub →](https://github.com/ethereum-optimism/optimism/releases/tag/op-node/v1.7.7-rc.1)
</Update>
