How to bridge between StarkNet and Ethereum
Why are we here?
Bridging tokens from different ecosystems have always been a challenge. I remember when I first bridged from Ethereum to Polygon (at the time MATIC) in late 2020. I asked the same questions as the struggling users I see in the StarkGate discord channel today:
Where are my funds? Wen token on the other side of bridge? Are funds #safu?
The user experience for bridging is more akin to praying. You pray that funds will arrive safely on the other side. When funds do somehow show up, it is a sigh of relief and a pleasant surprise. There always seems to be a sense of risk when crossing a bridge.
Bridging on a Rollup
What is unique about rollups is that ultimately, Ethereum is truth. Even though there is a blockchain on StarkNet, all transactions on StarkNet get “rolled up” and verified by Ethereum. Therefore, the ultimate source of truth will always be Ethereum.
This property presents us with an opportunity to clarify the bridging process. When we bridge from Ethereum to StarkNet, the message sent from Ethereum to StarkNet ultimately comes back to Ethereum. When we bridge from StarkNet to Ethereum, the message gets “rolled up” to Ethereum like a normal transaction.
Let’s look at a grossly simplified diagram of the bridging process:
Ethereum → StarkNet
StarkNet → Ethereum
We can bring clarity at each stage of the bridging process, whether it's Ethereum to StarkNet or Starknet to Ethereum, using StarkScan!
StarkScan & StarkGate
StarkGate is the primary token bridge between Ethereum and StarkNet, developed by StarkWare.
StarkScan is a next-generation block explorer built for StarkNet.
We built StarkScan with unique features that bring more clarity to the bridging process.
Let’s look at how to bridge assets between Ethereum and StarkNet!
How to bridge between Ethereum and StarkNet
Let’s start with Depositing funds from Ethereum to StarkNet.
Go to StarkGate:
Ethereum → StarkNet
- Input the amount of Ethereum you’d like to bridge and click Transfer
2. To track your progress of the transfer, click on View on StarkScan and click on Track progress with Message Hash on the StarkGate section.
3. The Status of the Message will go from Registered on L1 → Consumed on L2 → Cleared on L1. Once the Message is Cleared on L1, you should be able to see your funds on StarkNet!
Next, we will look at withdrawing from StarkNet to Ethereum
StarkNet → Ethereum
- Click the Withdraw tab. Input the amount of Ethereum you’d like to bridge and click Transfer.
2. To track your progress of the transfer, click on View on StarkScan and wait for the Transaction Status to turn from Received to Pending or Accepted to L2. This could take from a couple minutes to an hour. Once the status is Pending or Accepted to L2, you will see a StarkGate section. Click on Track progress with Message Hash to track the progress of your transfer.
3. The Status of the Message will go from Sent on L2 → Attached on L1. Once the Message is Attached on L1, click on Complete Transfer on StarkGate. It could take a couple of hours for the message to be Attached on L1!
4. Once you click Complete the Transfer and sign the transaction, navigate to Starkscan. You will see that the message has been Consumed on L1. This means that you have successfully bridged from StarkNet to Ethereum!
Looking ahead 🫡
Adding message logs, StarkGate in Ethereum and StarkNet transactions, and Message Status is the first step for us to bring more clarity, certainty, and confidence to the bridging process. We are exploring further ways to integrate with StarkGate to help users cross the bridge onto StarkNet.
Thanks for reading!