Easy mode
If you don't want users having to deal with the hassle of using Superbridge 7 days later to finalize their withdrawals, Easy Mode is for you. For a small fee (to cover gas costs) when initiating your withdrawal we'll handle relaying your users withdrawal to Ethereum mainnet.
So we can understand more in depth the how and why of Easy mode withdrawals, we’ll quickly cover the standard withdrawal flow its complexity.
Withdrawals
A withdrawal operation in the context of an OP rollup refers to any transaction initiated on the rollup and completed on the L1. The most obvious use case for withdrawals is obviously token bridging, where tokens are locked/burned on the rollup and released/minted on the L1, but actually any valid transaction can be submitted as a withdrawal via the L2ToL1MessagePasser
contract.
However, the user experience around withdrawals is a little rough - it’s not the case that after initiating a transaction on the L2 that the action happens on the L1 immediately. First, the state root of the of the epoch containing your transaction needs to be proposed to the L1. Most mainnet deployments of OP rollups have a submission period of every 1800 blocks, or roughly every hour.
After this state root has been proposed, proof needs to be submitted that your transaction is present in the state the root represents. This is done via the OptimismPortal contract, and a merkle trie is used to validate that the withdrawal hash you are proving exists in the proposed state root.
After proof has been submitted and accepted, the withdrawal enters its 7 day challenge period. Witnesses are able to challenge the integrity of submitted state roots and have the ability to discard state roots that are invalid.
It’s important to note that the 7 day challenge period applies to both the withdrawal and the state root proposal separately. So if you’re looking for the withdrawal to take as little time as possible it’s important to do the prove operation as soon as possible.
Finally, after the 7 day challenge period is over the withdrawal can be finalised (executed) via a final call to the OptimismPortal
contract.
Easy mode withdrawals
With that context on normal withdrawals, we can dive into how easy mode withdrawals work.
The Superbridge indexing layer is constantly listening to new bridge events and scanning for the status of deposits and withdrawals. When a withdrawal is marked as Ready to prove or Ready to finalize, we check to see if there is a relaying fee associated with this withdrawal.
The relaying fee, currently denominated in ETH, is added to your withdrawal when you toggle on easy mode withdrawals in the settings page of Superbridge. The fee is set to the cost of two transactions, prove and finalize, each using 400,000 units of gas priced at 40 gwei. In the depths of the current bear market we recognise 40 gwei is potentially too high, so we’re looking to either implement a slightly smarter gas pricing strategy, taking into account historical peaks and valleys in gas pricing, or let users specify the maximum gas price they’d like to pay for these transactions. We just won’t relay them until gas prices dip below the specified amount.
If there is a relaying fee and it’s enough to cover the gas cost of the prove or finalize operation, the indexing layer will send the necessary transaction on your behalf. This is a major improvement over the standard withdrawal flow for a few reasons,
- Sending one transaction is better than three
- You don’t need to set calendar reminders or alarms to finish your withdrawals
- Withdrawals are processed as quickly as possible
To elaborate on that last point, as we mentioned in the standard withdrawal flow section above, the 7 day delay doesn’t start until you’ve completed the prove step of a withdrawal. So if you forget about the prove step your withdrawal time could accidentally shoot up to two weeks!