Repository navigation
[General] Questions about historical stalled cross-chain transactions in the OP Mainnet Standard Bridge #946
iLifetruth
started this conversation in
General
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Discussion Topic
Hi Optimism team,
We are currently studying cross-chain transactions that remain incomplete beyond their expected completion time and the assets left in unresolved states, including their possible effects on users, liquidity, and asset transparency. We refer to these incomplete lifecycles as stalled transactions and to the associated unresolved value as stranded assets.
Our broader goal is to better understand transaction reliability, recovery, and financial transparency across the bridge ecosystem. Because public records may not capture protocol-specific handling or subsequent resolution, we are contacting bridge teams to check our interpretation and learn how these states are managed in practice. We are not seeking to assign fault or characterize the observations as vulnerabilities.
While looking through public OP Mainnet Standard Bridge records, we came across historical L2-to-L1 withdrawals whose elapsed time exceeded the eight-day operational waiting threshold measured from L2 initiation and used in our analysis, but for which we did not observe L1 finalization at the measurement cutoff. We also noticed a small number of token-recording anomalies and L1-to-L2 deposits involving token pairs for which we did not observe successful completion through the standard bridge flow. Some transactions may have been resolved since our review, and we may be missing relevant protocol or operational context.
Until finalization, the associated value may remain unavailable to the user, while the corresponding locked assets may also represent outstanding withdrawal obligations. We would be grateful for any guidance on how OP Mainnet handles and accounts for these states.
Reference records
The following three L2 source transactions and their corresponding protocol withdrawal identifiers (the MessagePassed.withdrawalHash event field) are included to make the observed finalization states concrete. A fresh finalizedWithdrawals check on August 24, 2026 returned false for all three:
If possible, could you help us understand the following?
Withdrawal and recovery
Can an older L2-to-L1 withdrawal that remains unfinalized still be proven, re-proven where necessary, and finalized by its user or another relayer once the protocol conditions are satisfied? Are there any expiry, protocol-version, or migration conditions that may affect historical withdrawals?
What mechanisms currently help users complete withdrawals after they become eligible for finalization, such as user reminders, permissionless third-party finalization, or simplified finalization workflows?
Other observed states
PoR and reserve transparency
Regular or real-time reconciliation can give users clearer information about which locked assets remain available as backing and which are already committed to unresolved withdrawal obligations, thereby improving transparency and confidence.
A simple example illustrates why this matters: if 100 BTC remains locked after 50 of the original 100 WBTC has been burned for a withdrawal that has not completed, the gross reserve ratio is 100 BTC / 50 WBTC = 200%. Treating the 50 BTC committed to that unresolved withdrawal as unavailable backing gives an adjusted ratio of (100 BTC - 50 BTC) / 50 WBTC = 100%.
If useful, we would be glad to provide the token-recording transaction identifiers, additional withdrawal records, storage-check evidence, or event comparisons and to help investigate particular cases. A brief reply or guidance on the appropriate technical contact would already be very helpful.
Thank you for considering the questions.
Best regards,
Wenlong Zhang
Zhejiang University
wlzhang_edu@zju.edu.cn
All reactions