From 1367722692db7bfe3ee5634d2de1f20465e5b920 Mon Sep 17 00:00:00 2001
From: Bradley Camacho <42678939+bradleycamacho@users.noreply.github.com>
Date: Mon, 12 May 2025 10:34:22 -0700
Subject: [PATCH 01/21] Add message expiration doc
---
pages/interop/_meta.json | 1 +
pages/interop/message-expiration.mdx | 44 ++++++++++++++++++++++++++++
words.txt | 6 ++--
3 files changed, 48 insertions(+), 3 deletions(-)
create mode 100644 pages/interop/message-expiration.mdx
diff --git a/pages/interop/_meta.json b/pages/interop/_meta.json
index 6eeac3008..8506dbcd9 100644
--- a/pages/interop/_meta.json
+++ b/pages/interop/_meta.json
@@ -12,6 +12,7 @@
"explainer": "Superchain interop explainer",
"predeploy": "Superchain interop predeploys",
"message-passing": "Superchain interop message passing",
+ "message-expiration": "Message expiration",
"reading-logs": "Reading logs",
"op-supervisor": "OP Supervisor",
"superchain-eth-bridge": "Superchain ETH bridge",
diff --git a/pages/interop/message-expiration.mdx b/pages/interop/message-expiration.mdx
new file mode 100644
index 000000000..eb7b96a79
--- /dev/null
+++ b/pages/interop/message-expiration.mdx
@@ -0,0 +1,44 @@
+---
+title: Message expiration
+description: What message expiration is, why it exists, and how to reemit a previously sent message if it has expired and was never relayed.
+lang: en-US
+content_type: guide
+topic: message-expiration
+personas:
+ - protocol-developer
+ - chain-operator
+ - app-developer
+categories:
+ - protocol
+ - interoperability
+ - cross-chain-messaging
+ - security
+ - block-safety
+ - message-passing
+ - reorgs
+ - superchain
+is_imported_content: 'false'
+---
+
+# Message expiration
+
+[Initiating messages](/interop/message-passing) sent between OP Stack chains have a limited validity period called the expiry window. Once this window elapses, the initiating message becomes invalid and can no longer be executed on the destination chain.
+
+If a message expires before being relayed, developers can reemit the message on the source chain. This triggers a fresh `SentMessage` event, allowing offchain infrastructure to pick it up and relay it again ensuring successful delivery.
+
+## The expiry window
+
+The expiry window is an offchain constant that defines how long a cross-chain message remains valid. For the [Superchain interop cluster](/interop/explainer), messages must be executed within 7 days (604,800 seconds) of the initiating message being sent.
+
+After this period, a message can no longer be executed on the destination chain unless the event is remitted on the source chain.
+
+## Reemitting an expired message
+
+The `resendMessage` function on the [`L2ToL2CrossDomainMessenger`](/interop/message-passing) contract allows developers to reemit a message that was sent but not yet relayed.
+
+This emits a new `SentMessage` log with the same content as the original message, enabling offchain relayers to pick it up again.
+
+The process to reemit an expired message:
+
+1. Call `resendMessage(messageHash)` on the origin chain to reemit the message event. The contract verifies the message hash was originally sent.
+2. Relay the new message as normal.
diff --git a/words.txt b/words.txt
index a3420530c..e91e82644 100644
--- a/words.txt
+++ b/words.txt
@@ -91,12 +91,10 @@ datacap
DATACAP
datadir
DATADIR
+devdocs
devnet
Devnet
devnets
-Devs
-Devdocs
-devdocs
Devnets
direnv
disabletxpoolgossip
@@ -334,6 +332,8 @@ quicknode
Quicknode
quickstarts
rebalancing
+reemit
+Reemitting
regenesis
Regenesis
Reimagine
From 4b1224e540b99e97962eb48667693d40472d6676 Mon Sep 17 00:00:00 2001
From: Bradley Camacho <42678939+bradleycamacho@users.noreply.github.com>
Date: Thu, 15 May 2025 11:04:07 -0700
Subject: [PATCH 02/21] Auto-fix: Update breadcrumbs, spelling dictionary and
other automated fixes
---
words.txt | 230 +++++++++++++++++++++++++++---------------------------
1 file changed, 115 insertions(+), 115 deletions(-)
diff --git a/words.txt b/words.txt
index e91e82644..29c6a43b7 100644
--- a/words.txt
+++ b/words.txt
@@ -1,7 +1,7 @@
-accountqueue
ACCOUNTQUEUE
-accountslots
+accountqueue
ACCOUNTSLOTS
+accountslots
ACDC
ADDI
ADDIU
@@ -9,58 +9,58 @@ ADDU
airgap
Allnodes
allocs
-alphanet
Alphanet
-alphanets
+alphanet
Alphanets
+alphanets
altda
ANDI
Ankr
Apeworx
Arweave
authrpc
-autorelay
Autorelay
+autorelay
autorelayer
basefee
bcde
-betanet
Betanet
-betanets
+betanet
Betanets
+betanets
BGEZ
BGTZ
Biconomy
BLEZ
-blobpool
BLOBPOOL
+blobpool
blobspace
Blockdaemon
blockhash
blocklists
-blocklogs
BLOCKLOGS
-blockprofilerate
+blocklogs
BLOCKPROFILERATE
+blockprofilerate
Blockscout
-blockspace
Blockspace
+blockspace
blocktime
-blocktimes
Blocktimes
-bloomfilter
+blocktimes
BLOOMFILTER
+bloomfilter
BLTZ
Bootcamp
bootnode
-bootnodes
-Bootnodes
BOOTNODES
+Bootnodes
+bootnodes
bottlenecked
-brotli
Brotli
-callouts
+brotli
Callouts
+callouts
CCIP
cdef
Celestia
@@ -72,65 +72,65 @@ chaosnet
Chugsplash
Clabby
codebases
-collateralized
Collateralized
+collateralized
compr
Comprensive
-computependingblock
COMPUTEPENDINGBLOCK
+computependingblock
confs
Consen
corsdomain
counterfactually
-crosschain
Crosschain
+crosschain
Crossmint
Dapphub
daserver
-datacap
DATACAP
-datadir
+datacap
DATADIR
+datadir
devdocs
-devnet
Devnet
-devnets
+devnet
Devnets
+devnets
direnv
-disabletxpoolgossip
DISABLETXPOOLGOSSIP
-discv
+disabletxpoolgossip
Discv
+discv
DIVU
Drand
dripcheck
Drippie
Eigen
EIPs
-enabledeprecatedpersonal
ENABLEDEPRECATEDPERSONAL
+enabledeprecatedpersonal
enginekind
-erigon
Erigon
-etherbase
+erigon
ETHERBASE
+etherbase
Ethernity
Ethernow
-ethstats
ETHSTATS
-evmtimeout
+ethstats
EVMTIMEOUT
+evmtimeout
excercise
executability
exfiltrate
-exitwhensynced
EXITWHENSYNCED
-extradata
+exitwhensynced
EXTRADATA
+extradata
Farcaster
Faultproof
-fdlimit
FDLIMIT
+fdlimit
Flashblocks
Flashbots
forkable
@@ -141,52 +141,52 @@ Fraxtal
funcationality
Funct
gameplay
-gascap
GASCAP
+gascap
gaslessly
-gcmode
GCMODE
+gcmode
Gelato
gifs
-globalqueue
GLOBALQUEUE
-globalslots
+globalqueue
GLOBALSLOTS
+globalslots
gokzg
growthepie
hardfork
hardforks
-healthcheck
HEALTHCHECK
+healthcheck
healthchecks
-historicalrpc
HISTORICALRPC
-historicalrpctimeout
+historicalrpc
HISTORICALRPCTIMEOUT
-holesky
-Holesky
+historicalrpctimeout
HOLESKY
+Holesky
+holesky
IERC
-ignoreprice
IGNOREPRICE
+ignoreprice
Immunefi
-inator
Inator
-influxdbv
+inator
INFLUXDBV
+influxdbv
initcode
-ipcdisable
IPCDISABLE
+ipcdisable
ipcfile
-ipcpath
IPCPATH
+ipcpath
IPFS
Isthumus
JALR
-journalremotes
JOURNALREMOTES
-jspath
+journalremotes
JSPATH
+jspath
jwtsecret
Keccak
leveldb
@@ -195,34 +195,34 @@ Lisk
logfile
logfmt
Mainnets
-maxage
MAXAGE
-maxbackups
+maxage
MAXBACKUPS
-maxpeers
+maxbackups
MAXPEERS
-maxpendpeers
+maxpeers
MAXPENDPEERS
-maxprice
+maxpendpeers
MAXPRICE
-memprofilerate
+maxprice
MEMPROFILERATE
-merkle
+memprofilerate
Merkle
+merkle
MFHI
MFLO
Mgas
Minato
-minfreedisk
MINFREEDISK
-minsuggestedpriorityfee
+minfreedisk
MINSUGGESTEDPRIORITYFEE
+minsuggestedpriorityfee
Mintable
Mintplex
MIPSEVM
Mitigations
-monitorism
Monitorism
+monitorism
Moralis
Mordor
mountpoint
@@ -232,44 +232,44 @@ MTHI
MTLO
MULT
multiaddr
-multichain
Multichain
+multichain
multiclient
multisigs
MULTU
nethermind
-netrestrict
NETRESTRICT
-networkid
+netrestrict
NETWORKID
-newpayload
+networkid
NEWPAYLOAD
+newpayload
nextra
-nocompaction
NOCOMPACTION
-nodekey
+nocompaction
NODEKEY
-nodekeyhex
+nodekey
NODEKEYHEX
+nodekeyhex
nodename
Nodies
-nodiscover
NODISCOVER
-nolocals
+nodiscover
NOLOCALS
-noprefetch
+nolocals
NOPREFETCH
-nopruning
+noprefetch
NOPRUNING
-nosyncserve
+nopruning
NOSYNCSERVE
+nosyncserve
Numba
-offchain
Offchain
+offchain
opchaina
opchainb
-opcm
OPCM
+opcm
Openfort
oplabs
opnode's
@@ -277,98 +277,98 @@ opstack
outfile
Pausability
pcscdpath
-pectra
Pectra
+pectra
Pectra's
-peerstore
Peerstore
+peerstore
peerstores
-permissioned
Permissioned
-permissionless
+permissioned
Permissionless
+permissionless
permissionlessly
Perps
Peta
Pimlico
POAP
POAPs
-pprof
PPROF
-precommitments
+pprof
Precommitments
+precommitments
preconfigured
predeploy
-predeployed
Predeployed
-predeploys
+predeployed
Predeploys
+predeploys
prefunded
-preimage
Preimage
-preimages
+preimage
PREIMAGES
+preimages
preinstall
-preinstalls
Preinstalls
-prestate
+preinstalls
Prestate
+prestate
prestates
PREVRANDAO
-pricebump
PRICEBUMP
-pricelimit
+pricebump
PRICELIMIT
+pricelimit
productionize
productionized
Protip
Proxied
-proxyd
Proxyd
+proxyd
Pyth
Pyth's
QRNG
-quicknode
Quicknode
+quicknode
quickstarts
rebalancing
reemit
Reemitting
-regenesis
Regenesis
+regenesis
Reimagine
-rejournal
REJOURNAL
-remotedb
+rejournal
REMOTEDB
+remotedb
Reown
Reown's
replayability
replayor
reposts
reproven
-requiredblocks
REQUIREDBLOCKS
+requiredblocks
rollouts
-rollups
Rollups
+rollups
Routescan
rpckind
-rpcprefix
RPCPREFIX
+rpcprefix
rpcs
RPGF
-runbooks
Runbooks
+runbooks
RWAs
safedb
Schnorr
-sepolia
-Sepolia
SEPOLIA
+Sepolia
+sepolia
seqnr
-sequencerhttp
SEQUENCERHTTP
+sequencerhttp
serv
signup
SLLV
@@ -377,16 +377,16 @@ SLTIU
SLTU
smartcard
snapshotlog
-snapsync
Snapsync
+snapsync
Solana
Soneium
soyboy
Spearbit
SRAV
SRLV
-stablecoins
Stablecoins
+stablecoins
statefulset
structs
subcomponents
@@ -395,21 +395,21 @@ subheaders
subsecond
SUBU
Sunnyside
-superchain
-Superchain
SUPERCHAIN
+Superchain
+superchain
Superchain's
superchainerc
Superlend
Superloans
Superscan
Superseed
-supersim
Supersim
-syncmode
+supersim
SYNCMODE
-synctarget
+syncmode
SYNCTARGET
+synctarget
syscalls
SYSCON
thirdweb
@@ -422,8 +422,8 @@ Twei
txfeecap
txmgr
txns
-txpool
TXPOOL
+txpool
txproxy
txproxyd
uncensorable
@@ -434,21 +434,21 @@ Unprotect
unsubmitted
UPNP
upstreaming
-verkle
VERKLE
-vhosts
+verkle
VHOSTS
-viem
+vhosts
Viem
-viem's
+viem
Viem's
-vmdebug
+viem's
VMDEBUG
-vmodule
+vmdebug
VMODULE
+vmodule
xlarge
XORI
ZKPs
ZKVM
-zora
Zora
+zora
From c24ec5877e8ca053165d7033e0094e0ea1cf819e Mon Sep 17 00:00:00 2001
From: Bradley Camacho <42678939+bradleycamacho@users.noreply.github.com>
Date: Thu, 15 May 2025 11:17:48 -0700
Subject: [PATCH 03/21] Implement review
---
pages/interop/message-expiration.mdx | 8 +-
pages/interop/message-passing.mdx | 14 +-
words.txt | 231 ++++++++++++++-------------
3 files changed, 128 insertions(+), 125 deletions(-)
diff --git a/pages/interop/message-expiration.mdx b/pages/interop/message-expiration.mdx
index eb7b96a79..2018788a9 100644
--- a/pages/interop/message-expiration.mdx
+++ b/pages/interop/message-expiration.mdx
@@ -22,13 +22,13 @@ is_imported_content: 'false'
# Message expiration
-[Initiating messages](/interop/message-passing) sent between OP Stack chains have a limited validity period called the expiry window. Once this window elapses, the initiating message becomes invalid and can no longer be executed on the destination chain.
+[Initiating messages](/interop/message-passing) sent between OP Stack chains have a limited validity period called the expiry window. Once this window elapses, the initiating message becomes invalid and can no longer be referenced on the destination chain.
If a message expires before being relayed, developers can reemit the message on the source chain. This triggers a fresh `SentMessage` event, allowing offchain infrastructure to pick it up and relay it again ensuring successful delivery.
## The expiry window
-The expiry window is an offchain constant that defines how long a cross-chain message remains valid. For the [Superchain interop cluster](/interop/explainer), messages must be executed within 7 days (604,800 seconds) of the initiating message being sent.
+The expiry window is an offchain constant, defined by op-supervisor, that defines how long a cross-chain message or event emmitted by a chain remains valid. For any chain in the [interop set](/interop/explainer), messages must be executed within 7 days (604,800 seconds) of the initiating message being sent.
After this period, a message can no longer be executed on the destination chain unless the event is remitted on the source chain.
@@ -40,5 +40,7 @@ This emits a new `SentMessage` log with the same content as the original message
The process to reemit an expired message:
-1. Call `resendMessage(messageHash)` on the origin chain to reemit the message event. The contract verifies the message hash was originally sent.
+1. Call [`resendMessage`](https://github.com/ethereum-optimism/optimism/blob/a979a9444dbb482843f2a42f437ced54a8ac1053/packages/contracts-bedrock/interfaces/L2/IL2ToL2CrossDomainMessenger.sol#L110-L128) on the origin chain to reemit the message event. The contract verifies the message hash was originally sent. The call required the following parameters:
+
+
2. Relay the new message as normal.
diff --git a/pages/interop/message-passing.mdx b/pages/interop/message-passing.mdx
index b40938537..7b51dbedf 100644
--- a/pages/interop/message-passing.mdx
+++ b/pages/interop/message-passing.mdx
@@ -101,7 +101,7 @@ sequenceDiagram
dstXdom->>dstContract: 5. Call with provided calldata
```
-1. Before the executing message is processed, the log event of the initiating message has to get to `op-supervisor` on the destination chain.
+1. Before the executing message is processed, the log event of the initiating message has to get to `op-supervisor` on the destination chain before the [expiry window](/interop/message-expiration) of 7 days.
2. The autorelayer, the application, or a contract calling on the application's behalf calls [`L2ToL2CrossDomainMessenger.relayMessage`](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L2/L2ToL2CrossDomainMessenger.sol#L150-L203).
This call includes the message that was sent (`_sentMessage`), as well as the [fields required to find that message (`_id`)](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/interfaces/L2/ICrossL2Inbox.sol#L4-L10).
@@ -110,12 +110,12 @@ sequenceDiagram
4. `L2ToL2CrossDomainMessenger` on the destination chain verifies the message is legitimate:
- * The origin (of the log entry) is `L2ToL2CrossDomainMessenger` on the other side.
- * The destination chain ID is correct.
- * The target is neither `CrossL2Inbox` nor `L2ToL2CrossDomainMessenger`.
- * This message has not been relayed before.
-
- This is the reason we need the nonce value, to enable us to send multiple messages that would be otherwise identical.
+ * `_destination`: Chain ID of the destination chain.
+ * `_nonce`: Nonce of the message sent
+ * `_sender`: Address that sent the message
+ * `_target`: Target contract or wallet address.
+ * `message`: Message payload to call target with.
+
5. If everything checks out, `L2ToL2CrossDomainMessenger` calls the destination contract with the calldata provided in the message.
diff --git a/words.txt b/words.txt
index 29c6a43b7..14f555b2a 100644
--- a/words.txt
+++ b/words.txt
@@ -1,7 +1,7 @@
-ACCOUNTQUEUE
accountqueue
-ACCOUNTSLOTS
+ACCOUNTQUEUE
accountslots
+ACCOUNTSLOTS
ACDC
ADDI
ADDIU
@@ -9,58 +9,58 @@ ADDU
airgap
Allnodes
allocs
-Alphanet
alphanet
-Alphanets
+Alphanet
alphanets
+Alphanets
altda
ANDI
Ankr
Apeworx
Arweave
authrpc
-Autorelay
autorelay
+Autorelay
autorelayer
basefee
bcde
-Betanet
betanet
-Betanets
+Betanet
betanets
+Betanets
BGEZ
BGTZ
Biconomy
BLEZ
-BLOBPOOL
blobpool
+BLOBPOOL
blobspace
Blockdaemon
blockhash
blocklists
-BLOCKLOGS
blocklogs
-BLOCKPROFILERATE
+BLOCKLOGS
blockprofilerate
+BLOCKPROFILERATE
Blockscout
-Blockspace
blockspace
+Blockspace
blocktime
-Blocktimes
blocktimes
-BLOOMFILTER
+Blocktimes
bloomfilter
+BLOOMFILTER
BLTZ
Bootcamp
bootnode
-BOOTNODES
-Bootnodes
bootnodes
+Bootnodes
+BOOTNODES
bottlenecked
-Brotli
brotli
-Callouts
+Brotli
callouts
+Callouts
CCIP
cdef
Celestia
@@ -72,65 +72,66 @@ chaosnet
Chugsplash
Clabby
codebases
-Collateralized
collateralized
+Collateralized
compr
Comprensive
-COMPUTEPENDINGBLOCK
computependingblock
+COMPUTEPENDINGBLOCK
confs
Consen
corsdomain
counterfactually
-Crosschain
crosschain
+Crosschain
Crossmint
Dapphub
daserver
-DATACAP
datacap
-DATADIR
+DATACAP
datadir
+DATADIR
devdocs
-Devnet
devnet
-Devnets
+Devnet
devnets
+Devnets
direnv
-DISABLETXPOOLGOSSIP
disabletxpoolgossip
-Discv
+DISABLETXPOOLGOSSIP
discv
+Discv
DIVU
Drand
dripcheck
Drippie
Eigen
EIPs
-ENABLEDEPRECATEDPERSONAL
+emmitted
enabledeprecatedpersonal
+ENABLEDEPRECATEDPERSONAL
enginekind
-Erigon
erigon
-ETHERBASE
+Erigon
etherbase
+ETHERBASE
Ethernity
Ethernow
-ETHSTATS
ethstats
-EVMTIMEOUT
+ETHSTATS
evmtimeout
+EVMTIMEOUT
excercise
executability
exfiltrate
-EXITWHENSYNCED
exitwhensynced
-EXTRADATA
+EXITWHENSYNCED
extradata
+EXTRADATA
Farcaster
Faultproof
-FDLIMIT
fdlimit
+FDLIMIT
Flashblocks
Flashbots
forkable
@@ -141,52 +142,52 @@ Fraxtal
funcationality
Funct
gameplay
-GASCAP
gascap
+GASCAP
gaslessly
-GCMODE
gcmode
+GCMODE
Gelato
gifs
-GLOBALQUEUE
globalqueue
-GLOBALSLOTS
+GLOBALQUEUE
globalslots
+GLOBALSLOTS
gokzg
growthepie
hardfork
hardforks
-HEALTHCHECK
healthcheck
+HEALTHCHECK
healthchecks
-HISTORICALRPC
historicalrpc
-HISTORICALRPCTIMEOUT
+HISTORICALRPC
historicalrpctimeout
-HOLESKY
-Holesky
+HISTORICALRPCTIMEOUT
holesky
+Holesky
+HOLESKY
IERC
-IGNOREPRICE
ignoreprice
+IGNOREPRICE
Immunefi
-Inator
inator
-INFLUXDBV
+Inator
influxdbv
+INFLUXDBV
initcode
-IPCDISABLE
ipcdisable
+IPCDISABLE
ipcfile
-IPCPATH
ipcpath
+IPCPATH
IPFS
Isthumus
JALR
-JOURNALREMOTES
journalremotes
-JSPATH
+JOURNALREMOTES
jspath
+JSPATH
jwtsecret
Keccak
leveldb
@@ -195,34 +196,34 @@ Lisk
logfile
logfmt
Mainnets
-MAXAGE
maxage
-MAXBACKUPS
+MAXAGE
maxbackups
-MAXPEERS
+MAXBACKUPS
maxpeers
-MAXPENDPEERS
+MAXPEERS
maxpendpeers
-MAXPRICE
+MAXPENDPEERS
maxprice
-MEMPROFILERATE
+MAXPRICE
memprofilerate
-Merkle
+MEMPROFILERATE
merkle
+Merkle
MFHI
MFLO
Mgas
Minato
-MINFREEDISK
minfreedisk
-MINSUGGESTEDPRIORITYFEE
+MINFREEDISK
minsuggestedpriorityfee
+MINSUGGESTEDPRIORITYFEE
Mintable
Mintplex
MIPSEVM
Mitigations
-Monitorism
monitorism
+Monitorism
Moralis
Mordor
mountpoint
@@ -232,44 +233,44 @@ MTHI
MTLO
MULT
multiaddr
-Multichain
multichain
+Multichain
multiclient
multisigs
MULTU
nethermind
-NETRESTRICT
netrestrict
-NETWORKID
+NETRESTRICT
networkid
-NEWPAYLOAD
+NETWORKID
newpayload
+NEWPAYLOAD
nextra
-NOCOMPACTION
nocompaction
-NODEKEY
+NOCOMPACTION
nodekey
-NODEKEYHEX
+NODEKEY
nodekeyhex
+NODEKEYHEX
nodename
Nodies
-NODISCOVER
nodiscover
-NOLOCALS
+NODISCOVER
nolocals
-NOPREFETCH
+NOLOCALS
noprefetch
-NOPRUNING
+NOPREFETCH
nopruning
-NOSYNCSERVE
+NOPRUNING
nosyncserve
+NOSYNCSERVE
Numba
-Offchain
offchain
+Offchain
opchaina
opchainb
-OPCM
opcm
+OPCM
Openfort
oplabs
opnode's
@@ -277,98 +278,98 @@ opstack
outfile
Pausability
pcscdpath
-Pectra
pectra
+Pectra
Pectra's
-Peerstore
peerstore
+Peerstore
peerstores
-Permissioned
permissioned
-Permissionless
+Permissioned
permissionless
+Permissionless
permissionlessly
Perps
Peta
Pimlico
POAP
POAPs
-PPROF
pprof
-Precommitments
+PPROF
precommitments
+Precommitments
preconfigured
predeploy
-Predeployed
predeployed
-Predeploys
+Predeployed
predeploys
+Predeploys
prefunded
-Preimage
preimage
-PREIMAGES
+Preimage
preimages
+PREIMAGES
preinstall
-Preinstalls
preinstalls
-Prestate
+Preinstalls
prestate
+Prestate
prestates
PREVRANDAO
-PRICEBUMP
pricebump
-PRICELIMIT
+PRICEBUMP
pricelimit
+PRICELIMIT
productionize
productionized
Protip
Proxied
-Proxyd
proxyd
+Proxyd
Pyth
Pyth's
QRNG
-Quicknode
quicknode
+Quicknode
quickstarts
rebalancing
reemit
Reemitting
-Regenesis
regenesis
+Regenesis
Reimagine
-REJOURNAL
rejournal
-REMOTEDB
+REJOURNAL
remotedb
+REMOTEDB
Reown
Reown's
replayability
replayor
reposts
reproven
-REQUIREDBLOCKS
requiredblocks
+REQUIREDBLOCKS
rollouts
-Rollups
rollups
+Rollups
Routescan
rpckind
-RPCPREFIX
rpcprefix
+RPCPREFIX
rpcs
RPGF
-Runbooks
runbooks
+Runbooks
RWAs
safedb
Schnorr
-SEPOLIA
-Sepolia
sepolia
+Sepolia
+SEPOLIA
seqnr
-SEQUENCERHTTP
sequencerhttp
+SEQUENCERHTTP
serv
signup
SLLV
@@ -377,16 +378,16 @@ SLTIU
SLTU
smartcard
snapshotlog
-Snapsync
snapsync
+Snapsync
Solana
Soneium
soyboy
Spearbit
SRAV
SRLV
-Stablecoins
stablecoins
+Stablecoins
statefulset
structs
subcomponents
@@ -395,21 +396,21 @@ subheaders
subsecond
SUBU
Sunnyside
-SUPERCHAIN
-Superchain
superchain
+Superchain
+SUPERCHAIN
Superchain's
superchainerc
Superlend
Superloans
Superscan
Superseed
-Supersim
supersim
-SYNCMODE
+Supersim
syncmode
-SYNCTARGET
+SYNCMODE
synctarget
+SYNCTARGET
syscalls
SYSCON
thirdweb
@@ -422,8 +423,8 @@ Twei
txfeecap
txmgr
txns
-TXPOOL
txpool
+TXPOOL
txproxy
txproxyd
uncensorable
@@ -434,21 +435,21 @@ Unprotect
unsubmitted
UPNP
upstreaming
-VERKLE
verkle
-VHOSTS
+VERKLE
vhosts
-Viem
+VHOSTS
viem
-Viem's
+Viem
viem's
-VMDEBUG
+Viem's
vmdebug
-VMODULE
+VMDEBUG
vmodule
+VMODULE
xlarge
XORI
ZKPs
ZKVM
-Zora
zora
+Zora
From c64be26f75fa3b12e8757fe8fd09f92878e531fe Mon Sep 17 00:00:00 2001
From: Bradley Camacho <42678939+bradleycamacho@users.noreply.github.com>
Date: Thu, 15 May 2025 11:18:25 -0700
Subject: [PATCH 04/21] Add missing link
---
pages/interop/message-expiration.mdx | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/pages/interop/message-expiration.mdx b/pages/interop/message-expiration.mdx
index 2018788a9..d704bfac4 100644
--- a/pages/interop/message-expiration.mdx
+++ b/pages/interop/message-expiration.mdx
@@ -42,5 +42,11 @@ The process to reemit an expired message:
1. Call [`resendMessage`](https://github.com/ethereum-optimism/optimism/blob/a979a9444dbb482843f2a42f437ced54a8ac1053/packages/contracts-bedrock/interfaces/L2/IL2ToL2CrossDomainMessenger.sol#L110-L128) on the origin chain to reemit the message event. The contract verifies the message hash was originally sent. The call required the following parameters:
-
-2. Relay the new message as normal.
+ * The origin (of the log entry) is `L2ToL2CrossDomainMessenger` on the other side.
+ * The destination chain ID is correct.
+ * The target is neither `CrossL2Inbox` nor `L2ToL2CrossDomainMessenger`.
+ * This message has not been relayed before.
+
+ This is the reason we need the nonce value, to enable us to send multiple messages that would be otherwise identical.
+
+2. [Relay the new message](/interop/message-passing#executing-message) as normal.
From 74903332d33a3778e56693166d2ca94d50c33113 Mon Sep 17 00:00:00 2001
From: Bradley Camacho <42678939+bradleycamacho@users.noreply.github.com>
Date: Thu, 15 May 2025 11:18:42 -0700
Subject: [PATCH 05/21] Auto-fix: Update breadcrumbs, spelling dictionary and
other automated fixes
---
words.txt | 230 +++++++++++++++++++++++++++---------------------------
1 file changed, 115 insertions(+), 115 deletions(-)
diff --git a/words.txt b/words.txt
index 14f555b2a..b2d3f4106 100644
--- a/words.txt
+++ b/words.txt
@@ -1,7 +1,7 @@
-accountqueue
ACCOUNTQUEUE
-accountslots
+accountqueue
ACCOUNTSLOTS
+accountslots
ACDC
ADDI
ADDIU
@@ -9,58 +9,58 @@ ADDU
airgap
Allnodes
allocs
-alphanet
Alphanet
-alphanets
+alphanet
Alphanets
+alphanets
altda
ANDI
Ankr
Apeworx
Arweave
authrpc
-autorelay
Autorelay
+autorelay
autorelayer
basefee
bcde
-betanet
Betanet
-betanets
+betanet
Betanets
+betanets
BGEZ
BGTZ
Biconomy
BLEZ
-blobpool
BLOBPOOL
+blobpool
blobspace
Blockdaemon
blockhash
blocklists
-blocklogs
BLOCKLOGS
-blockprofilerate
+blocklogs
BLOCKPROFILERATE
+blockprofilerate
Blockscout
-blockspace
Blockspace
+blockspace
blocktime
-blocktimes
Blocktimes
-bloomfilter
+blocktimes
BLOOMFILTER
+bloomfilter
BLTZ
Bootcamp
bootnode
-bootnodes
-Bootnodes
BOOTNODES
+Bootnodes
+bootnodes
bottlenecked
-brotli
Brotli
-callouts
+brotli
Callouts
+callouts
CCIP
cdef
Celestia
@@ -72,35 +72,35 @@ chaosnet
Chugsplash
Clabby
codebases
-collateralized
Collateralized
+collateralized
compr
Comprensive
-computependingblock
COMPUTEPENDINGBLOCK
+computependingblock
confs
Consen
corsdomain
counterfactually
-crosschain
Crosschain
+crosschain
Crossmint
Dapphub
daserver
-datacap
DATACAP
-datadir
+datacap
DATADIR
+datadir
devdocs
-devnet
Devnet
-devnets
+devnet
Devnets
+devnets
direnv
-disabletxpoolgossip
DISABLETXPOOLGOSSIP
-discv
+disabletxpoolgossip
Discv
+discv
DIVU
Drand
dripcheck
@@ -108,30 +108,30 @@ Drippie
Eigen
EIPs
emmitted
-enabledeprecatedpersonal
ENABLEDEPRECATEDPERSONAL
+enabledeprecatedpersonal
enginekind
-erigon
Erigon
-etherbase
+erigon
ETHERBASE
+etherbase
Ethernity
Ethernow
-ethstats
ETHSTATS
-evmtimeout
+ethstats
EVMTIMEOUT
+evmtimeout
excercise
executability
exfiltrate
-exitwhensynced
EXITWHENSYNCED
-extradata
+exitwhensynced
EXTRADATA
+extradata
Farcaster
Faultproof
-fdlimit
FDLIMIT
+fdlimit
Flashblocks
Flashbots
forkable
@@ -142,52 +142,52 @@ Fraxtal
funcationality
Funct
gameplay
-gascap
GASCAP
+gascap
gaslessly
-gcmode
GCMODE
+gcmode
Gelato
gifs
-globalqueue
GLOBALQUEUE
-globalslots
+globalqueue
GLOBALSLOTS
+globalslots
gokzg
growthepie
hardfork
hardforks
-healthcheck
HEALTHCHECK
+healthcheck
healthchecks
-historicalrpc
HISTORICALRPC
-historicalrpctimeout
+historicalrpc
HISTORICALRPCTIMEOUT
-holesky
-Holesky
+historicalrpctimeout
HOLESKY
+Holesky
+holesky
IERC
-ignoreprice
IGNOREPRICE
+ignoreprice
Immunefi
-inator
Inator
-influxdbv
+inator
INFLUXDBV
+influxdbv
initcode
-ipcdisable
IPCDISABLE
+ipcdisable
ipcfile
-ipcpath
IPCPATH
+ipcpath
IPFS
Isthumus
JALR
-journalremotes
JOURNALREMOTES
-jspath
+journalremotes
JSPATH
+jspath
jwtsecret
Keccak
leveldb
@@ -196,34 +196,34 @@ Lisk
logfile
logfmt
Mainnets
-maxage
MAXAGE
-maxbackups
+maxage
MAXBACKUPS
-maxpeers
+maxbackups
MAXPEERS
-maxpendpeers
+maxpeers
MAXPENDPEERS
-maxprice
+maxpendpeers
MAXPRICE
-memprofilerate
+maxprice
MEMPROFILERATE
-merkle
+memprofilerate
Merkle
+merkle
MFHI
MFLO
Mgas
Minato
-minfreedisk
MINFREEDISK
-minsuggestedpriorityfee
+minfreedisk
MINSUGGESTEDPRIORITYFEE
+minsuggestedpriorityfee
Mintable
Mintplex
MIPSEVM
Mitigations
-monitorism
Monitorism
+monitorism
Moralis
Mordor
mountpoint
@@ -233,44 +233,44 @@ MTHI
MTLO
MULT
multiaddr
-multichain
Multichain
+multichain
multiclient
multisigs
MULTU
nethermind
-netrestrict
NETRESTRICT
-networkid
+netrestrict
NETWORKID
-newpayload
+networkid
NEWPAYLOAD
+newpayload
nextra
-nocompaction
NOCOMPACTION
-nodekey
+nocompaction
NODEKEY
-nodekeyhex
+nodekey
NODEKEYHEX
+nodekeyhex
nodename
Nodies
-nodiscover
NODISCOVER
-nolocals
+nodiscover
NOLOCALS
-noprefetch
+nolocals
NOPREFETCH
-nopruning
+noprefetch
NOPRUNING
-nosyncserve
+nopruning
NOSYNCSERVE
+nosyncserve
Numba
-offchain
Offchain
+offchain
opchaina
opchainb
-opcm
OPCM
+opcm
Openfort
oplabs
opnode's
@@ -278,98 +278,98 @@ opstack
outfile
Pausability
pcscdpath
-pectra
Pectra
+pectra
Pectra's
-peerstore
Peerstore
+peerstore
peerstores
-permissioned
Permissioned
-permissionless
+permissioned
Permissionless
+permissionless
permissionlessly
Perps
Peta
Pimlico
POAP
POAPs
-pprof
PPROF
-precommitments
+pprof
Precommitments
+precommitments
preconfigured
predeploy
-predeployed
Predeployed
-predeploys
+predeployed
Predeploys
+predeploys
prefunded
-preimage
Preimage
-preimages
+preimage
PREIMAGES
+preimages
preinstall
-preinstalls
Preinstalls
-prestate
+preinstalls
Prestate
+prestate
prestates
PREVRANDAO
-pricebump
PRICEBUMP
-pricelimit
+pricebump
PRICELIMIT
+pricelimit
productionize
productionized
Protip
Proxied
-proxyd
Proxyd
+proxyd
Pyth
Pyth's
QRNG
-quicknode
Quicknode
+quicknode
quickstarts
rebalancing
reemit
Reemitting
-regenesis
Regenesis
+regenesis
Reimagine
-rejournal
REJOURNAL
-remotedb
+rejournal
REMOTEDB
+remotedb
Reown
Reown's
replayability
replayor
reposts
reproven
-requiredblocks
REQUIREDBLOCKS
+requiredblocks
rollouts
-rollups
Rollups
+rollups
Routescan
rpckind
-rpcprefix
RPCPREFIX
+rpcprefix
rpcs
RPGF
-runbooks
Runbooks
+runbooks
RWAs
safedb
Schnorr
-sepolia
-Sepolia
SEPOLIA
+Sepolia
+sepolia
seqnr
-sequencerhttp
SEQUENCERHTTP
+sequencerhttp
serv
signup
SLLV
@@ -378,16 +378,16 @@ SLTIU
SLTU
smartcard
snapshotlog
-snapsync
Snapsync
+snapsync
Solana
Soneium
soyboy
Spearbit
SRAV
SRLV
-stablecoins
Stablecoins
+stablecoins
statefulset
structs
subcomponents
@@ -396,21 +396,21 @@ subheaders
subsecond
SUBU
Sunnyside
-superchain
-Superchain
SUPERCHAIN
+Superchain
+superchain
Superchain's
superchainerc
Superlend
Superloans
Superscan
Superseed
-supersim
Supersim
-syncmode
+supersim
SYNCMODE
-synctarget
+syncmode
SYNCTARGET
+synctarget
syscalls
SYSCON
thirdweb
@@ -423,8 +423,8 @@ Twei
txfeecap
txmgr
txns
-txpool
TXPOOL
+txpool
txproxy
txproxyd
uncensorable
@@ -435,21 +435,21 @@ Unprotect
unsubmitted
UPNP
upstreaming
-verkle
VERKLE
-vhosts
+verkle
VHOSTS
-viem
+vhosts
Viem
-viem's
+viem
Viem's
-vmdebug
+viem's
VMDEBUG
-vmodule
+vmdebug
VMODULE
+vmodule
xlarge
XORI
ZKPs
ZKVM
-zora
Zora
+zora
From dd0209d638e636d1e447cf8f90823e8b59428b4a Mon Sep 17 00:00:00 2001
From: Bradley Camacho <42678939+bradleycamacho@users.noreply.github.com>
Date: Thu, 15 May 2025 11:26:01 -0700
Subject: [PATCH 06/21] Fix flipflopped info
---
pages/interop/message-expiration.mdx | 15 +++++++--------
1 file changed, 7 insertions(+), 8 deletions(-)
diff --git a/pages/interop/message-expiration.mdx b/pages/interop/message-expiration.mdx
index d704bfac4..7d5354a5a 100644
--- a/pages/interop/message-expiration.mdx
+++ b/pages/interop/message-expiration.mdx
@@ -42,11 +42,10 @@ The process to reemit an expired message:
1. Call [`resendMessage`](https://github.com/ethereum-optimism/optimism/blob/a979a9444dbb482843f2a42f437ced54a8ac1053/packages/contracts-bedrock/interfaces/L2/IL2ToL2CrossDomainMessenger.sol#L110-L128) on the origin chain to reemit the message event. The contract verifies the message hash was originally sent. The call required the following parameters:
- * The origin (of the log entry) is `L2ToL2CrossDomainMessenger` on the other side.
- * The destination chain ID is correct.
- * The target is neither `CrossL2Inbox` nor `L2ToL2CrossDomainMessenger`.
- * This message has not been relayed before.
-
- This is the reason we need the nonce value, to enable us to send multiple messages that would be otherwise identical.
-
-2. [Relay the new message](/interop/message-passing#executing-message) as normal.
+ * `_destination`: Chain ID of the destination chain.
+ * `_nonce`: Nonce of the message sent
+ * `_sender`: Address that sent the message
+ * `_target`: Target contract or wallet address.
+ * `message`: Message payload to call target with.
+
+2. [Relay the new message](/interop/message-passing) as normal.
From ac54be74d1cdd4b1de2c5f7b05188eb05c330001 Mon Sep 17 00:00:00 2001
From: Bradley Camacho <42678939+bradleycamacho@users.noreply.github.com>
Date: Thu, 15 May 2025 11:27:17 -0700
Subject: [PATCH 07/21] Auto-fix: Update breadcrumbs, spelling dictionary and
other automated fixes
---
words.txt | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/words.txt b/words.txt
index 121d0a46e..b2d3f4106 100644
--- a/words.txt
+++ b/words.txt
@@ -90,10 +90,10 @@ daserver
DATACAP
datacap
DATADIR
+datadir
devdocs
-devnet
Devnet
-devnets
+devnet
Devnets
devnets
direnv
From fc712c4e7fa6fdff63d084f86a48d70bbda222d8 Mon Sep 17 00:00:00 2001
From: Bradley Camacho <42678939+bradleycamacho@users.noreply.github.com>
Date: Thu, 15 May 2025 14:48:23 -0700
Subject: [PATCH 08/21] Next steps and logs reference
---
pages/interop/message-expiration.mdx | 8 +++++++-
pages/interop/reading-logs.mdx | 4 ++++
2 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/pages/interop/message-expiration.mdx b/pages/interop/message-expiration.mdx
index 7d5354a5a..c8b35efe9 100644
--- a/pages/interop/message-expiration.mdx
+++ b/pages/interop/message-expiration.mdx
@@ -48,4 +48,10 @@ The process to reemit an expired message:
* `_target`: Target contract or wallet address.
* `message`: Message payload to call target with.
-2. [Relay the new message](/interop/message-passing) as normal.
+2. [Relay the new message](C/interop/message-passing) as normal.
+
+## Next steps
+
+* [Build a revolutionary app](/app-developers/get-started) that uses multiple blockchains within the Superchain
+* Learn how to [pass messages between blockchains](/interop/tutorials/message-passing)
+* Deploy a [SuperchainERC20](/interop/tutorials/deploy-superchain-erc20) to the Superchain
diff --git a/pages/interop/reading-logs.mdx b/pages/interop/reading-logs.mdx
index 2a2bfcd5c..4296750da 100644
--- a/pages/interop/reading-logs.mdx
+++ b/pages/interop/reading-logs.mdx
@@ -27,6 +27,10 @@ This enables developers to:
* Build cross-chain applications that react to events happening across the Superchain.
* Create novel applications that leverage data from multiple chains.
+
+The destination chain must execute initiating message or event within the [expiry window of 7 days](interop/message-expiration).
+
+
## Why use `CrossL2Inbox`?
* **Reference existing logs**: Allows contracts to verify and use logs that were already emitted, without requiring those logs to have been sent as cross-chain messages.
From 97bd7583ad822cf20a2e017f281ea6dc59dffea2 Mon Sep 17 00:00:00 2001
From: Bradley Camacho <42678939+bradleycamacho@users.noreply.github.com>
Date: Thu, 15 May 2025 14:50:00 -0700
Subject: [PATCH 09/21] fix link
---
pages/interop/reading-logs.mdx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pages/interop/reading-logs.mdx b/pages/interop/reading-logs.mdx
index 4296750da..ae5b78d29 100644
--- a/pages/interop/reading-logs.mdx
+++ b/pages/interop/reading-logs.mdx
@@ -28,7 +28,7 @@ This enables developers to:
* Create novel applications that leverage data from multiple chains.
-The destination chain must execute initiating message or event within the [expiry window of 7 days](interop/message-expiration).
+The destination chain must execute initiating message or event within the [expiry window of 7 days](/interop/message-expiration).
## Why use `CrossL2Inbox`?
From ee8b4618d36d6bbcd94da20d38b38dfd5f2daed2 Mon Sep 17 00:00:00 2001
From: Bradley Camacho <42678939+bradleycamacho@users.noreply.github.com>
Date: Thu, 15 May 2025 14:51:28 -0700
Subject: [PATCH 10/21] Lint
---
pages/interop/message-expiration.mdx | 2 +-
words.txt | 230 +++++++++++++--------------
2 files changed, 116 insertions(+), 116 deletions(-)
diff --git a/pages/interop/message-expiration.mdx b/pages/interop/message-expiration.mdx
index c8b35efe9..523e422f3 100644
--- a/pages/interop/message-expiration.mdx
+++ b/pages/interop/message-expiration.mdx
@@ -48,7 +48,7 @@ The process to reemit an expired message:
* `_target`: Target contract or wallet address.
* `message`: Message payload to call target with.
-2. [Relay the new message](C/interop/message-passing) as normal.
+2. [Relay the new message](/interop/message-passing) as normal.
## Next steps
diff --git a/words.txt b/words.txt
index b2d3f4106..14f555b2a 100644
--- a/words.txt
+++ b/words.txt
@@ -1,7 +1,7 @@
-ACCOUNTQUEUE
accountqueue
-ACCOUNTSLOTS
+ACCOUNTQUEUE
accountslots
+ACCOUNTSLOTS
ACDC
ADDI
ADDIU
@@ -9,58 +9,58 @@ ADDU
airgap
Allnodes
allocs
-Alphanet
alphanet
-Alphanets
+Alphanet
alphanets
+Alphanets
altda
ANDI
Ankr
Apeworx
Arweave
authrpc
-Autorelay
autorelay
+Autorelay
autorelayer
basefee
bcde
-Betanet
betanet
-Betanets
+Betanet
betanets
+Betanets
BGEZ
BGTZ
Biconomy
BLEZ
-BLOBPOOL
blobpool
+BLOBPOOL
blobspace
Blockdaemon
blockhash
blocklists
-BLOCKLOGS
blocklogs
-BLOCKPROFILERATE
+BLOCKLOGS
blockprofilerate
+BLOCKPROFILERATE
Blockscout
-Blockspace
blockspace
+Blockspace
blocktime
-Blocktimes
blocktimes
-BLOOMFILTER
+Blocktimes
bloomfilter
+BLOOMFILTER
BLTZ
Bootcamp
bootnode
-BOOTNODES
-Bootnodes
bootnodes
+Bootnodes
+BOOTNODES
bottlenecked
-Brotli
brotli
-Callouts
+Brotli
callouts
+Callouts
CCIP
cdef
Celestia
@@ -72,35 +72,35 @@ chaosnet
Chugsplash
Clabby
codebases
-Collateralized
collateralized
+Collateralized
compr
Comprensive
-COMPUTEPENDINGBLOCK
computependingblock
+COMPUTEPENDINGBLOCK
confs
Consen
corsdomain
counterfactually
-Crosschain
crosschain
+Crosschain
Crossmint
Dapphub
daserver
-DATACAP
datacap
-DATADIR
+DATACAP
datadir
+DATADIR
devdocs
-Devnet
devnet
-Devnets
+Devnet
devnets
+Devnets
direnv
-DISABLETXPOOLGOSSIP
disabletxpoolgossip
-Discv
+DISABLETXPOOLGOSSIP
discv
+Discv
DIVU
Drand
dripcheck
@@ -108,30 +108,30 @@ Drippie
Eigen
EIPs
emmitted
-ENABLEDEPRECATEDPERSONAL
enabledeprecatedpersonal
+ENABLEDEPRECATEDPERSONAL
enginekind
-Erigon
erigon
-ETHERBASE
+Erigon
etherbase
+ETHERBASE
Ethernity
Ethernow
-ETHSTATS
ethstats
-EVMTIMEOUT
+ETHSTATS
evmtimeout
+EVMTIMEOUT
excercise
executability
exfiltrate
-EXITWHENSYNCED
exitwhensynced
-EXTRADATA
+EXITWHENSYNCED
extradata
+EXTRADATA
Farcaster
Faultproof
-FDLIMIT
fdlimit
+FDLIMIT
Flashblocks
Flashbots
forkable
@@ -142,52 +142,52 @@ Fraxtal
funcationality
Funct
gameplay
-GASCAP
gascap
+GASCAP
gaslessly
-GCMODE
gcmode
+GCMODE
Gelato
gifs
-GLOBALQUEUE
globalqueue
-GLOBALSLOTS
+GLOBALQUEUE
globalslots
+GLOBALSLOTS
gokzg
growthepie
hardfork
hardforks
-HEALTHCHECK
healthcheck
+HEALTHCHECK
healthchecks
-HISTORICALRPC
historicalrpc
-HISTORICALRPCTIMEOUT
+HISTORICALRPC
historicalrpctimeout
-HOLESKY
-Holesky
+HISTORICALRPCTIMEOUT
holesky
+Holesky
+HOLESKY
IERC
-IGNOREPRICE
ignoreprice
+IGNOREPRICE
Immunefi
-Inator
inator
-INFLUXDBV
+Inator
influxdbv
+INFLUXDBV
initcode
-IPCDISABLE
ipcdisable
+IPCDISABLE
ipcfile
-IPCPATH
ipcpath
+IPCPATH
IPFS
Isthumus
JALR
-JOURNALREMOTES
journalremotes
-JSPATH
+JOURNALREMOTES
jspath
+JSPATH
jwtsecret
Keccak
leveldb
@@ -196,34 +196,34 @@ Lisk
logfile
logfmt
Mainnets
-MAXAGE
maxage
-MAXBACKUPS
+MAXAGE
maxbackups
-MAXPEERS
+MAXBACKUPS
maxpeers
-MAXPENDPEERS
+MAXPEERS
maxpendpeers
-MAXPRICE
+MAXPENDPEERS
maxprice
-MEMPROFILERATE
+MAXPRICE
memprofilerate
-Merkle
+MEMPROFILERATE
merkle
+Merkle
MFHI
MFLO
Mgas
Minato
-MINFREEDISK
minfreedisk
-MINSUGGESTEDPRIORITYFEE
+MINFREEDISK
minsuggestedpriorityfee
+MINSUGGESTEDPRIORITYFEE
Mintable
Mintplex
MIPSEVM
Mitigations
-Monitorism
monitorism
+Monitorism
Moralis
Mordor
mountpoint
@@ -233,44 +233,44 @@ MTHI
MTLO
MULT
multiaddr
-Multichain
multichain
+Multichain
multiclient
multisigs
MULTU
nethermind
-NETRESTRICT
netrestrict
-NETWORKID
+NETRESTRICT
networkid
-NEWPAYLOAD
+NETWORKID
newpayload
+NEWPAYLOAD
nextra
-NOCOMPACTION
nocompaction
-NODEKEY
+NOCOMPACTION
nodekey
-NODEKEYHEX
+NODEKEY
nodekeyhex
+NODEKEYHEX
nodename
Nodies
-NODISCOVER
nodiscover
-NOLOCALS
+NODISCOVER
nolocals
-NOPREFETCH
+NOLOCALS
noprefetch
-NOPRUNING
+NOPREFETCH
nopruning
-NOSYNCSERVE
+NOPRUNING
nosyncserve
+NOSYNCSERVE
Numba
-Offchain
offchain
+Offchain
opchaina
opchainb
-OPCM
opcm
+OPCM
Openfort
oplabs
opnode's
@@ -278,98 +278,98 @@ opstack
outfile
Pausability
pcscdpath
-Pectra
pectra
+Pectra
Pectra's
-Peerstore
peerstore
+Peerstore
peerstores
-Permissioned
permissioned
-Permissionless
+Permissioned
permissionless
+Permissionless
permissionlessly
Perps
Peta
Pimlico
POAP
POAPs
-PPROF
pprof
-Precommitments
+PPROF
precommitments
+Precommitments
preconfigured
predeploy
-Predeployed
predeployed
-Predeploys
+Predeployed
predeploys
+Predeploys
prefunded
-Preimage
preimage
-PREIMAGES
+Preimage
preimages
+PREIMAGES
preinstall
-Preinstalls
preinstalls
-Prestate
+Preinstalls
prestate
+Prestate
prestates
PREVRANDAO
-PRICEBUMP
pricebump
-PRICELIMIT
+PRICEBUMP
pricelimit
+PRICELIMIT
productionize
productionized
Protip
Proxied
-Proxyd
proxyd
+Proxyd
Pyth
Pyth's
QRNG
-Quicknode
quicknode
+Quicknode
quickstarts
rebalancing
reemit
Reemitting
-Regenesis
regenesis
+Regenesis
Reimagine
-REJOURNAL
rejournal
-REMOTEDB
+REJOURNAL
remotedb
+REMOTEDB
Reown
Reown's
replayability
replayor
reposts
reproven
-REQUIREDBLOCKS
requiredblocks
+REQUIREDBLOCKS
rollouts
-Rollups
rollups
+Rollups
Routescan
rpckind
-RPCPREFIX
rpcprefix
+RPCPREFIX
rpcs
RPGF
-Runbooks
runbooks
+Runbooks
RWAs
safedb
Schnorr
-SEPOLIA
-Sepolia
sepolia
+Sepolia
+SEPOLIA
seqnr
-SEQUENCERHTTP
sequencerhttp
+SEQUENCERHTTP
serv
signup
SLLV
@@ -378,16 +378,16 @@ SLTIU
SLTU
smartcard
snapshotlog
-Snapsync
snapsync
+Snapsync
Solana
Soneium
soyboy
Spearbit
SRAV
SRLV
-Stablecoins
stablecoins
+Stablecoins
statefulset
structs
subcomponents
@@ -396,21 +396,21 @@ subheaders
subsecond
SUBU
Sunnyside
-SUPERCHAIN
-Superchain
superchain
+Superchain
+SUPERCHAIN
Superchain's
superchainerc
Superlend
Superloans
Superscan
Superseed
-Supersim
supersim
-SYNCMODE
+Supersim
syncmode
-SYNCTARGET
+SYNCMODE
synctarget
+SYNCTARGET
syscalls
SYSCON
thirdweb
@@ -423,8 +423,8 @@ Twei
txfeecap
txmgr
txns
-TXPOOL
txpool
+TXPOOL
txproxy
txproxyd
uncensorable
@@ -435,21 +435,21 @@ Unprotect
unsubmitted
UPNP
upstreaming
-VERKLE
verkle
-VHOSTS
+VERKLE
vhosts
-Viem
+VHOSTS
viem
-Viem's
+Viem
viem's
-VMDEBUG
+Viem's
vmdebug
-VMODULE
+VMDEBUG
vmodule
+VMODULE
xlarge
XORI
ZKPs
ZKVM
-Zora
zora
+Zora
From 51b3e809580f346013cc42375164b9e8de166449 Mon Sep 17 00:00:00 2001
From: Bradley Camacho <42678939+bradleycamacho@users.noreply.github.com>
Date: Thu, 15 May 2025 14:51:45 -0700
Subject: [PATCH 11/21] Auto-fix: Update breadcrumbs, spelling dictionary and
other automated fixes
---
words.txt | 230 +++++++++++++++++++++++++++---------------------------
1 file changed, 115 insertions(+), 115 deletions(-)
diff --git a/words.txt b/words.txt
index 14f555b2a..b2d3f4106 100644
--- a/words.txt
+++ b/words.txt
@@ -1,7 +1,7 @@
-accountqueue
ACCOUNTQUEUE
-accountslots
+accountqueue
ACCOUNTSLOTS
+accountslots
ACDC
ADDI
ADDIU
@@ -9,58 +9,58 @@ ADDU
airgap
Allnodes
allocs
-alphanet
Alphanet
-alphanets
+alphanet
Alphanets
+alphanets
altda
ANDI
Ankr
Apeworx
Arweave
authrpc
-autorelay
Autorelay
+autorelay
autorelayer
basefee
bcde
-betanet
Betanet
-betanets
+betanet
Betanets
+betanets
BGEZ
BGTZ
Biconomy
BLEZ
-blobpool
BLOBPOOL
+blobpool
blobspace
Blockdaemon
blockhash
blocklists
-blocklogs
BLOCKLOGS
-blockprofilerate
+blocklogs
BLOCKPROFILERATE
+blockprofilerate
Blockscout
-blockspace
Blockspace
+blockspace
blocktime
-blocktimes
Blocktimes
-bloomfilter
+blocktimes
BLOOMFILTER
+bloomfilter
BLTZ
Bootcamp
bootnode
-bootnodes
-Bootnodes
BOOTNODES
+Bootnodes
+bootnodes
bottlenecked
-brotli
Brotli
-callouts
+brotli
Callouts
+callouts
CCIP
cdef
Celestia
@@ -72,35 +72,35 @@ chaosnet
Chugsplash
Clabby
codebases
-collateralized
Collateralized
+collateralized
compr
Comprensive
-computependingblock
COMPUTEPENDINGBLOCK
+computependingblock
confs
Consen
corsdomain
counterfactually
-crosschain
Crosschain
+crosschain
Crossmint
Dapphub
daserver
-datacap
DATACAP
-datadir
+datacap
DATADIR
+datadir
devdocs
-devnet
Devnet
-devnets
+devnet
Devnets
+devnets
direnv
-disabletxpoolgossip
DISABLETXPOOLGOSSIP
-discv
+disabletxpoolgossip
Discv
+discv
DIVU
Drand
dripcheck
@@ -108,30 +108,30 @@ Drippie
Eigen
EIPs
emmitted
-enabledeprecatedpersonal
ENABLEDEPRECATEDPERSONAL
+enabledeprecatedpersonal
enginekind
-erigon
Erigon
-etherbase
+erigon
ETHERBASE
+etherbase
Ethernity
Ethernow
-ethstats
ETHSTATS
-evmtimeout
+ethstats
EVMTIMEOUT
+evmtimeout
excercise
executability
exfiltrate
-exitwhensynced
EXITWHENSYNCED
-extradata
+exitwhensynced
EXTRADATA
+extradata
Farcaster
Faultproof
-fdlimit
FDLIMIT
+fdlimit
Flashblocks
Flashbots
forkable
@@ -142,52 +142,52 @@ Fraxtal
funcationality
Funct
gameplay
-gascap
GASCAP
+gascap
gaslessly
-gcmode
GCMODE
+gcmode
Gelato
gifs
-globalqueue
GLOBALQUEUE
-globalslots
+globalqueue
GLOBALSLOTS
+globalslots
gokzg
growthepie
hardfork
hardforks
-healthcheck
HEALTHCHECK
+healthcheck
healthchecks
-historicalrpc
HISTORICALRPC
-historicalrpctimeout
+historicalrpc
HISTORICALRPCTIMEOUT
-holesky
-Holesky
+historicalrpctimeout
HOLESKY
+Holesky
+holesky
IERC
-ignoreprice
IGNOREPRICE
+ignoreprice
Immunefi
-inator
Inator
-influxdbv
+inator
INFLUXDBV
+influxdbv
initcode
-ipcdisable
IPCDISABLE
+ipcdisable
ipcfile
-ipcpath
IPCPATH
+ipcpath
IPFS
Isthumus
JALR
-journalremotes
JOURNALREMOTES
-jspath
+journalremotes
JSPATH
+jspath
jwtsecret
Keccak
leveldb
@@ -196,34 +196,34 @@ Lisk
logfile
logfmt
Mainnets
-maxage
MAXAGE
-maxbackups
+maxage
MAXBACKUPS
-maxpeers
+maxbackups
MAXPEERS
-maxpendpeers
+maxpeers
MAXPENDPEERS
-maxprice
+maxpendpeers
MAXPRICE
-memprofilerate
+maxprice
MEMPROFILERATE
-merkle
+memprofilerate
Merkle
+merkle
MFHI
MFLO
Mgas
Minato
-minfreedisk
MINFREEDISK
-minsuggestedpriorityfee
+minfreedisk
MINSUGGESTEDPRIORITYFEE
+minsuggestedpriorityfee
Mintable
Mintplex
MIPSEVM
Mitigations
-monitorism
Monitorism
+monitorism
Moralis
Mordor
mountpoint
@@ -233,44 +233,44 @@ MTHI
MTLO
MULT
multiaddr
-multichain
Multichain
+multichain
multiclient
multisigs
MULTU
nethermind
-netrestrict
NETRESTRICT
-networkid
+netrestrict
NETWORKID
-newpayload
+networkid
NEWPAYLOAD
+newpayload
nextra
-nocompaction
NOCOMPACTION
-nodekey
+nocompaction
NODEKEY
-nodekeyhex
+nodekey
NODEKEYHEX
+nodekeyhex
nodename
Nodies
-nodiscover
NODISCOVER
-nolocals
+nodiscover
NOLOCALS
-noprefetch
+nolocals
NOPREFETCH
-nopruning
+noprefetch
NOPRUNING
-nosyncserve
+nopruning
NOSYNCSERVE
+nosyncserve
Numba
-offchain
Offchain
+offchain
opchaina
opchainb
-opcm
OPCM
+opcm
Openfort
oplabs
opnode's
@@ -278,98 +278,98 @@ opstack
outfile
Pausability
pcscdpath
-pectra
Pectra
+pectra
Pectra's
-peerstore
Peerstore
+peerstore
peerstores
-permissioned
Permissioned
-permissionless
+permissioned
Permissionless
+permissionless
permissionlessly
Perps
Peta
Pimlico
POAP
POAPs
-pprof
PPROF
-precommitments
+pprof
Precommitments
+precommitments
preconfigured
predeploy
-predeployed
Predeployed
-predeploys
+predeployed
Predeploys
+predeploys
prefunded
-preimage
Preimage
-preimages
+preimage
PREIMAGES
+preimages
preinstall
-preinstalls
Preinstalls
-prestate
+preinstalls
Prestate
+prestate
prestates
PREVRANDAO
-pricebump
PRICEBUMP
-pricelimit
+pricebump
PRICELIMIT
+pricelimit
productionize
productionized
Protip
Proxied
-proxyd
Proxyd
+proxyd
Pyth
Pyth's
QRNG
-quicknode
Quicknode
+quicknode
quickstarts
rebalancing
reemit
Reemitting
-regenesis
Regenesis
+regenesis
Reimagine
-rejournal
REJOURNAL
-remotedb
+rejournal
REMOTEDB
+remotedb
Reown
Reown's
replayability
replayor
reposts
reproven
-requiredblocks
REQUIREDBLOCKS
+requiredblocks
rollouts
-rollups
Rollups
+rollups
Routescan
rpckind
-rpcprefix
RPCPREFIX
+rpcprefix
rpcs
RPGF
-runbooks
Runbooks
+runbooks
RWAs
safedb
Schnorr
-sepolia
-Sepolia
SEPOLIA
+Sepolia
+sepolia
seqnr
-sequencerhttp
SEQUENCERHTTP
+sequencerhttp
serv
signup
SLLV
@@ -378,16 +378,16 @@ SLTIU
SLTU
smartcard
snapshotlog
-snapsync
Snapsync
+snapsync
Solana
Soneium
soyboy
Spearbit
SRAV
SRLV
-stablecoins
Stablecoins
+stablecoins
statefulset
structs
subcomponents
@@ -396,21 +396,21 @@ subheaders
subsecond
SUBU
Sunnyside
-superchain
-Superchain
SUPERCHAIN
+Superchain
+superchain
Superchain's
superchainerc
Superlend
Superloans
Superscan
Superseed
-supersim
Supersim
-syncmode
+supersim
SYNCMODE
-synctarget
+syncmode
SYNCTARGET
+synctarget
syscalls
SYSCON
thirdweb
@@ -423,8 +423,8 @@ Twei
txfeecap
txmgr
txns
-txpool
TXPOOL
+txpool
txproxy
txproxyd
uncensorable
@@ -435,21 +435,21 @@ Unprotect
unsubmitted
UPNP
upstreaming
-verkle
VERKLE
-vhosts
+verkle
VHOSTS
-viem
+vhosts
Viem
-viem's
+viem
Viem's
-vmdebug
+viem's
VMDEBUG
-vmodule
+vmdebug
VMODULE
+vmodule
xlarge
XORI
ZKPs
ZKVM
-zora
Zora
+zora
From 2bd4e3e77d73babcd958e525a0d78d43444556f7 Mon Sep 17 00:00:00 2001
From: Bradley Camacho <42678939+bradleycamacho@users.noreply.github.com>
Date: Thu, 15 May 2025 14:53:07 -0700
Subject: [PATCH 12/21] Add reviews
---
pages/interop/message-expiration.mdx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pages/interop/message-expiration.mdx b/pages/interop/message-expiration.mdx
index 523e422f3..924709b41 100644
--- a/pages/interop/message-expiration.mdx
+++ b/pages/interop/message-expiration.mdx
@@ -28,7 +28,7 @@ If a message expires before being relayed, developers can reemit the message on
## The expiry window
-The expiry window is an offchain constant, defined by op-supervisor, that defines how long a cross-chain message or event emmitted by a chain remains valid. For any chain in the [interop set](/interop/explainer), messages must be executed within 7 days (604,800 seconds) of the initiating message being sent.
+The expiry window is an offchain constant, defined by [op-supervisor](/interop/op-supervisor), that defines how long a cross-chain message or event emmitted by a chain remains valid. For any chain in the [interop set](/interop/explainer#superchain-interop-cluster), messages must be executed within 7 days (604,800 seconds) of the initiating message being sent.
After this period, a message can no longer be executed on the destination chain unless the event is remitted on the source chain.
From 43b041163a68df4774207a33bf88cf1f7254e870 Mon Sep 17 00:00:00 2001
From: Bradley Camacho <42678939+bradleycamacho@users.noreply.github.com>
Date: Thu, 15 May 2025 14:56:53 -0700
Subject: [PATCH 13/21] Fix callout
---
pages/interop/reading-logs.mdx | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/pages/interop/reading-logs.mdx b/pages/interop/reading-logs.mdx
index ae5b78d29..f2fe03ff4 100644
--- a/pages/interop/reading-logs.mdx
+++ b/pages/interop/reading-logs.mdx
@@ -27,9 +27,9 @@ This enables developers to:
* Build cross-chain applications that react to events happening across the Superchain.
* Create novel applications that leverage data from multiple chains.
-
+
The destination chain must execute initiating message or event within the [expiry window of 7 days](/interop/message-expiration).
-
+
## Why use `CrossL2Inbox`?
From 375f96ed5c99beecf20f371782335b15dfdb6062 Mon Sep 17 00:00:00 2001
From: Bradley Camacho <42678939+bradleycamacho@users.noreply.github.com>
Date: Thu, 15 May 2025 15:07:58 -0700
Subject: [PATCH 14/21] Fix callout
---
pages/interop/reading-logs.mdx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pages/interop/reading-logs.mdx b/pages/interop/reading-logs.mdx
index f2fe03ff4..28c69ca3d 100644
--- a/pages/interop/reading-logs.mdx
+++ b/pages/interop/reading-logs.mdx
@@ -28,7 +28,7 @@ This enables developers to:
* Create novel applications that leverage data from multiple chains.
-The destination chain must execute initiating message or event within the [expiry window of 7 days](/interop/message-expiration).
+The destination chain must execute initiating messages within the [expiry window of 7 days](/interop/message-expiration).
## Why use `CrossL2Inbox`?
From 198805cacfcf5da8b7687238a19227ee388ddce7 Mon Sep 17 00:00:00 2001
From: Zain Bacchus
Date: Thu, 15 May 2025 17:11:42 -0500
Subject: [PATCH 15/21] Update reading-logs.mdx
---
pages/interop/reading-logs.mdx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pages/interop/reading-logs.mdx b/pages/interop/reading-logs.mdx
index 28c69ca3d..9221fc197 100644
--- a/pages/interop/reading-logs.mdx
+++ b/pages/interop/reading-logs.mdx
@@ -28,7 +28,7 @@ This enables developers to:
* Create novel applications that leverage data from multiple chains.
-The destination chain must execute initiating messages within the [expiry window of 7 days](/interop/message-expiration).
+When reading logs, you must reference logs created within the [expiry window of 7 days](/interop/message-expiration).
## Why use `CrossL2Inbox`?
From 65dd836b97e1912fa5ce77c5d70d5cb8a9bda939 Mon Sep 17 00:00:00 2001
From: Zain Bacchus
Date: Thu, 15 May 2025 17:34:29 -0500
Subject: [PATCH 16/21] Update message-expiration.mdx
Address Skele's feedback from https://github.com/ethereum-optimism/docs/pull/1605#discussion_r2085196331
---
pages/interop/message-expiration.mdx | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/pages/interop/message-expiration.mdx b/pages/interop/message-expiration.mdx
index 924709b41..af213963a 100644
--- a/pages/interop/message-expiration.mdx
+++ b/pages/interop/message-expiration.mdx
@@ -22,15 +22,15 @@ is_imported_content: 'false'
# Message expiration
-[Initiating messages](/interop/message-passing) sent between OP Stack chains have a limited validity period called the expiry window. Once this window elapses, the initiating message becomes invalid and can no longer be referenced on the destination chain.
+[Messages](/interop/message-passing) referenced between OP Stack chains have a limited validity period called the expiry window. Once this window elapses, the referenced message becomes invalid and can no longer be referenced.
-If a message expires before being relayed, developers can reemit the message on the source chain. This triggers a fresh `SentMessage` event, allowing offchain infrastructure to pick it up and relay it again ensuring successful delivery.
+For messages using [`L2ToL2CrossDomainMessenger`](/interop/message-passing), if a message expires before being referenced, developers can reemit the message on the source chain. This triggers a fresh `SentMessage` event, allowing offchain infrastructure to pick it up and relay it again ensuring successful delivery.
## The expiry window
-The expiry window is an offchain constant, defined by [op-supervisor](/interop/op-supervisor), that defines how long a cross-chain message or event emmitted by a chain remains valid. For any chain in the [interop set](/interop/explainer#superchain-interop-cluster), messages must be executed within 7 days (604,800 seconds) of the initiating message being sent.
+The expiry window is an offchain constant, defined by [OP-Supervisor](/interop/op-supervisor), that defines how long a cross-chain message or event emmitted remains valid. For any chain in the [Superchain interop cluster](/interop/explainer#superchain-interop-cluster), messages must be reference within 7 days (604,800 seconds) of the log being created.
-After this period, a message can no longer be executed on the destination chain unless the event is remitted on the source chain.
+After this period, a message can no longer be referenced unless the event is remitted.
## Reemitting an expired message
From b1ee83060dbe0c20f33ee0ee3b31821dc52455a6 Mon Sep 17 00:00:00 2001
From: Zain Bacchus
Date: Thu, 15 May 2025 17:37:21 -0500
Subject: [PATCH 17/21] Update message-expiration.mdx
Address Disco feedback from https://github.com/ethereum-optimism/docs/pull/1605#pullrequestreview-2834049970
---
pages/interop/message-expiration.mdx | 2 ++
1 file changed, 2 insertions(+)
diff --git a/pages/interop/message-expiration.mdx b/pages/interop/message-expiration.mdx
index af213963a..7e01bd739 100644
--- a/pages/interop/message-expiration.mdx
+++ b/pages/interop/message-expiration.mdx
@@ -50,6 +50,8 @@ The process to reemit an expired message:
2. [Relay the new message](/interop/message-passing) as normal.
+Note: Re-emitting an already relayed message will have no effect on the destination chain since the re-emitted event won't be logged by OP-Supervisor.
+
## Next steps
* [Build a revolutionary app](/app-developers/get-started) that uses multiple blockchains within the Superchain
From 825519bbe2db9d37fee5ea624c94734ca6fce90c Mon Sep 17 00:00:00 2001
From: Zain Bacchus
Date: Thu, 15 May 2025 17:39:53 -0500
Subject: [PATCH 18/21] Update message-expiration.mdx
Addressing, https://github.com/ethereum-optimism/docs/pull/1605#discussion_r2085189644
---
pages/interop/message-expiration.mdx | 10 ++--------
1 file changed, 2 insertions(+), 8 deletions(-)
diff --git a/pages/interop/message-expiration.mdx b/pages/interop/message-expiration.mdx
index 7e01bd739..0ef07d700 100644
--- a/pages/interop/message-expiration.mdx
+++ b/pages/interop/message-expiration.mdx
@@ -40,15 +40,9 @@ This emits a new `SentMessage` log with the same content as the original message
The process to reemit an expired message:
-1. Call [`resendMessage`](https://github.com/ethereum-optimism/optimism/blob/a979a9444dbb482843f2a42f437ced54a8ac1053/packages/contracts-bedrock/interfaces/L2/IL2ToL2CrossDomainMessenger.sol#L110-L128) on the origin chain to reemit the message event. The contract verifies the message hash was originally sent. The call required the following parameters:
+1. Call [`resendMessage`](https://github.com/ethereum-optimism/optimism/blob/a979a9444dbb482843f2a42f437ced54a8ac1053/packages/contracts-bedrock/interfaces/L2/IL2ToL2CrossDomainMessenger.sol#L110-L128) on the origin chain to reemit the message event. The contract verifies the message hash was originally sent. The call requires [every parameter](https://github.com/ethereum-optimism/optimism/blob/a979a9444dbb482843f2a42f437ced54a8ac1053/packages/contracts-bedrock/interfaces/L2/IL2ToL2CrossDomainMessenger.sol#L110-L128) to rebuild the original message.
- * `_destination`: Chain ID of the destination chain.
- * `_nonce`: Nonce of the message sent
- * `_sender`: Address that sent the message
- * `_target`: Target contract or wallet address.
- * `message`: Message payload to call target with.
-
-2. [Relay the new message](/interop/message-passing) as normal.
+2. [Relay the new message](/interop/message-passing#executing-message) as normal.
Note: Re-emitting an already relayed message will have no effect on the destination chain since the re-emitted event won't be logged by OP-Supervisor.
From 4e1ae1292d635800b7a927e29655e3fa3a6f2166 Mon Sep 17 00:00:00 2001
From: Zain Bacchus
Date: Thu, 15 May 2025 17:42:01 -0500
Subject: [PATCH 19/21] Update message-expiration.mdx
fix fragments
---
pages/interop/message-expiration.mdx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pages/interop/message-expiration.mdx b/pages/interop/message-expiration.mdx
index 0ef07d700..dad693a24 100644
--- a/pages/interop/message-expiration.mdx
+++ b/pages/interop/message-expiration.mdx
@@ -24,7 +24,7 @@ is_imported_content: 'false'
[Messages](/interop/message-passing) referenced between OP Stack chains have a limited validity period called the expiry window. Once this window elapses, the referenced message becomes invalid and can no longer be referenced.
-For messages using [`L2ToL2CrossDomainMessenger`](/interop/message-passing), if a message expires before being referenced, developers can reemit the message on the source chain. This triggers a fresh `SentMessage` event, allowing offchain infrastructure to pick it up and relay it again ensuring successful delivery.
+For messages using [`L2ToL2CrossDomainMessenger`](/interop/message-passing), if a message expires before being referenced, developers can reemit the message on the source chain. This triggers a fresh `SentMessage` event, enabling the message to be relayed.
## The expiry window
From cafff0fcd710092990e66f6e71595ba506dd7149 Mon Sep 17 00:00:00 2001
From: Bradley Camacho <42678939+bradleycamacho@users.noreply.github.com>
Date: Thu, 15 May 2025 15:44:07 -0700
Subject: [PATCH 20/21] Spelling fix
---
pages/interop/message-expiration.mdx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pages/interop/message-expiration.mdx b/pages/interop/message-expiration.mdx
index dad693a24..955291066 100644
--- a/pages/interop/message-expiration.mdx
+++ b/pages/interop/message-expiration.mdx
@@ -28,7 +28,7 @@ For messages using [`L2ToL2CrossDomainMessenger`](/interop/message-passing), if
## The expiry window
-The expiry window is an offchain constant, defined by [OP-Supervisor](/interop/op-supervisor), that defines how long a cross-chain message or event emmitted remains valid. For any chain in the [Superchain interop cluster](/interop/explainer#superchain-interop-cluster), messages must be reference within 7 days (604,800 seconds) of the log being created.
+The expiry window is an offchain constant, defined by [OP-Supervisor](/interop/op-supervisor), that defines how long a cross-chain message or event emitted remains valid. For any chain in the [Superchain interop cluster](/interop/explainer#superchain-interop-cluster), messages must be reference within 7 days (604,800 seconds) of the log being created.
After this period, a message can no longer be referenced unless the event is remitted.
From fc292810f38bf6250dbc25f3d5a56749fb134d88 Mon Sep 17 00:00:00 2001
From: Zain Bacchus
Date: Thu, 15 May 2025 17:47:57 -0500
Subject: [PATCH 21/21] Update message-expiration.mdx
spelling
---
pages/interop/message-expiration.mdx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pages/interop/message-expiration.mdx b/pages/interop/message-expiration.mdx
index 955291066..ed5cc1ac5 100644
--- a/pages/interop/message-expiration.mdx
+++ b/pages/interop/message-expiration.mdx
@@ -28,7 +28,7 @@ For messages using [`L2ToL2CrossDomainMessenger`](/interop/message-passing), if
## The expiry window
-The expiry window is an offchain constant, defined by [OP-Supervisor](/interop/op-supervisor), that defines how long a cross-chain message or event emitted remains valid. For any chain in the [Superchain interop cluster](/interop/explainer#superchain-interop-cluster), messages must be reference within 7 days (604,800 seconds) of the log being created.
+The expiry window is an offchain constant, defined by [OP-Supervisor](/interop/op-supervisor), that defines how long a cross-chain message or event emitted remains valid. For any chain in the [Superchain interop cluster](/interop/explainer#superchain-interop-cluster), messages must be referenced within 7 days (604,800 seconds) of the log being created.
After this period, a message can no longer be referenced unless the event is remitted.