OptimismPortal, ensure these transactions are executed securely and transparently. This page summarizes the lifecycle of a cross-chain transaction in three flows and links the detailed explainer for each: deposit flow, transaction flow, and withdrawal flow.
Deposit flow
A deposit is any L2 transaction triggered by a transaction or event on L1. An L1 account or contract (often the L1 Standard Bridge) sends a message through theL1CrossDomainMessenger, which passes it to the OptimismPortal contract on L1. The portal emits a TransactionDeposited event, op-node derives a deposit transaction from that event, and the L2CrossDomainMessenger relays the call to its target on L2. For the step-by-step walkthrough, see Deposit flow.
Transaction flow
Every L2 transaction has two requirements: its data must be written to L1 (done in compressed batches byop-batcher), and it must be executed by the execution client to update the L2 state, after which op-proposer posts a commitment to the resulting state to L1. For the step-by-step walkthrough, see Transaction flow; for when a transaction can be relied on as irreversible, see Transaction finality.
Withdrawal flow
A withdrawal is a transaction sent from L2 back to L1. It requires three user transactions: a withdrawal initiating transaction on L2, recorded by theL2ToL1MessagePasser; a withdrawal proving transaction on L1, which proves the withdrawal against an output root; and, once the fault challenge period (7 days on mainnet, shorter on test networks) has passed, a withdrawal finalizing transaction on L1 that executes the withdrawal. For the step-by-step walkthrough, see Withdrawal flow.