# Upgrade 21 - Interop Readiness

**URL:** <https://gov.optimism.io/t/upgrade-21-interop-readiness/10948>\
**Category:** Protocol Upgrade\
**Created:** [November 4, 2026, 9:19pm UTC](https://gov.optimism.io/t/upgrade-21-interop-readiness/10948 "2026-11-04T21:19:51Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![AndreaFederici](https://avatars.discourse-cdn.com/v4/letter/a/ecae2f/32.png) [@AndreaFederici](https://gov.optimism.io/u/AndreaFederici)\
**Post date:** [November 4, 2026, 9:19pm UTC](https://gov.optimism.io/t/upgrade-21-interop-readiness/10948/1 "2026-11-04T21:19:51Z")

</div>

### **Proposal Type:** Protocol Upgrade

Hi, I’m Andrea Federici, Senior Solutions Engineer at OP Labs. I prepared this proposal in collaboration with Matthew Cruz from the OP Labs team. Neither OP Labs nor I, nor any other entity mentioned, represent or speak on behalf of the Optimism Foundation.

### **Executive Summary**

Upgrade 21 is an L1 smart contract upgrade for OP Stack chains, shipped in `op-contracts/v9.0.0`. It has **no hardfork** and no activation timestamp: every change is applied through a signed `superchain-ops` execution on L1. It contains the following changes:

- **ETHLockbox as custody and pause identifier** — every chain gets an `ETHLockbox` that cannot be disabled, and it becomes the only identifier for a chain-specific pause. Chains whose ETH is still in the `OptimismPortal` have it moved into the lockbox in the upgrade transaction. Chains that already use a lockbox are unchanged. Custom gas token chains get a lockbox but keep custody in the portal.
- **Permissionless `deleteProvenWithdrawal`** — anyone can delete a withdrawal proof whose dispute game resolved in favor of the challenger or was blacklisted. Proofs on valid games are unaffected.
- **OPCM v9.0.0 and StandardValidator** — removes the `startingAnchorRoot` upgrade override, lowers batched-upgrade gas, and adds validator checks for the new lockbox and pause configuration.
- **L1 bridge hardening** — `OptimismPortal2` reverts a messenger withdrawal whose relay into the `L1CrossDomainMessenger` fails, so the withdrawal stays retryable, and the messenger reserves more gas to record a relay’s outcome, with the relay gas constants split into local and remote values.

### **Motivation**

Upgrade 21 is the set of L1 contract changes OP Stack chains need in place before interop ships: one custody model and one pause identifier through the `ETHLockbox` on every chain, permissionless cleanup of withdrawal proofs on resolved-against games, and hardening of the withdrawal path so a messenger withdrawal is never finalized without a recorded outcome.

**ETHLockbox.** Since Upgrade 16a, new chains are deployed without a lockbox and upgrades never change a chain’s lockbox status, so standard chains are split between two custody models. Each has its own pause identifier, the lockbox or the portal, so Guardian tooling, monitoring and integrations have to handle both cases, and upgrades run different code paths depending on the chain. Giving every chain a lockbox leaves one custody model and one pause identifier. It is also the starting point for interop: the interop migration requires the lockbox on every chain in the set.

**OPCM.** Lower gas for batched upgrades keeps multi-chain upgrade transactions under the [EIP-7825](https://eips.ethereum.org/EIPS/eip-7825) per-transaction gas cap.

**L1 bridge hardening.** The `L1CrossDomainMessenger` holds back gas from each message’s target call so it can record whether the message succeeded or failed; that record is what lets a failed message be replayed. U21 makes the portal revert if the messenger cannot record the outcome, so the withdrawal stays retryable, and raises the reserve so ordinary withdrawals either succeed or are recorded as failed and can be replayed. Splitting the constants into local and remote values also lets the L1 and L2 sides be tuned separately the next time either gas schedule changes.

### **Impacted Stakeholders and Expected Outcomes**

- **App developers and integrators:** Ordinary L2 contracts and transactions are not affected. Update an integration if it:
  - **Finalizes or relays withdrawals:** `finalizeWithdrawalTransaction` now reverts with `OptimismPortal_L1CDMCallFailed` when the call into the L1 messenger fails. Treat it as retryable with more gas. A messenger withdrawal that can never be relayed now stays proven but unfinalized, rather than being finalized as failed.
  - **Reads the messenger’s relay gas constants:** they are split into `LOCAL_*` and `REMOTE_*`. The `RELAY_*` getters remain as aliases of `REMOTE_*`, now on `IL1CrossDomainMessenger`.
  - **Reads the portal’s ETH balance, or filters `Paused` / `Unpaused` by the portal address:** use the `ETHLockbox` instead, from `OptimismPortal.ethLockbox()`. `OptimismPortal.paused()` is unchanged.
  - **Tracks withdrawal proofs:** handle the new `WithdrawalProofDeleted` event.

- **Users:** No action required. Existing proofs on valid games and in-flight withdrawals remain valid.
- **Node operators:** No action required. There is no L2 hardfork.
- **Chain operators:** Point Guardian pause tooling and monitoring at the chain’s `ETHLockbox`. Update `op-challenger` to [v1.11.0](https://github.com/ethereum-optimism/optimism/releases/tag/op-challenger%2Fv1.11.0); on permissionless chains in the superchain registry the upgrade sets the `kona-client/v1.9.0` absolute prestate on-chain, and `op-challenger` must be able to fetch it. On a chain that doesn’t have a lockbox yet, the upgrade reverts while the chain is paused under its `OptimismPortal` identifier, so an active pause isn’t silently dropped when the identifier moves to the lockbox. The outcome of this governance proposal will determine how Optimism Governed chains are upgraded. OP Enterprise customers who are not Optimism governed, can work with their Optimism point of contact directly for support. All other chains using the standard L1 bridge contracts must already be on Upgrade 20 (`op-contracts/v8.0.0`) and upgrade with the OPCM instance. Details are on the [Upgrade 21 notice page](https://docs.optimism.io/notices/upgrade-21).

### **Specifications**

**Blockspace Charter**

This Protocol Upgrade is scoped to the [Standard Rollup Charter](https://github.com/ethereum-optimism/OPerating-manual/blob/main/Standard%20Rollup%20Charter.md). The Charter’s Version Validation section moves to the Upgrade 21 OPCM and release in [OPerating-manual #73](https://github.com/ethereum-optimism/OPerating-manual/pull/73), to be merged after the vote as with Upgrade 20. The superchain-registry standard versions move to `op-contracts/v9.0.0` and its OPCM ([`op-contracts/v9.0.0` entry](https://github.com/ethereum-optimism/superchain-registry/blob/7e1be4543c870ec5ac3353ab0ecf4deab100602c/validation/standard/standard-versions-mainnet.toml#L8)).

**Technical Details**

- **L1 bridge hardening:** `OptimismPortal2.finalizeWithdrawalTransaction` reverts with `OptimismPortal_L1CDMCallFailed` when the sender is the `L2CrossDomainMessenger` and the call into the L1 messenger fails. `L1CrossDomainMessenger.relayMessage` copies the payload into memory before its gas check, so the copy no longer uses up the reserved gas. The relay gas constants are split into `LOCAL_*` (this chain’s relay) and `REMOTE_*` (`baseGas` charged for the other chain), and `LOCAL_RELAY_RESERVED_GAS` rises from 40,000 to 135,000 (`GasConstants.L1_RELAY_RESERVED_GAS` in the `op-contracts/v9.0.0` source, with a 15,000 gas-check buffer).
- **ETHLockbox:** [#22805](https://github.com/ethereum-optimism/optimism/pull/22805) enables a lockbox on every chain and moves the portal’s ETH into it on first activation. [#22760](https://github.com/ethereum-optimism/optimism/pull/22760) makes the lockbox the only chain-scoped pause identifier for the `OptimismPortal`, `SystemConfig`, `AnchorStateRegistry` and `DelayedWETH`; initializer argument types change, function selectors don’t. Spec: [specs#951](https://github.com/ethereum-optimism/specs/pull/951).
- **`deleteProvenWithdrawal(bytes32,address)`:** [#22669](https://github.com/ethereum-optimism/optimism/pull/22669). Spec: [specs#936](https://github.com/ethereum-optimism/specs/pull/936).
- **OPCM v9.0.0 and StandardValidator:** [#22939](https://github.com/ethereum-optimism/optimism/pull/22939), [#22959](https://github.com/ethereum-optimism/optimism/pull/22959), [#22919](https://github.com/ethereum-optimism/optimism/pull/22919), [#22471](https://github.com/ethereum-optimism/optimism/pull/22471), [#23134](https://github.com/ethereum-optimism/optimism/pull/23134).

**Contract Changes**

Release tag: [`op-contracts/v9.0.0`](https://github.com/ethereum-optimism/optimism/releases/tag/op-contracts%2Fv9.0.0), the same commit as `op-contracts/v9.0.0-rc.1` (`ba6fcad`), so the contracts deployed from rc.1 are the final release. Notable version changes (read from the `op-contracts/v9.0.0` source and the deployed implementations): `OPContractsManagerV2` 8.0.1 → 9.0.3, `OptimismPortal2` 5.8.0 → 6.1.0, `ETHLockbox` 1.3.1 → 2.0.0, `AnchorStateRegistry` 3.9.0 → 4.0.0, `DelayedWETH` 1.5.1 → 2.0.0, `OPContractsManagerStandardValidator` 3.3.0 → 4.1.1, `SystemConfig` 4.0.0 → 4.3.0, `SuperchainConfig` 2.4.3 → 2.5.0, `L1CrossDomainMessenger` 2.11.1 → 2.13.0.

The canonical OPCM address on Ethereum Mainnet is [`0x2d91e6f2bcf6cd1df90e1faf9714e18705ea331f`](https://github.com/ethereum-optimism/superchain-registry/blob/7e1be4543c870ec5ac3353ab0ecf4deab100602c/validation/standard/standard-versions-mainnet.toml#L8) (Sepolia: [`0x160f0fe4dc1b3f4026687e8dd4b7f800879939cc`](https://github.com/ethereum-optimism/superchain-registry/blob/7e1be4543c870ec5ac3353ab0ecf4deab100602c/validation/standard/standard-versions-sepolia.toml)), version 9.0.3, deployed on October 30, 2026 from the commit later tagged `op-contracts/v9.0.0` (first tagged `v9.0.0-rc.1`); the final release did not redeploy it. Chains must be upgraded via this address to meet the Standard Rollup Charter version criteria. Full diff: [op-contracts/v8.0.0…op-contracts/v9.0.0](https://github.com/ethereum-optimism/optimism/compare/op-contracts/v8.0.0...op-contracts/v9.0.0).

**Absolute Prestate**

There is no hardfork and no chain configuration change. The upgrade re-registers the `SUPER_CANNON_KONA` game on each permissionless chain with the `kona-client/v1.9.0` `cannon64-kona-interop` prestate `0x03e5a54835d39c1d83b198314473e1f111c3539c04f65c3e8a9b8ccebe3737c9` ([superchain-registry standard-prestates.toml](https://github.com/ethereum-optimism/superchain-registry/blob/7e1be4543c870ec5ac3353ab0ecf4deab100602c/validation/standard/standard-prestates.toml#L498)), the version listed on the notice page.

**Calldata**

Ethereum Mainnet, one `Multicall3DelegateCall.aggregate3` from the L1 ProxyAdminOwner: `OPCM.upgradeSuperchain` on the shared `SuperchainConfig`, then `OPCM.upgrade` for OP Mainnet, Ink, Soneium and Unichain, all against the OPCM `0x2d91e6f2bcf6cd1df90e1faf9714e18705ea331f` (superchain-ops task `eth/084`).

```jsx
0x82ad56cb0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000009c000000000000000000000000000000000000000000000000000000000000011c000000000000000000000000000000000000000000000000000000000000019a00000000000000000000000002d91e6f2bcf6cd1df90e1faf9714e18705ea331f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000008486fe1c66000000000000000000000000000000000000000000000000000000000000002000000000000000000000000095703e0982140d16f8eba6d158fccede42f04a4c00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002d91e6f2bcf6cd1df90e1faf9714e18705ea331f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000007648a847e2e0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000229047fed2591dbec1ef1118d64f7af3db9eb29000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000540000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002a00000000000000000000000000000000000000000000000000000000000000360000000000000000000000000000000000000000000000000000000000000042000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000020000000000000000000000000c27ba3e0fc01567a5e57ae0c391aa98cecba5be00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000011c37937e08000000000000000000000000000000000000000000000000000000000000000000090000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000002003e5a54835d39c1d83b198314473e1f111c3539c04f65c3e8a9b8ccebe3737c900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000276f76657272696465732e6366672e7374617274696e6752657370656374656447616d655479706500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000090000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000185065726d697474656450726f78794465706c6f796d656e740000000000000000000000000000000000000000000000000000000000000000000000000000000a4554484c6f636b626f7800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002d91e6f2bcf6cd1df90e1faf9714e18705ea331f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000007648a847e2e000000000000000000000000000000000000000000000000000000000000002000000000000000000000000062c0a111929fa32cec2f76adba54c16afb6e836400000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000540000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000003600000000000000000000000000000000000000000000000000000000000000420000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000200000000000000000000000003832bfbef03173e4c49a00ec0dd178817a02d1770000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000011c37937e08000000000000000000000000000000000000000000000000000000000000000000090000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000002003e5a54835d39c1d83b198314473e1f111c3539c04f65c3e8a9b8ccebe3737c900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000276f76657272696465732e6366672e7374617274696e6752657370656374656447616d655479706500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000090000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000185065726d697474656450726f78794465706c6f796d656e740000000000000000000000000000000000000000000000000000000000000000000000000000000a4554484c6f636b626f7800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002d91e6f2bcf6cd1df90e1faf9714e18705ea331f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000007448a847e2e00000000000000000000000000000000000000000000000000000000000000200000000000000000000000007a8ed66b319911a0f3e7288bddab30d9c0c875c300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000520000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002a00000000000000000000000000000000000000000000000000000000000000360000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000020000000000000000000000000400c164c4a8ca84385b70eed6eb03ea847c8e1b80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000090000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000276f76657272696465732e6366672e7374617274696e6752657370656374656447616d655479706500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000185065726d697474656450726f78794465706c6f796d656e740000000000000000000000000000000000000000000000000000000000000000000000000000000a4554484c6f636b626f7800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002d91e6f2bcf6cd1df90e1faf9714e18705ea331f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000007648a847e2e0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000c407398d063f942febbcc6f80a156b47f3f1bda600000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000540000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002a0000000000000000000000000000000000000000000000000000000000000036000000000000000000000000000000000000000000000000000000000000004200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000002000000000000000000000000086b392ca30ad7453c8d88b56eb5a04fd0e2175b70000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000011c37937e08000000000000000000000000000000000000000000000000000000000000000000090000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000002003e5a54835d39c1d83b198314473e1f111c3539c04f65c3e8a9b8ccebe3737c900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000276f76657272696465732e6366672e7374617274696e6752657370656374656447616d655479706500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000090000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000185065726d697474656450726f78794465706c6f796d656e740000000000000000000000000000000000000000000000000000000000000000000000000000000a4554484c6f636b626f780000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

```

### **Impact Summary**

- **Performance:** No anticipated downtime. Contracts-only upgrade.
- **Custody and pause:** The chains in this proposal already use an `ETHLockbox`, so no ETH moves and their pause identifier is unchanged.
- **Withdrawals:** Existing proofs and in-flight withdrawals remain valid. An under-gassed messenger withdrawal now reverts and can be retried.
- **Documentation:** The Upgrade 21 notice page covers operator and developer details.

### **Precommitment Impact Review**

This Upgrade Proposal does not impact any of the precommitments in the Standard Rollup Charter.

- Collective Fee Take: no change.
- Governor/Servicer Role Separation: no change. The Guardian keeps its pause authority; only the address a chain-specific pause is keyed on changes.
- Ossified GasLimits: no change. The messenger gas constants are internal to the L1 bridge.
- Direct Fee Margin Controls: no change.

### **Security Considerations**

We have done [threat modelling](https://www.optimism.io/blog/using-threat-modelling-as-a-strategic-development-tool) for the new features in this release. Spearbit/Cantina audited the full contracts diff since `op-contracts/v8.0.0`, from October 14 to October 28, 2026; the fix review is in progress and the report will be published in the optimism monorepo [security reviews](https://github.com/ethereum-optimism/optimism/tree/develop/docs/security-reviews#security-reviews) before mainnet execution. Areas of focus included:

- The portal revert does not leave valid withdrawals unfinalizable, and the messenger’s reserved gas covers recording a relay outcome.
- ETH custody is preserved exactly when the portal’s balance moves into the lockbox.
- Guardian pause authority and the air-gap are preserved when the pause identifier moves.
- Re-initialization uses the correct values, and batched upgrades fit under the [EIP-7825](https://eips.ethereum.org/EIPS/eip-7825) gas cap.

### **Action Plan**

- **Audit:** completed October 28, 2026; report to be published in the optimism monorepo [security reviews](https://github.com/ethereum-optimism/optimism/tree/develop/docs/security-reviews#security-reviews) before mainnet execution.
- **Governance proposal published:** Wednesday, Nov 4, 2026
- **Sepolia execution: Monday, Nov 9, 2026.** Chains: OP Sepolia, Ink Sepolia, Soneium Minato, Unichain Sepolia.
- **Governance veto period ends:** Wednesday, Nov 11, 2026
- **Mainnet execution: Monday, Nov 16, 2026** , pending governance approval and a 7-day Sepolia bake period. Chains: OP Mainnet, Ink, Soneium, Unichain.

If the bake period or the audit fix review surfaces an issue, mainnet execution moves. OP Enterprise customers, bridges and integrators were notified in advance; the notice page covers everyone else.

### **Conclusion**

Upgrade 21 gives every chain one custody model and one pause identifier through the `ETHLockbox` and hardens the L1 withdrawal path, ahead of interop. With no L2 hardfork, risk is limited to the L1 execution windows. We ask the Collective to approve Upgrade 21.
