A table for 20, please. I'd like to make a reservation.
Unichain is a Big Deal.
Why didn't my try/catch work?
High 🌎
A table for 20, please. I'd like to make a reservation.
​
Twenty US states are exploring the creation of Bitcoin reserves.
Some states are direct about it, introducing bills that name Bitcoin as the strategic reserve of choice. Others play it coy, using the term “digital asset” to keep their options open. But let’s be real, every proposal includes restrictions that make Bitcoin the only viable option.
Take North Carolina’s bill: it only allows cryptocurrencies with a market cap over $750 billion. Bitcoin sits at a beefy $1.9 trillion, while Ethereum comes in at $330 billion. Not quite making the cut, in any state. Maryland, on the other hand, isn’t messing around. Its bill is BTC or bust and plans to fill the reserve using fines from gambling violations. Which is… a little poetic? House always wins, but this time, the house is stacking sats.
So, will states actually start hoarding Bitcoin? Or will this all get stuck in legislative limbo while lawmakers try to remember their Coinbase passwords? Either way, the headlines are bullish USA & crypto.
"Another L2? No big deal." That’s the sentiment floating around X. But this totally downplayswhat Uniswap just delivered. This launch is more than just another L2. It introduces cutting-edge tech and takes a step toward defragmenting Ethereum’s scaling landscape while reinforcing Optimism’s Superchain vision.
​
I am particularly excited about their approach to enforcing priority ordering in blocks. MEV is no longer a free-for-all that benefits actors who have no interest in the applications from which they are extracting. MEV can now be internalized by apps. This is a game-changer. I have written more about MEV internalization here. The TLDR; it gives protocols a way to capture and redistribute value that would otherwise go to the block builders and searchers.
​
Then there’s speed. Unichain is built for 250ms block times. Right now, it runs at 1-second blocks which is already twice as fast as OP Mainnet and Base (Solana is at ~400 ms). But this isn’t just about raw speed. Faster blocks mean fewer failed transactions, less slippage, and a smoother experience. DeFi starts to feel instant, unlocking entirely new possibilities.
​
Unichain’s location matters just as much as its tech. Joining the Superchain is like opening a store in SoHo instead of some quiet town upstate. You don’t have to convince people to show up, the traffic is already there. Liquidity and users flow across the ecosystem, creating instant network effects.
​
Uniswap just made a big bet on the Superchain, and I think it’s going to pay off. This isn’t just another L2, it’s a signal of where Ethereum is headed.
Unichain, at a glance
Low 🔎
Why didn't my try/catch work?
​
Have a look at the code below, do you know why this reverts instead of returning address(1)? You'd think we should hit the catch block right?
​
Solidity's try/catch feature is notorious for having its quirks. A StackExchange user ran into the same issue. The key detail here is that try/catch only catches exceptions that occur inside the external function call itself. In our case, because the address was address(0), there was no contract code at that address. This means the call failed at the EVM level before it could even reach an external function. Since the failure happened inside foo() and not in an external contract, Solidity’s try/catch mechanism couldn't catch it, causing an immediate revert instead.
Sometimes dropping the try/catch logic is simpler
​
Weekly Foundry command
Marshal a struct into a meaningful data type via command line using cast call. Imagine you have this struct and a function that returns it:
Because Solidity returns structs as tuples of primitive values, cast cannot directly interpret them. Instead, you must deconstruct the struct into its individual types when calling it.
​
Breaking the struct into its primitive components allows cast to correctly parse and display the data.
​
See you next Thursday!
Got thoughts on this week’s newsletter? Reply to this email or DM me. I’d love to hear from you!
​
Disclaimer: The views and opinions expressed in this newsletter are my own and do not reflect those of my employer or any affiliated organizations. Nothing in this publication constitutes financial, legal, or investment advice.
Blaine Malone
Join '3 Thoughts Thursday', the weekly crypto newsletter.
This weeks newsletter is slightly later than normal. Better late than never! EIP-7702 continued... Last week, I explored how EIP-7702 enables sponsored transactions, a long-awaited Ethereum feature. This week, I’m continuing that exploration, now from the Foundry side. Foundry recently introduced new cheatcodes that make it much easier to experiment with EIP-7702: signDelegation - Sign an EIP-7702 authorization for delegation attachDelegation - Designate the next call as an EIP-7702...
â›˝ 7702 Gas Sponsorship Over the weekend I explored EIP-7702 by writing a minimal implementation that stripped transaction creation back to its fundamentals. While Viem does a great job abstracting the low-level details, I wanted to understand exactly what was happening under the hood. You can check out the code here. What did I learn? Once delegated, the code is fixed at the EOA unless it's explicitly re-delegated (requires re-signing auth list entry). Type 4 transactions include an...
Live Streaming This week I tried out a different format: I went live. Finding the time to record well-scripted videos is tough when you have a full-time job, so I wanted to dip my toes into the streaming ecosystem. To start, I went live on Twitter. The first stream was simple. I wasn’t on camera myself. I streamed a video of my Pectra countdown timer, which I had vibe-coded earlier in the week. malone @blainemalone the wait is nearly over... https://x.com/i/broadcasts/1PlKQMZwlnNKE x.com...