Skip to main content
This guide is for developers who want to withdraw CELO from Celo back to Ethereum programmatically with the viem OP Stack. If you just want to bridge with a UI, use Superbridge. The example below runs against the testnets, withdrawing CELO from Celo Sepolia to Ethereum Sepolia.

Steps to withdraw CELO

Withdrawals require the user to submit three transactions:
  1. Withdrawal initiating a transaction, which the user submits on L2.
  2. Withdrawal proving transaction, which the user submits on L1 to prove that the withdrawal is legitimate.
  3. Withdrawal finalizing transaction, which the user submits on L1 after the fault challenge period has passed, to actually run the transaction on L1.

Code example

The following example demonstrates how to configure a file with all the details you need for interacting with Celo Sepolia.