
Initially, I was skeptical. The book was released in 2018. The space moves so fast, surely the content won’t be relevant in 2022? But I’m so glad I gave it a chance!
“Master Ethereum” is full of extremely helpful context: elliptic curve math, how wallet addresses work, why sha3 instruction is actually keccak256, the history of the original DAO, and the most famous hacks. It also talks about some projects and aspirations that didn’t find their way to mass adoption.
It’s very accessible and easy to read. I breezed through the content in just a few evenings and it filled many gaps in my understanding of the ecosystem.
I used spent days hanging out on Etherscan, looking into odd contracts. I like picking up interesting tricks and the current dev “meta”. It’s also nice because you can stumble upon some code and wonder “why is it built this way?”
Here’s a list to get started:
WETH — simple and elegant way to wrap Ether in ERC20
Loot — influential NFT project with on-chain storage
Nouns — NFT project, auction and governance
Uniswap v2 — AMM at its finest
OKPC — NFT objects that can do stuff
Watchfaces.World — adaptable, on-chain and looks beautiful
If you are interested in a curated Hall of Fame, subscribe, I might have something for you soon.
Etherscan is great, but not every contract has the source code available. The built-in transaction viewer is fairly limited too. Here are a few tools that you can use today to better understand how things work under the hood:
ABI for unverified contracts: analyzes the bytecode and guesses the functions that are available in the contract. Can give you a good idea of what an unverified contract can do
Ethereum Transaction Viewer: shows a very detailed trace of any transaction (example)
Tenderly: all-around great debugging tool. Tenderly Forks is a way to preview what’s going to happen when you interact with a contract.
Solidity is a high-level programming language that compiles down to a very simple set of EVM instructions.
Yul and bytecode are low-level programming languages. I used to think they are complex and scary. But after diving deeper I was delighted to discover that the EVM is actually very, very simple!
Here’s how you can start learning Yul today:
Inspect ir-optimized Solidity output: forge inspect $CONTRACT ir-optimized will show you your Solidity code compiled into optimized Yul (before it’s converted to bytecode)
Yul and Assembly is a great, fast-paced overview of Yul’s features
evm.codes is my favorite resource for learning individual opcodes or quickly trying out simple bytecode contracts
If you’d like to learn how EVM works, you might be interested in the new EVM course I’m working on. It’s a very practical path for people who learn through doing. During the course, we’ll implement EVM from scratch (in any programming language of your choice!) You’ll be surprised how elegant and simple it is.
All the latest dev alpha appears on Twitter first.
But don’t follow accounts that already have 100K+ followers. The influencers don’t have the time for deep engineering work. They are in the business of making the existing knowledge more accessible via breakdowns, summaries, advocacy, etc.
If you want to get the latest tech insights, seek out the smartest devs. They tend to keep a low profile and don’t post often, but when they do, it’s really good.
A good place to start is my following list.
Farcaster (“the purple app”) is a new social network that’s gaining a lot of momentum. It’s in closed beta now and requires an invite. It attracted a lot of smart tech-minded people, and the discourse so far is excellent.
A good starting point is Developer DAO or Crypto Devs. Don’t buy tokens or NFTs to get in though.
Try going in and answering some questions.
These DAOs are very large and overwhelming. As you get better with Solidity, you’ll want to seek out smaller, more focused communities of builders, with a higher signal-vs-noise ratio.
I still visit a few channels there a few times a week. Scrolling through the questions gives me ideas for new content or areas I haven’t explored yet.
Nobody can teach you things that you’ll learn by shipping real projects. This is my favorite way of getting better at anything.
Be careful though: don’t aim too high. I’ve met so many people in the space that dreamed up big ideas, so big that shipping them took years. By the end of it they were burned out.
Instead, aim for something small in the area you want to get better at. For example, release a custom limited edition NFT with fewer than 20 items (e.g. Runes of Ethereum, Snow v1).
If you are comfortable, build your project in the open. That means sharing work-in-progress ideas, designs, and code. It can be hard at times, but definitely worth it.
From time to time I do public “code roasts” 🔥: I can look at your Solidity code and give you some high-level feedback. Here’s an example. I usually announce roasts a day or so in advance.

Initially, I was skeptical. The book was released in 2018. The space moves so fast, surely the content won’t be relevant in 2022? But I’m so glad I gave it a chance!
“Master Ethereum” is full of extremely helpful context: elliptic curve math, how wallet addresses work, why sha3 instruction is actually keccak256, the history of the original DAO, and the most famous hacks. It also talks about some projects and aspirations that didn’t find their way to mass adoption.
It’s very accessible and easy to read. I breezed through the content in just a few evenings and it filled many gaps in my understanding of the ecosystem.
I used spent days hanging out on Etherscan, looking into odd contracts. I like picking up interesting tricks and the current dev “meta”. It’s also nice because you can stumble upon some code and wonder “why is it built this way?”
Here’s a list to get started:
WETH — simple and elegant way to wrap Ether in ERC20
Loot — influential NFT project with on-chain storage
Nouns — NFT project, auction and governance
Uniswap v2 — AMM at its finest
OKPC — NFT objects that can do stuff
Watchfaces.World — adaptable, on-chain and looks beautiful
If you are interested in a curated Hall of Fame, subscribe, I might have something for you soon.
Etherscan is great, but not every contract has the source code available. The built-in transaction viewer is fairly limited too. Here are a few tools that you can use today to better understand how things work under the hood:
ABI for unverified contracts: analyzes the bytecode and guesses the functions that are available in the contract. Can give you a good idea of what an unverified contract can do
Ethereum Transaction Viewer: shows a very detailed trace of any transaction (example)
Tenderly: all-around great debugging tool. Tenderly Forks is a way to preview what’s going to happen when you interact with a contract.
Solidity is a high-level programming language that compiles down to a very simple set of EVM instructions.
Yul and bytecode are low-level programming languages. I used to think they are complex and scary. But after diving deeper I was delighted to discover that the EVM is actually very, very simple!
Here’s how you can start learning Yul today:
Inspect ir-optimized Solidity output: forge inspect $CONTRACT ir-optimized will show you your Solidity code compiled into optimized Yul (before it’s converted to bytecode)
Yul and Assembly is a great, fast-paced overview of Yul’s features
evm.codes is my favorite resource for learning individual opcodes or quickly trying out simple bytecode contracts
If you’d like to learn how EVM works, you might be interested in the new EVM course I’m working on. It’s a very practical path for people who learn through doing. During the course, we’ll implement EVM from scratch (in any programming language of your choice!) You’ll be surprised how elegant and simple it is.
All the latest dev alpha appears on Twitter first.
But don’t follow accounts that already have 100K+ followers. The influencers don’t have the time for deep engineering work. They are in the business of making the existing knowledge more accessible via breakdowns, summaries, advocacy, etc.
If you want to get the latest tech insights, seek out the smartest devs. They tend to keep a low profile and don’t post often, but when they do, it’s really good.
A good place to start is my following list.
Farcaster (“the purple app”) is a new social network that’s gaining a lot of momentum. It’s in closed beta now and requires an invite. It attracted a lot of smart tech-minded people, and the discourse so far is excellent.
A good starting point is Developer DAO or Crypto Devs. Don’t buy tokens or NFTs to get in though.
Try going in and answering some questions.
These DAOs are very large and overwhelming. As you get better with Solidity, you’ll want to seek out smaller, more focused communities of builders, with a higher signal-vs-noise ratio.
I still visit a few channels there a few times a week. Scrolling through the questions gives me ideas for new content or areas I haven’t explored yet.
Nobody can teach you things that you’ll learn by shipping real projects. This is my favorite way of getting better at anything.
Be careful though: don’t aim too high. I’ve met so many people in the space that dreamed up big ideas, so big that shipping them took years. By the end of it they were burned out.
Instead, aim for something small in the area you want to get better at. For example, release a custom limited edition NFT with fewer than 20 items (e.g. Runes of Ethereum, Snow v1).
If you are comfortable, build your project in the open. That means sharing work-in-progress ideas, designs, and code. It can be hard at times, but definitely worth it.
From time to time I do public “code roasts” 🔥: I can look at your Solidity code and give you some high-level feedback. Here’s an example. I usually announce roasts a day or so in advance.

How to implement a `mint` function in your NFT contract?
Here’s the simplest NFT contract:import '@openzeppelin/contracts/token/ERC721/ERC721.sol'; contract SimplestNFT is ERC721 { function mint(uint256 tokenId) external { _safeMint(msg.sender, tokenId); } } It delegates the heavy lifting to the base contract implementation (in this case, OpenZeppelin). _safeMint is responsible for matching the ERC721 spec: it does some checks, stores data about ownership, emits events and calls callbacks. But you don’t want to allow anyone to call this function wi...

BasePaint
“This is the most fun I had onchain in a long time” — creators and users of BasePaint. Let me tell you a story about building BasePaint, a collaborative pixel art project that is unlike what you typically see in the crypto space. I’ve been writing this post for the last 100 days and did my best to make sure it’s not too boring. Buckle up and consider minting!BasePaintInspired by /r/Place & The Million Dollar HomepageI remember the first time I saw the source code for an NFT smart contract. My...

NFT project story: building and open sourcing Rings for Loot
What does it take to build an NFT project? How does it work end-to-end, from an idea to collectibles in the user's wallet? How much does it cost?Rings (for Loot)Rings (for Loot) is the first and largest 3D interpretation of an entire category in Loot. Adventurers, builders, and artists are encouraged to reference Rings (for Loot) to further expand on the imagination of Loot. The Rings project is Jeremy Goldberg's idea. Jeremy made all the stunning artwork, 0xHab helped shape tokenom...

How to implement a `mint` function in your NFT contract?
Here’s the simplest NFT contract:import '@openzeppelin/contracts/token/ERC721/ERC721.sol'; contract SimplestNFT is ERC721 { function mint(uint256 tokenId) external { _safeMint(msg.sender, tokenId); } } It delegates the heavy lifting to the base contract implementation (in this case, OpenZeppelin). _safeMint is responsible for matching the ERC721 spec: it does some checks, stores data about ownership, emits events and calls callbacks. But you don’t want to allow anyone to call this function wi...

BasePaint
“This is the most fun I had onchain in a long time” — creators and users of BasePaint. Let me tell you a story about building BasePaint, a collaborative pixel art project that is unlike what you typically see in the crypto space. I’ve been writing this post for the last 100 days and did my best to make sure it’s not too boring. Buckle up and consider minting!BasePaintInspired by /r/Place & The Million Dollar HomepageI remember the first time I saw the source code for an NFT smart contract. My...

NFT project story: building and open sourcing Rings for Loot
What does it take to build an NFT project? How does it work end-to-end, from an idea to collectibles in the user's wallet? How much does it cost?Rings (for Loot)Rings (for Loot) is the first and largest 3D interpretation of an entire category in Loot. Adventurers, builders, and artists are encouraged to reference Rings (for Loot) to further expand on the imagination of Loot. The Rings project is Jeremy Goldberg's idea. Jeremy made all the stunning artwork, 0xHab helped shape tokenom...
❄️
❄️
Share Dialog
Share Dialog

Subscribe to w1nt3r.eth

Subscribe to w1nt3r.eth
>8.2K subscribers
>8.2K subscribers
No activity yet