cygaar Profile picture
Jul 31 17 tweets 5 min read Twitter logo Read on Twitter
Everyone is claiming that bridging into Base chain is a one way process with no way to withdraw funds.

This is not true.

You can use the native withdrawal process to get your funds back on mainnet (7 days).

If you NEED to bridge back to Ethereum, here's an in-depth guide: Image
Base chain is basically a 1-1 fork of Optimism which means we can leverage all the features that OP has.

This includes a native withdrawal process which allows you to move ETH from Base back to mainnet. The downside is that it takes 7 days due to the challenge period.
Why the 7 day period? Because optimistic rollups need a long enough period to challenge potentially fraudulent claims.

Due to the 7 day period, most people will use 3rd party bridges to bridge back to mainnet quicker. However, the native withdrawal method should always work.
Before going further, please note that the second half of this guide requires that you have git and golang installed on your computer to run a script for withdrawing.

If you do not have either of these, I recommend waiting for Coinbase to release their official bridge frontend.
To start, you'll want to visit the L2StandardBridge contract here: .

Go to the contract section and click on "Write as Proxy"basescan.org/address/0x4200…
Go down to either "withdraw" or "withdrawTo". The only difference between the 2 is that the latter allows you to choose the destination address that receives the ETH on mainnet.

Here's how you should fill out the fields:
1) withdraw - this is the amount of ETH you want to bridge back.

2) _l2Token - use the value 0xDeadDeAddeAddEAddeadDEaDDEAdDeaDDeAD0000. This the ETH token address on Base.
3) _amount - this should be the same value you used for part 1, but converted to wei. You can use this to convert:

4) _minGasLimit - put 0

5) _extraData - put 0x

Submit the txn and save the txn hash. We'll refer to it later.eth-converter.com
Before I explain the next step, let's talk a bit about how OP handles withdrawals. Post-Bedrock upgrade, users need to do 2 things before they can withdraw. They first need to post a proof to L1 that they did a withdrawal on the L2 (Base in this case).
After this, the user must wait 7 days to pass so any external party has the opportunity to challenge the proof. If no challenge happens, the user can finalize their withdrawal on L1.

On OP mainnet there's a nice UI to facilitate this, for Base we're going to use a cmd line tool. Image
Here's the command line tool for withdrawals written by the Base team: (h/t @steveklbnf). Clone the repo locally and run "go install" in the folder. You should be able to run the withdrawer command.github.com/base-org/withd…
The README explains what needs to be done, but you'll essentially run the withdrawer command with the necessary inputs - txn hash from above, rpc url (you can use Alchemy/Infura), and the private key of the account that withdrew (DO NOT SHARE THIS ANYWHERE).
After running this command you'll get a txn hash. You can confirm that your proof went through by looking up this txn hash on Etherscan (for mainnet). Image
You'll then have to wait 7 days before proceeding. Once this challenge period is over, you can run the second command in the README for finalizing the withdrawal.

There's a good chance the official UI comes out before then which will make this process easier.
The OP stack was always built with a way to bridge back from L2 to L1, they just happened to make a UI to make this process easier.

This guide works for all OP-stack chains.

For a full explanation of the withdrawal process, read more here: community.optimism.io/docs/protocol/…
That's all there is to it - withdrawing isn't particularly hard, but it does require some technical savviness for now.

This guide was made for people that absolutely need to bridge back right now and don't want to wait for the official bridge UI to come out.
Do I recommend you do this? Probably not. A friendly UI is much simpler and less confusing to people.

However, the OP stack was built with a way to trustlessly rage quit funds back to mainnet, and I think it's important that people are aware of this.

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with cygaar

cygaar Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @0xCygaar

Jul 30
I've seen a lot of people talk about bridging into Base chain to ape into some memecoins.

Since there's no official bridge frontend, here's a simple guide on moving ETH to Base chain 🧵: Image
It really just boils down to sending ETH to the official Base bridge contract. Once the contract sees that you sent ETH, it'll initiate a deposit of ETH into Base.

We can see the code that gets executed when you send the ETH: Image
The bridge address is 0x49048044d57e1c92a77f79988d21fa8faf74e97e.

All you need to do is transfer ETH to this address. After sending ETH, wait about 5 minutes for the ETH to show up on Base.

I recommend starting with a small amount. Do not send ETH to any other address.
Read 7 tweets
Jul 25
A simple primer on Ethereum client diversity - what it means, why it matters, the current state, and how Ethereum can be made more resilient 🧵: Image
We first need to go over what an Ethereum client is. Ethereum is a decentralized network meaning there are thousands of machines (nodes) in the world that are connected together. These nodes run software called "clients" which implement the Ethereum protocol.
There are two types of clients in Ethereum: execution clients and consensus clients.

Execution clients listen for new transactions shared peer to peer, run them in the Ethereum virtual machine (EVM), and hold the current state of the network (account balances, storage, etc).
Read 18 tweets
Jul 17
Celo's transition from alt-L1 to an Ethereum L2 is interesting for a couple of reasons:

1) ETH L2s (specifically OP stack) continue to gain more adoption
2) First(?) use of decentralized sequencing
3) Using @eigenlayer for DA instead of ETH calldata

More rollup thoughts below: Image
Here's the full Celo proposal if you're curious: .

However, I'm more interested in what this might tell us about the next couple months of the rollup space:forum.celo.org/t/clabs-propos…
1) We'll continue to see more and more ETH L2s launch.

The L2 narrative is growing each day. Lower fees and faster finality lead to a smoother user experience. When compared to L1s, L2s inherit some security from ETH mainnet instead of relying on new (lower) trust assumptions.
Read 10 tweets
Jul 11
The Brazilian Central Bank is launching an ERC20-based digital currency soon.

The smart contract for their CBDC contains logic that allows them to freely move, burn, or freeze user funds. They will also be able to control who can move funds around. Image
The full repo can be found here: .

They didn't release the actual smart contracts, but we can figure out what the code will look like based on the provided ABIs and documentation.github.com/bacen/pilotord…
Here are all the roles that control the token: . You'll see "burner", "freezer", and "mover".

Here's the ABI for the actual token: https://t.co/jo4yxOF4Uy. This is where I found the "move" function.github.com/bacen/pilotord…
github.com/bacen/pilotord…
Read 5 tweets
Jun 30
The @ether mint contract has now been deployed and verified which means it's time to go through the code.

I'm going to explain how the mint will work and the gas optimizations that I added to reduce fees for users 🧵:
The contract can be found here: .

For context, I wrote the code and had @optimizoor and @0x_Beans audit. I am not officially on the Ether team - I was brought in to write the smart contract for the mint.etherscan.io/address/0x6c95…
The full mint details can be found here: .

There will 3 mint options:
- Free allowlist mint with a 10 week token lockup
- Paid allowlist mint with no lockup (0.35 ETH)
- Paid public mint with no lockup (0.65 ETH)

There is a function for each in the code.ether.site/mintInfo
Read 16 tweets
Jun 26
The @azuki MysteryBean contract has been verified which means it's time to go through the code.

Let's talk about how minting will work and the various gas optimizations that were added to reduce fees for users 🧵:
For context, @2pmflow wrote the contract while @optimizoor and I audited the code and added in some gas optimizations.

The contract can be found here: .

I will focus this thread on minting/gas optimizations, but I may do a full breakdown in the future.etherscan.io/address/0x3af2…
If you go to line 258 in MysteryBean.sol, you'll find the presaleMint function. This function will be used for both Azuki and Beanz presale minting.

In order to mint, you'll need a signature parameter which means you MUST mint from the Azuki website and not from the contract.
Read 13 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us on Twitter!

:(