From c7ec99de49d622217f646d82f92d385bfd29be1f Mon Sep 17 00:00:00 2001 From: Bradley Camacho <42678939+bradleycamacho@users.noreply.github.com> Date: Sun, 19 Oct 2025 20:57:09 -0700 Subject: [PATCH 01/17] u17 notice page --- docs.json | 1 + notices/upgrade-17.mdx | 91 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 92 insertions(+) create mode 100644 notices/upgrade-17.mdx diff --git a/docs.json b/docs.json index f21982f0a..e800aa523 100644 --- a/docs.json +++ b/docs.json @@ -951,6 +951,7 @@ { "tab": "Notices", "pages": [ + "notices/upgrade-17", "notices/fusaka-notice", "notices/upgrade-13", "notices/upgrade-14", diff --git a/notices/upgrade-17.mdx b/notices/upgrade-17.mdx new file mode 100644 index 000000000..37ac4ce97 --- /dev/null +++ b/notices/upgrade-17.mdx @@ -0,0 +1,91 @@ +--- +title: Upgrade 17 - Jovian Hard Fork +description: Learn how to prepare for the Jovian hard fork +--- + +The Jovian hardfork is a proposed network upgrade for OPStack chains, which brings several improvements to the way rollup fees are calculated as well as performing a maintenance update to the fault proof virtual machine. + + + The Upgrade 17 protocol upgrade on the **Sepolia** Superchain will be executed on **Mon, Nov 3, 2025**, and the **Mainnet** Superchain will be activated on **Fri, Dec 12, 2025**. + The upgrade will be executed on the following chains: `OP`, `Base`, `Soneium`, `Ink`, and `Unichain`. + Execution times may vary depending on the current state of each chain. + + +## What's included in Upgrade 16a + +Upgrade 17 introduces the following changes: + +* **Cannon is being updated to support Go 1.24**, which allows the OP Stack to stay up to date with upstream changes to go-ethereum (which are included in op-geth) +* **Minimum Base Fee and Data Availability Footprint Block Limit** which allows the L2 base fee to respond more rapidly to changes in block composition, particularly when this implies an increased demand on the rollup’s capacity to batch blocks to the data availability layer. +* **Operator Fee Fix** which modifies the existing, optional “operator fee” feature. + +For more information on the Isthmus implementation details, please review the [Jovian specifications](https://specs.optimism.io/protocol/jovian/overview.html). + +## For node operators + +Update your node software as soon as possible after release: +* Update `op-node` to X +* Update `op-geth` to X + +## For chain operators + +### For permissionless fault proof enabled chains + +Chains running permissionless fault proofs will need to deploy new dispute game contracts with new absolute prestates. + + + ### Verify the new absolute prestate + + + As of upgrade 14, the 64 bit multi-threaded version of cannon is utilized. + + + The absolute prestate is generated with the [op-program/v1.6.1-rc.1](https://github.com/ethereum-optimism/optimism/tree/op-program/v1.6.1-rc.1). You can use this new absolute prestate `0x03eb07101fbdeaf3f04d9fb76526362c1eea2824e4c6e970bdb19675b72e4fc8` for the following chains: + + * Mainnet and Sepolia: `OP`, `Base`, `Soneium`, `Ink`and `Unichain` + + You can verify this absolute prestate by running the following [command](https://github.com/ethereum-optimism/optimism/blob/d6fb90dd489e39efa206b55200766ccc075c1d9b/Makefile#L130-L132) in the root of the monorepo on the `op-program/v1.6.1-rc.1` tag: + + ```shell + make reproducible-prestate + ``` + + This will output the calculated prestates, which will look something like: + + ```shell + -------------------- Production Prestates -------------------- + + + Cannon64 Absolute prestate hash: + 0x03eb07101fbdeaf3f04d9fb76526362c1eea2824e4c6e970bdb19675b72e4fc8 + + -------------------- Experimental Prestates -------------------- + + CannonInterop Absolute prestate hash: + 0x03fc3b4d091527d53f1ff369ea8ed65e5e17cc7fc98ebf75380238151cdc949c + + Cannon64Next Absolute prestate hash: + 0x03eb07101fbdeaf3f04d9fb76526362c1eea2824e4c6e970bdb19675b72e4fc8 + ``` + + * The "Cannon64" hash is the 64-bit prestate. + + Verify that your target prestate was calculated as expected and matches the corresponding entry in + [standard-prestates.toml](https://github.com/ethereum-optimism/superchain-registry/blob/main/validation/standard/standard-prestates.toml). + + ### Upload your new preimage file + + During the previous step, you also generated the preimage of the absolute prestate, which is the op-program serialized into a binary file. You'll find that new file at `optimism/op-program/bin/prestate-mt64.bin.gz`. Rename that file to have the absolute prestate hash as the filename so it looks like `PRESTATEHASH.bin.gz`. + + Upload that file to where you're storing your other absolute preimage files. This should be the location where you're pointing your `--cannon-prestates-url` at. The `op-challenger` will grab this file and use it when it needs to challenge games. + + ### Execute the upgrade + + Once your `op-challenger` is ready with the new preimage, you can execute the upgrade transaction. This should be done by making a delegatecall to the `upgrade()` function of the OP Contract Manager (at the address listed in [the registry](https://github.com/ethereum-optimism/superchain-registry/blob/6621a0f13ce523fe1bb8deea739fe37abe20f90d/validation/standard/standard-versions-mainnet.toml#L22). + + Please simulate and validate the expected output prior to executing the transaction. + + +## For users, developers and ecosystem tools + +You may want to migrate to the new `BlobGasUsed` header field now populated by the [DA Footprint Block Limit](https://github.com/ethereum-optimism/specs/blob/main/specs/protocol/jovian/exec-engine.md#da-footprint-block-limit). \ No newline at end of file From 8df1a66e48b26e479873d4464d3f9569bf3f15b2 Mon Sep 17 00:00:00 2001 From: Bradley Camacho <42678939+bradleycamacho@users.noreply.github.com> Date: Sun, 19 Oct 2025 20:59:26 -0700 Subject: [PATCH 02/17] Clarify --- notices/upgrade-17.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/notices/upgrade-17.mdx b/notices/upgrade-17.mdx index 37ac4ce97..f6208b6c9 100644 --- a/notices/upgrade-17.mdx +++ b/notices/upgrade-17.mdx @@ -24,8 +24,8 @@ For more information on the Isthmus implementation details, please review the [J ## For node operators Update your node software as soon as possible after release: -* Update `op-node` to X -* Update `op-geth` to X +* Update `op-node` to [NEED VERSION] +* Update `op-geth` to [NEED VERSION] ## For chain operators From 0f09ad20a132bb285be545a5bf25d356b433becf Mon Sep 17 00:00:00 2001 From: Bradley Camacho <42678939+bradleycamacho@users.noreply.github.com> Date: Sun, 19 Oct 2025 21:07:22 -0700 Subject: [PATCH 03/17] Copy edits --- notices/upgrade-17.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/notices/upgrade-17.mdx b/notices/upgrade-17.mdx index f6208b6c9..0bb4dace0 100644 --- a/notices/upgrade-17.mdx +++ b/notices/upgrade-17.mdx @@ -3,7 +3,7 @@ title: Upgrade 17 - Jovian Hard Fork description: Learn how to prepare for the Jovian hard fork --- -The Jovian hardfork is a proposed network upgrade for OPStack chains, which brings several improvements to the way rollup fees are calculated as well as performing a maintenance update to the fault proof virtual machine. +The Jovian hardfork is a proposed network upgrade for OP Stack chains, which brings several improvements to the way rollup fees are calculated as well as performing a maintenance update to the fault proof virtual machine. The Upgrade 17 protocol upgrade on the **Sepolia** Superchain will be executed on **Mon, Nov 3, 2025**, and the **Mainnet** Superchain will be activated on **Fri, Dec 12, 2025**. @@ -19,7 +19,7 @@ Upgrade 17 introduces the following changes: * **Minimum Base Fee and Data Availability Footprint Block Limit** which allows the L2 base fee to respond more rapidly to changes in block composition, particularly when this implies an increased demand on the rollup’s capacity to batch blocks to the data availability layer. * **Operator Fee Fix** which modifies the existing, optional “operator fee” feature. -For more information on the Isthmus implementation details, please review the [Jovian specifications](https://specs.optimism.io/protocol/jovian/overview.html). +For more information on the Jovian implementation details, please review the [Jovian specifications](https://specs.optimism.io/protocol/jovian/overview.html). ## For node operators From 3210bb6903d6ea3b4b5d47bfeab3610cff71d72b Mon Sep 17 00:00:00 2001 From: Bradley Camacho <42678939+bradleycamacho@users.noreply.github.com> Date: Mon, 20 Oct 2025 08:59:34 -0700 Subject: [PATCH 04/17] Fix activation date --- notices/upgrade-17.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/notices/upgrade-17.mdx b/notices/upgrade-17.mdx index 0bb4dace0..14667999d 100644 --- a/notices/upgrade-17.mdx +++ b/notices/upgrade-17.mdx @@ -6,7 +6,7 @@ description: Learn how to prepare for the Jovian hard fork The Jovian hardfork is a proposed network upgrade for OP Stack chains, which brings several improvements to the way rollup fees are calculated as well as performing a maintenance update to the fault proof virtual machine. - The Upgrade 17 protocol upgrade on the **Sepolia** Superchain will be executed on **Mon, Nov 3, 2025**, and the **Mainnet** Superchain will be activated on **Fri, Dec 12, 2025**. + The Upgrade 17 protocol upgrade on the **Sepolia** Superchain will be executed on **Mon, Nov 3, 2025**, and the **Mainnet** Superchain will be activated on **Wed, Nov 12, 2025**. The upgrade will be executed on the following chains: `OP`, `Base`, `Soneium`, `Ink`, and `Unichain`. Execution times may vary depending on the current state of each chain. From fde46908390531995bfa2574642ea96c97d3798c Mon Sep 17 00:00:00 2001 From: Bradley Camacho <42678939+bradleycamacho@users.noreply.github.com> Date: Mon, 20 Oct 2025 12:53:30 -0700 Subject: [PATCH 05/17] Update blobGasUsed info --- notices/upgrade-17.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/notices/upgrade-17.mdx b/notices/upgrade-17.mdx index 14667999d..20899217a 100644 --- a/notices/upgrade-17.mdx +++ b/notices/upgrade-17.mdx @@ -88,4 +88,4 @@ Chains running permissionless fault proofs will need to deploy new dispute game ## For users, developers and ecosystem tools -You may want to migrate to the new `BlobGasUsed` header field now populated by the [DA Footprint Block Limit](https://github.com/ethereum-optimism/specs/blob/main/specs/protocol/jovian/exec-engine.md#da-footprint-block-limit). \ No newline at end of file +The `blobGasUsed` property of each block header is set to that block's `daFootprint`. Note that since Ecotone it was set to 0, as OP Stack chains don't support blobs. It is now repurposed to store the DA footprint. For more information, see the [specs](https://specs.optimism.io/protocol/jovian/exec-engine.html#da-footprint-block-limit). \ No newline at end of file From 9b041ead93186c6c551889ff73275cf4d257085d Mon Sep 17 00:00:00 2001 From: Bradley Camacho <42678939+bradleycamacho@users.noreply.github.com> Date: Mon, 20 Oct 2025 12:54:56 -0700 Subject: [PATCH 06/17] fix formatting --- notices/upgrade-17.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/notices/upgrade-17.mdx b/notices/upgrade-17.mdx index 20899217a..effa83057 100644 --- a/notices/upgrade-17.mdx +++ b/notices/upgrade-17.mdx @@ -88,4 +88,4 @@ Chains running permissionless fault proofs will need to deploy new dispute game ## For users, developers and ecosystem tools -The `blobGasUsed` property of each block header is set to that block's `daFootprint`. Note that since Ecotone it was set to 0, as OP Stack chains don't support blobs. It is now repurposed to store the DA footprint. For more information, see the [specs](https://specs.optimism.io/protocol/jovian/exec-engine.html#da-footprint-block-limit). \ No newline at end of file +The `blobGasUsed` property of each block header is set to that block's `daFootprint`. Note that since Ecotone it was set to `0`, as OP Stack chains don't support blobs. It is now repurposed to store the DA footprint. For more information, see the [specs](https://specs.optimism.io/protocol/jovian/exec-engine.html#da-footprint-block-limit). \ No newline at end of file From 5db8625234f655bad6eea1858559478621b7fb24 Mon Sep 17 00:00:00 2001 From: Wazabie <48911235+Wazabie@users.noreply.github.com> Date: Fri, 24 Oct 2025 09:14:10 -0400 Subject: [PATCH 07/17] Revise Upgrade 17 details in upgrade-17.mdx Updated activation times and chains for Upgrade 17. --- notices/upgrade-17.mdx | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/notices/upgrade-17.mdx b/notices/upgrade-17.mdx index effa83057..4858c04cc 100644 --- a/notices/upgrade-17.mdx +++ b/notices/upgrade-17.mdx @@ -6,9 +6,11 @@ description: Learn how to prepare for the Jovian hard fork The Jovian hardfork is a proposed network upgrade for OP Stack chains, which brings several improvements to the way rollup fees are calculated as well as performing a maintenance update to the fault proof virtual machine. - The Upgrade 17 protocol upgrade on the **Sepolia** Superchain will be executed on **Mon, Nov 3, 2025**, and the **Mainnet** Superchain will be activated on **Wed, Nov 12, 2025**. - The upgrade will be executed on the following chains: `OP`, `Base`, `Soneium`, `Ink`, and `Unichain`. - Execution times may vary depending on the current state of each chain. + Jovian activation times are: **Tuesday, Nov 4, 2025** on **Sepolia** Superchain, and **Tuesday, Nov 18, 2025** on **Mainnet** Superchain. + + The upgrade will be executed by OP Labs on the following chains: `OP`, `Base`, `Soneium`, `Ink`, `Unichain`, `Metal`, `Mode`, `Zora`, `Arena-Z`, `Swell` (mainnet only). + +Chains that inherit activations from the Superchain Registry and are NOT listed above must perform the on-chain upgrade themselves before the activation time. ## What's included in Upgrade 16a @@ -88,4 +90,4 @@ Chains running permissionless fault proofs will need to deploy new dispute game ## For users, developers and ecosystem tools -The `blobGasUsed` property of each block header is set to that block's `daFootprint`. Note that since Ecotone it was set to `0`, as OP Stack chains don't support blobs. It is now repurposed to store the DA footprint. For more information, see the [specs](https://specs.optimism.io/protocol/jovian/exec-engine.html#da-footprint-block-limit). \ No newline at end of file +The `blobGasUsed` property of each block header is set to that block's `daFootprint`. Note that since Ecotone it was set to `0`, as OP Stack chains don't support blobs. It is now repurposed to store the DA footprint. If you want to disable it, set a scalar of 1. Setting 0 (or never setting the scalar value) implies the default value of the scalar, which can be updated in future forks. For more information, see the [specs](https://specs.optimism.io/protocol/jovian/exec-engine.html#da-footprint-block-limit). From ae65b4138e128e353929c522bb7d1a35b8ac174e Mon Sep 17 00:00:00 2001 From: Wazabie <48911235+Wazabie@users.noreply.github.com> Date: Fri, 24 Oct 2025 09:40:06 -0400 Subject: [PATCH 08/17] Update upgrade-17.mdx for Upgrade 17 changes Upgrade 17 introduces support for Go 1.24, configurable minimum base fee, and data availability footprint block limit. It also includes an operator fee fix for more flexible configurations. --- notices/upgrade-17.mdx | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/notices/upgrade-17.mdx b/notices/upgrade-17.mdx index 4858c04cc..936dae997 100644 --- a/notices/upgrade-17.mdx +++ b/notices/upgrade-17.mdx @@ -17,12 +17,24 @@ Chains that inherit activations from the Superchain Registry and are NOT listed Upgrade 17 introduces the following changes: -* **Cannon is being updated to support Go 1.24**, which allows the OP Stack to stay up to date with upstream changes to go-ethereum (which are included in op-geth) -* **Minimum Base Fee and Data Availability Footprint Block Limit** which allows the L2 base fee to respond more rapidly to changes in block composition, particularly when this implies an increased demand on the rollup’s capacity to batch blocks to the data availability layer. -* **Operator Fee Fix** which modifies the existing, optional “operator fee” feature. +* **Cannon Go 1.24 support:** upgrading the on-chain fault proof virtual machine implementation to support Go 1.24. +* **Configurable Minimum Base Fee:** allows chain operators to specify a minimum base fee to shorten the length of priority fee auctions (disabled by default). +* **Data Availability Footprint Block Limit:** adds an in-protocol limit to estimated DA usage of transactions to prevent DA spam and priority fee auctions. (enabled by default; can be disabled via zero scalar on-chain). +* **Operator Fee Fix:** enables more flexible fee configurations for rollup operators and lays groundwork for future custom gas token support. If you are running operator fee with nonzero scalars, make sure to adjust them before activating the fork to avoid overcharging users. For more information on the Jovian implementation details, please review the [Jovian specifications](https://specs.optimism.io/protocol/jovian/overview.html). +## For users, developers and ecosystem tools + +Breaking Changes - Block header changes: + +* `extraData` field is extended (for the [minBaseFee](https://specs.optimism.io/protocol/jovian/exec-engine.html#minimum-base-fee-in-block-header)) +* `blobGasUsed` may become nonzero when the DA footprint feature is enabled + +The `blobGasUsed` property of each block header is set to that block's `daFootprint`. Note that since Ecotone it was set to `0`, as OP Stack chains don't support blobs. It is now repurposed to store the DA footprint. If you want to disable it, set a scalar of 1. Setting 0 (or never setting the scalar value) implies the default value of the scalar, which can be updated in future forks. Please ensure your nodes and tooling can handle these updated header semantics. + +For more information, see the [specs](https://specs.optimism.io/protocol/jovian/exec-engine.html#da-footprint-block-limit). + ## For node operators Update your node software as soon as possible after release: @@ -87,7 +99,3 @@ Chains running permissionless fault proofs will need to deploy new dispute game Please simulate and validate the expected output prior to executing the transaction. - -## For users, developers and ecosystem tools - -The `blobGasUsed` property of each block header is set to that block's `daFootprint`. Note that since Ecotone it was set to `0`, as OP Stack chains don't support blobs. It is now repurposed to store the DA footprint. If you want to disable it, set a scalar of 1. Setting 0 (or never setting the scalar value) implies the default value of the scalar, which can be updated in future forks. For more information, see the [specs](https://specs.optimism.io/protocol/jovian/exec-engine.html#da-footprint-block-limit). From 8fe483851c835b1eb15b153bb150aed638f23716 Mon Sep 17 00:00:00 2001 From: Wazabie <48911235+Wazabie@users.noreply.github.com> Date: Fri, 24 Oct 2025 09:43:43 -0400 Subject: [PATCH 09/17] Update upgrade-17.mdx --- notices/upgrade-17.mdx | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/notices/upgrade-17.mdx b/notices/upgrade-17.mdx index 936dae997..7d8cbd671 100644 --- a/notices/upgrade-17.mdx +++ b/notices/upgrade-17.mdx @@ -24,9 +24,7 @@ Upgrade 17 introduces the following changes: For more information on the Jovian implementation details, please review the [Jovian specifications](https://specs.optimism.io/protocol/jovian/overview.html). -## For users, developers and ecosystem tools - -Breaking Changes - Block header changes: +## Breaking Changes - Block header changes * `extraData` field is extended (for the [minBaseFee](https://specs.optimism.io/protocol/jovian/exec-engine.html#minimum-base-fee-in-block-header)) * `blobGasUsed` may become nonzero when the DA footprint feature is enabled From 6910436d54fc2c94a251695c6eebf5673c34aaaa Mon Sep 17 00:00:00 2001 From: Wazabie <48911235+Wazabie@users.noreply.github.com> Date: Fri, 24 Oct 2025 11:34:59 -0400 Subject: [PATCH 10/17] Update upgrade notice for clarity on activations Clarified language regarding on-chain upgrade requirements. --- notices/upgrade-17.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/notices/upgrade-17.mdx b/notices/upgrade-17.mdx index 7d8cbd671..9ee8db30a 100644 --- a/notices/upgrade-17.mdx +++ b/notices/upgrade-17.mdx @@ -10,7 +10,7 @@ The Jovian hardfork is a proposed network upgrade for OP Stack chains, which bri The upgrade will be executed by OP Labs on the following chains: `OP`, `Base`, `Soneium`, `Ink`, `Unichain`, `Metal`, `Mode`, `Zora`, `Arena-Z`, `Swell` (mainnet only). -Chains that inherit activations from the Superchain Registry and are NOT listed above must perform the on-chain upgrade themselves before the activation time. +Chains that inherit activations from the Superchain Registry and are NOT listed above must perform the upgrade themselves before the activation time. To check if you are inheriting the activation time automatically, see if your chain's [Superchain Registry toml file](https://github.com/ethereum-optimism/superchain-registry/tree/main/superchain/configs) includes the Jovian activation and the superchain_time. ## What's included in Upgrade 16a From 26bdce15605453d821f98764466b62b46ed5207d Mon Sep 17 00:00:00 2001 From: Wazabie <48911235+Wazabie@users.noreply.github.com> Date: Fri, 24 Oct 2025 11:44:12 -0400 Subject: [PATCH 11/17] Update upgrade-17.mdx --- notices/upgrade-17.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/notices/upgrade-17.mdx b/notices/upgrade-17.mdx index 9ee8db30a..e9b980297 100644 --- a/notices/upgrade-17.mdx +++ b/notices/upgrade-17.mdx @@ -13,7 +13,7 @@ The Jovian hardfork is a proposed network upgrade for OP Stack chains, which bri Chains that inherit activations from the Superchain Registry and are NOT listed above must perform the upgrade themselves before the activation time. To check if you are inheriting the activation time automatically, see if your chain's [Superchain Registry toml file](https://github.com/ethereum-optimism/superchain-registry/tree/main/superchain/configs) includes the Jovian activation and the superchain_time. -## What's included in Upgrade 16a +## What's included in Upgrade 17 Upgrade 17 introduces the following changes: From bc176f42c1c8c6ee47abc6d494a71a34f4143512 Mon Sep 17 00:00:00 2001 From: soyboy Date: Wed, 29 Oct 2025 15:43:34 -0700 Subject: [PATCH 12/17] making some updates --- notices/upgrade-17.mdx | 58 +++++++++++++++++++++++------------------- 1 file changed, 32 insertions(+), 26 deletions(-) diff --git a/notices/upgrade-17.mdx b/notices/upgrade-17.mdx index e9b980297..56918ff07 100644 --- a/notices/upgrade-17.mdx +++ b/notices/upgrade-17.mdx @@ -6,11 +6,13 @@ description: Learn how to prepare for the Jovian hard fork The Jovian hardfork is a proposed network upgrade for OP Stack chains, which brings several improvements to the way rollup fees are calculated as well as performing a maintenance update to the fault proof virtual machine. - Jovian activation times are: **Tuesday, Nov 4, 2025** on **Sepolia** Superchain, and **Tuesday, Nov 18, 2025** on **Mainnet** Superchain. + The Jovian hard fork for the Sepolia Superchain will be activated at Wed 12 Nov 2025 16:00:01 UTC (`1762963201`) and the Mainnet Superchain will be activated at Tue 25 Nov 2025 16:00:01 UTC (`1764086401`). - The upgrade will be executed by OP Labs on the following chains: `OP`, `Base`, `Soneium`, `Ink`, `Unichain`, `Metal`, `Mode`, `Zora`, `Arena-Z`, `Swell` (mainnet only). + The upgrade will be executed by OP Labs on the following chains: `OP`, `Base`, `Soneium`, `Ink`, `Unichain`, `Metal`, `Mode`, `Zora`, `Arena-Z`, `Swell` (Swell Mainnet only). -Chains that inherit activations from the Superchain Registry and are NOT listed above must perform the upgrade themselves before the activation time. To check if you are inheriting the activation time automatically, see if your chain's [Superchain Registry toml file](https://github.com/ethereum-optimism/superchain-registry/tree/main/superchain/configs) includes the Jovian activation and the superchain_time. + Chains that inherit activations from the Superchain Registry and are NOT listed above must perform the upgrade themselves before the activation time. To check if you are inheriting the activation time automatically, see if your chain's [Superchain Registry toml file](https://github.com/ethereum-optimism/superchain-registry/tree/main/superchain/configs) includes the Jovian activation and the `superchain_time` field. + + Additionally, Swell Mainnet will activate the Isthmus hard fork at Tue 25 Nov 2025 04:00:01 UTC (`1764043201`). ## What's included in Upgrade 17 @@ -29,71 +31,75 @@ For more information on the Jovian implementation details, please review the [Jo * `extraData` field is extended (for the [minBaseFee](https://specs.optimism.io/protocol/jovian/exec-engine.html#minimum-base-fee-in-block-header)) * `blobGasUsed` may become nonzero when the DA footprint feature is enabled -The `blobGasUsed` property of each block header is set to that block's `daFootprint`. Note that since Ecotone it was set to `0`, as OP Stack chains don't support blobs. It is now repurposed to store the DA footprint. If you want to disable it, set a scalar of 1. Setting 0 (or never setting the scalar value) implies the default value of the scalar, which can be updated in future forks. Please ensure your nodes and tooling can handle these updated header semantics. +The `blobGasUsed` property of each block header is set to that block's `daFootprint`. Note that since Ecotone it was set to `0`, as OP Stack chains don't support blobs. It is now repurposed to store the DA footprint. If you want to disable it, set a scalar of 1. Setting 0 (or never setting the scalar value) implies the default value of the scalar, which can be updated in future forks. Please ensure your nodes and tooling can handle these updated header semantics. For more information, see the [specs](https://specs.optimism.io/protocol/jovian/exec-engine.html#da-footprint-block-limit). ## For node operators Update your node software as soon as possible after release: + * Update `op-node` to [NEED VERSION] * Update `op-geth` to [NEED VERSION] ## For chain operators +Chain operators must complete the following tasks: + +* Update `op-challenger` to [NEED VERSION] + ### For permissionless fault proof enabled chains Chains running permissionless fault proofs will need to deploy new dispute game contracts with new absolute prestates. - ### Verify the new absolute prestate - - - As of upgrade 14, the 64 bit multi-threaded version of cannon is utilized. - + - The absolute prestate is generated with the [op-program/v1.6.1-rc.1](https://github.com/ethereum-optimism/optimism/tree/op-program/v1.6.1-rc.1). You can use this new absolute prestate `0x03eb07101fbdeaf3f04d9fb76526362c1eea2824e4c6e970bdb19675b72e4fc8` for the following chains: + The absolute prestate is generated with the [op-program/v1.8.0-rc.3](https://github.com/ethereum-optimism/optimism/tree/op-program/v1.8.0-rc.3). You can use this new absolute prestate `0x03799051d2bfe459127d4597f469f535ff1bd2a6e1e2134443167620871c11f3` for the following chains: - * Mainnet and Sepolia: `OP`, `Base`, `Soneium`, `Ink`and `Unichain` + * Mainnet and Sepolia: `OP`, `Base`, `Soneium`, `Ink`, `Unichain`, `Metal`, `Mode`, `Zora`, `Arena-Z`, and `Swell` (Swell Mainnet only). - You can verify this absolute prestate by running the following [command](https://github.com/ethereum-optimism/optimism/blob/d6fb90dd489e39efa206b55200766ccc075c1d9b/Makefile#L130-L132) in the root of the monorepo on the `op-program/v1.6.1-rc.1` tag: + You can verify this absolute prestate by running the following [command](https://github.com/ethereum-optimism/optimism/blob/3ebc32348de4bb064990d117d2dcfa1e115e187b/Makefile#L134-L136) in the root of the monorepo on the `op-program/v1.8.0-rc.3` tag: ```shell make reproducible-prestate ``` - This will output the calculated prestates, which will look something like: + This will output the calculated prestates, the tail end of the output should look like this: ```shell -------------------- Production Prestates -------------------- - Cannon64 Absolute prestate hash: - 0x03eb07101fbdeaf3f04d9fb76526362c1eea2824e4c6e970bdb19675b72e4fc8 + 0x03799051d2bfe459127d4597f469f535ff1bd2a6e1e2134443167620871c11f3 -------------------- Experimental Prestates -------------------- + Cannon64Next Absolute prestate hash: + 0x03799051d2bfe459127d4597f469f535ff1bd2a6e1e2134443167620871c11f3 + CannonInterop Absolute prestate hash: - 0x03fc3b4d091527d53f1ff369ea8ed65e5e17cc7fc98ebf75380238151cdc949c + 0x0375052a8100e452f648435703f524245fadce6122fa99046921bdd84683a982 - Cannon64Next Absolute prestate hash: - 0x03eb07101fbdeaf3f04d9fb76526362c1eea2824e4c6e970bdb19675b72e4fc8 + CannonInteropNext Absolute prestate hash: + 0x0375052a8100e452f648435703f524245fadce6122fa99046921bdd84683a982 ``` * The "Cannon64" hash is the 64-bit prestate. Verify that your target prestate was calculated as expected and matches the corresponding entry in [standard-prestates.toml](https://github.com/ethereum-optimism/superchain-registry/blob/main/validation/standard/standard-prestates.toml). + - ### Upload your new preimage file - - During the previous step, you also generated the preimage of the absolute prestate, which is the op-program serialized into a binary file. You'll find that new file at `optimism/op-program/bin/prestate-mt64.bin.gz`. Rename that file to have the absolute prestate hash as the filename so it looks like `PRESTATEHASH.bin.gz`. - - Upload that file to where you're storing your other absolute preimage files. This should be the location where you're pointing your `--cannon-prestates-url` at. The `op-challenger` will grab this file and use it when it needs to challenge games. + + During the previous step, you also generated the preimage of the absolute prestate, which is the op-program serialized into a binary file. You'll find that new file at `optimism/op-program/bin/prestate-mt64.bin.gz`. Rename that file to have the absolute prestate hash as the filename so it looks like `PRESTATEHASH.bin.gz`. - ### Execute the upgrade + Upload that file to where you're storing your other absolute preimage files. This should be the location where you're pointing your `--cannon-prestates-url` at. The `op-challenger` will grab this file and use it when it needs to challenge games. + - Once your `op-challenger` is ready with the new preimage, you can execute the upgrade transaction. This should be done by making a delegatecall to the `upgrade()` function of the OP Contract Manager (at the address listed in [the registry](https://github.com/ethereum-optimism/superchain-registry/blob/6621a0f13ce523fe1bb8deea739fe37abe20f90d/validation/standard/standard-versions-mainnet.toml#L22). + + Once your `op-challenger` is ready with the new preimage, you can execute the upgrade transaction. This should be done by making a delegatecall to the `upgrade()` function of the OP Contract Manager (at the address listed in [the registry](https://github.com/ethereum-optimism/superchain-registry/blob/6621a0f13ce523fe1bb8deea739fe37abe20f90d/validation/standard/standard-versions-mainnet.toml#L22). - Please simulate and validate the expected output prior to executing the transaction. + Please simulate and validate the expected output prior to executing the transaction. + From 3407b68807ea6f8186a3b0430b6133da4cd350f5 Mon Sep 17 00:00:00 2001 From: soyboy Date: Thu, 30 Oct 2025 16:59:37 -0700 Subject: [PATCH 13/17] clean up --- notices/upgrade-17.mdx | 52 ++++++++++++++++++++++++++++++++++++------ 1 file changed, 45 insertions(+), 7 deletions(-) diff --git a/notices/upgrade-17.mdx b/notices/upgrade-17.mdx index 56918ff07..8dedba4de 100644 --- a/notices/upgrade-17.mdx +++ b/notices/upgrade-17.mdx @@ -6,9 +6,9 @@ description: Learn how to prepare for the Jovian hard fork The Jovian hardfork is a proposed network upgrade for OP Stack chains, which brings several improvements to the way rollup fees are calculated as well as performing a maintenance update to the fault proof virtual machine. - The Jovian hard fork for the Sepolia Superchain will be activated at Wed 12 Nov 2025 16:00:01 UTC (`1762963201`) and the Mainnet Superchain will be activated at Tue 25 Nov 2025 16:00:01 UTC (`1764086401`). + The Jovian hard fork for the Sepolia Superchain will be activated at Wed 12 Nov 2025 16:00:01 UTC (`1762963201`) and the Mainnet Superchain will be optimistically activated at Tue 25 Nov 2025 16:00:01 UTC (`1764086401`) pending [governance approval](todo add proposal link). - The upgrade will be executed by OP Labs on the following chains: `OP`, `Base`, `Soneium`, `Ink`, `Unichain`, `Metal`, `Mode`, `Zora`, `Arena-Z`, `Swell` (Swell Mainnet only). + The upgrade will be executed by OP Labs on the following chains: `OP`, `Base`, `Soneium`, `Ink`, `Unichain`, `Metal`, `Mode`, `Zora`, `Arena-Z`, and `Swell` (Swell Mainnet only). Chains that inherit activations from the Superchain Registry and are NOT listed above must perform the upgrade themselves before the activation time. To check if you are inheriting the activation time automatically, see if your chain's [Superchain Registry toml file](https://github.com/ethereum-optimism/superchain-registry/tree/main/superchain/configs) includes the Jovian activation and the `superchain_time` field. @@ -37,16 +37,54 @@ For more information, see the [specs](https://specs.optimism.io/protocol/jovian/ ## For node operators -Update your node software as soon as possible after release: +These following steps are necessary for every node operator: -* Update `op-node` to [NEED VERSION] -* Update `op-geth` to [NEED VERSION] + + + The releases contain both the Jovian Mainnet and Sepolia Superchain activation timestamps. + + * [op-node/vX.Y.Z]() + * [op-geth/vX.Y.Z]() + * [op-reth/vX.Y.Z]() + + + + + If you are operating a node for an OP Chain that has opted into the [hardfork activation inheritance behavior](https://github.com/ethereum-optimism/superchain-registry/blob/main/docs/hardfork-activation-inheritance.md) and are utilizing the network flags, the Jovian activation date is part of the `op-node` and `op-geth` nodes. So, no action is needed for the sequencer after upgrading to the latest release. Please skip to [Step 3: Verify Your Configuration](#verify-your-configuration). + + The following chains are included but are subject to change: `OP`, `Base`, `Soneium`, `Ink`, `Unichain`, `Metal`, `Mode`, `Zora`, `Arena-Z`, and `Swell` (Swell Mainnet only). + + + For node operators of not using the [hardfork activation inheritance behavior](https://github.com/ethereum-optimism/superchain-registry/blob/main/docs/hardfork-activation-inheritance.md), you will need to manually configure the activation. This can be done one of two ways: + + * **Option 1:** Set the activation time via overrides (CLI) in both `op-node` and `op-geth`. These will need to be set on `op-node` and `op-geth` for the sequencer and all other nodes. + * **Option 2:** Set the activation time in the `rollup.json` for `op-node`. You will still need to set the `override.isthmus` flag in `op-geth` or set the time in the EL clients genesis file if you use this option. + + + + + Make the following checks to verify that your node is properly configured. + + * `op-node` and `op-geth` will log their configurations at startup + * Check that the Jovian time is set to its correct activation timestamp in the op-node startup logs + * Check that the Jovian time is set to its correct activation timestamp in the op-geth startup logs + + ## For chain operators -Chain operators must complete the following tasks: +Chain operators must prepare their nodes and additionally upgrade the following versions: + +* Update [op-challenger/vX.Y.Z]() +* Update [op-conductor/v0.9.0](https://github.com/ethereum-optimism/optimism/releases/tag/op-conductor%2Fv0.9.0) + + +For operators running the rust stack, you will need to update to the following versions: + + * [kona-node/v1.2.0](https://github.com/op-rs/kona/releases/tag/kona-node%2Fv1.2.0) + * [kona-client/v1.2.0](https://github.com/op-rs/kona/releases/tag/kona-client%2Fv1.2.0) + * [kona-host/v1.2.0](https://github.com/op-rs/kona/releases/tag/kona-host%2Fv1.2.0) -* Update `op-challenger` to [NEED VERSION] ### For permissionless fault proof enabled chains From 5793d8372bdfd8f3300846478bef2fe6f953ead3 Mon Sep 17 00:00:00 2001 From: soyboy Date: Thu, 30 Oct 2025 17:04:40 -0700 Subject: [PATCH 14/17] addressing Paul's review --- notices/upgrade-17.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/notices/upgrade-17.mdx b/notices/upgrade-17.mdx index 8dedba4de..d0a4967f4 100644 --- a/notices/upgrade-17.mdx +++ b/notices/upgrade-17.mdx @@ -75,7 +75,7 @@ These following steps are necessary for every node operator: Chain operators must prepare their nodes and additionally upgrade the following versions: -* Update [op-challenger/vX.Y.Z]() +* Update [op-challenger/v1.7.0-rc.1](https://github.com/ethereum-optimism/optimism/releases/tag/op-challenger%2Fv1.7.0-rc.1) * Update [op-conductor/v0.9.0](https://github.com/ethereum-optimism/optimism/releases/tag/op-conductor%2Fv0.9.0) @@ -95,7 +95,7 @@ Chains running permissionless fault proofs will need to deploy new dispute game The absolute prestate is generated with the [op-program/v1.8.0-rc.3](https://github.com/ethereum-optimism/optimism/tree/op-program/v1.8.0-rc.3). You can use this new absolute prestate `0x03799051d2bfe459127d4597f469f535ff1bd2a6e1e2134443167620871c11f3` for the following chains: - * Mainnet and Sepolia: `OP`, `Base`, `Soneium`, `Ink`, `Unichain`, `Metal`, `Mode`, `Zora`, `Arena-Z`, and `Swell` (Swell Mainnet only). + * Mainnet and Sepolia: `OP`, `Base`, `Ink`, and `Unichain` You can verify this absolute prestate by running the following [command](https://github.com/ethereum-optimism/optimism/blob/3ebc32348de4bb064990d117d2dcfa1e115e187b/Makefile#L134-L136) in the root of the monorepo on the `op-program/v1.8.0-rc.3` tag: From a8e18925c9bbd036966b627ac3067308fcf3cecd Mon Sep 17 00:00:00 2001 From: Wazabie <48911235+Wazabie@users.noreply.github.com> Date: Fri, 31 Oct 2025 10:12:23 -0400 Subject: [PATCH 15/17] Update upgrade-17.mdx --- notices/upgrade-17.mdx | 3 +++ 1 file changed, 3 insertions(+) diff --git a/notices/upgrade-17.mdx b/notices/upgrade-17.mdx index d0a4967f4..549a0a88a 100644 --- a/notices/upgrade-17.mdx +++ b/notices/upgrade-17.mdx @@ -22,7 +22,10 @@ Upgrade 17 introduces the following changes: * **Cannon Go 1.24 support:** upgrading the on-chain fault proof virtual machine implementation to support Go 1.24. * **Configurable Minimum Base Fee:** allows chain operators to specify a minimum base fee to shorten the length of priority fee auctions (disabled by default). * **Data Availability Footprint Block Limit:** adds an in-protocol limit to estimated DA usage of transactions to prevent DA spam and priority fee auctions. (enabled by default; can be disabled via zero scalar on-chain). + + * **Operator Fee Fix:** enables more flexible fee configurations for rollup operators and lays groundwork for future custom gas token support. If you are running operator fee with nonzero scalars, make sure to adjust them before activating the fork to avoid overcharging users. + For more information on the Jovian implementation details, please review the [Jovian specifications](https://specs.optimism.io/protocol/jovian/overview.html). From bcf055b842691d92bb7781c757b56dffcf10f0e0 Mon Sep 17 00:00:00 2001 From: Wazabie <48911235+Wazabie@users.noreply.github.com> Date: Fri, 31 Oct 2025 10:39:45 -0400 Subject: [PATCH 16/17] Fix formatting of Operator Fee Fix section --- notices/upgrade-17.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/notices/upgrade-17.mdx b/notices/upgrade-17.mdx index 549a0a88a..581b67977 100644 --- a/notices/upgrade-17.mdx +++ b/notices/upgrade-17.mdx @@ -24,7 +24,7 @@ Upgrade 17 introduces the following changes: * **Data Availability Footprint Block Limit:** adds an in-protocol limit to estimated DA usage of transactions to prevent DA spam and priority fee auctions. (enabled by default; can be disabled via zero scalar on-chain). -* **Operator Fee Fix:** enables more flexible fee configurations for rollup operators and lays groundwork for future custom gas token support. If you are running operator fee with nonzero scalars, make sure to adjust them before activating the fork to avoid overcharging users. +**Operator Fee Fix:** enables more flexible fee configurations for rollup operators and lays groundwork for future custom gas token support. If you are running operator fee with nonzero scalars, make sure to adjust them before activating the fork to avoid overcharging users. For more information on the Jovian implementation details, please review the [Jovian specifications](https://specs.optimism.io/protocol/jovian/overview.html). From a35bd5d5de1bb020752130dd3a0b1661bbc7b669 Mon Sep 17 00:00:00 2001 From: soyboy Date: Fri, 31 Oct 2025 07:57:45 -0700 Subject: [PATCH 17/17] updating links --- notices/upgrade-17.mdx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/notices/upgrade-17.mdx b/notices/upgrade-17.mdx index 581b67977..3b01206bc 100644 --- a/notices/upgrade-17.mdx +++ b/notices/upgrade-17.mdx @@ -46,9 +46,9 @@ These following steps are necessary for every node operator: The releases contain both the Jovian Mainnet and Sepolia Superchain activation timestamps. - * [op-node/vX.Y.Z]() - * [op-geth/vX.Y.Z]() - * [op-reth/vX.Y.Z]() + * [op-node/v1.16.0](https://github.com/ethereum-optimism/optimism/releases/tag/op-node%2Fv1.16.0) + * [op-geth/v1.101603.3](https://github.com/ethereum-optimism/op-geth/releases/tag/v1.101603.3) + * [op-reth version will be published next week]()