This is a course for hackers, programmers, and software engineers who learn by doing!
By the end, you’ll have an EVM implementation that can run real smart-contract bytecode, including simple contracts compiled from Solidity. Along the way, you’ll learn how EVM works, from simple stack operations to code deployment and proxy contracts.
When I built EVM from scratch for the first time, I was blown away at how simple and elegant it was. Now I hope to share my excitement with you!
The goal of this course is to be addictive. Working on the unit tests should feel like a game, solving one puzzle at a time.
Estimated time: 15-60 minutes
<aside> 💡 Students who complete all 5 steps in their first day have a much higher chance to finish the full course
</aside>
The repo contains templates for the test cases we’ll be working through, plus templates for the most popular programming languages:
git clone <https://github.com/w1nt3r-eth/evm-from-scratch>
Then download evm-pro.json from Gumroad and place it into the root of that folder.
You can implement EVM in any programming language. I highly recommend using the programming language you already know. A word of caution about Rust: many students from the previous cohorts decided to learn both EVM and Rust at the same time but ended up getting stuck a lot.
The repo already has templates for JavaScript, TypeScript, Python, Go, Rust and many others. You are welcome to use them, or create your own.