OpenViSTAI · Agents · Blockchain · Crypto
Menu
Developer Tools

EVM From Scratch

EVM From Scratch is a practical Ethereum Virtual Machine learning course and repository of bytecode test cases. Learners implement an EVM in a programming language of their choice and compare its behavior with the cases’ expected results.

Independent OpenViST project profile, based on linked sources.

EVM From Scratch — OpenViST project profile in Developer Tools.
OpenViST project illustration. See the linked sources for product details.
Understand the project

Practical overview

When it fits

Use it when you want a practical, test-driven path for learning EVM internals by building an implementation and working through increasingly advanced cases.

Who it is for

  • Developers learning how the Ethereum Virtual Machine works through implementation.
  • Learners who want progressively more complex opcode cases and expected results to guide an EVM project.

Documented uses

  • Study EVM behavior by implementing an EVM rather than only reading about it.
  • Check an implementation against test cases that describe programs as bytecode and specify expected results.
  • Start from a template for JavaScript, TypeScript, Python, Go or Rust, or build a test suite from the provided JSON data.
Before you choose

Requirements & limits

The repository and evm.json test cases are publicly available on GitHub. The README describes evm-pro.json as a separate paid test suite accessed through the course.

  • The included cases progress from simpler opcodes to more advanced ones.
  • Each test includes machine-readable hexadecimal bytecode and a readable assembly representation for debugging.
  • Templates are listed for JavaScript, TypeScript, Python, Go and Rust; the repository also permits implementations in other languages.
  • The Pro suite is separate from the repository’s included test data.

Check current requirements in the official documentation. Source-based guidance does not mean OpenViST has run or independently tested this project.

Source-based practical guide

Use the repository’s tests for an EVM implementation

Set up the repository’s test data as the basis for testing your own EVM implementation.

Before you start

  • Git
  • An EVM implementation in a programming language of your choice
  • A JavaScript, TypeScript, Python, Go or Rust template, if you want to start from one

Steps

  1. Clone the repository using the command in its README.

  2. Use the repository’s evm.json test cases, which include bytecode and expected results.

  3. Make your implementation process the hexadecimal bytecode; use the readable assembly representation to help debug unit tests.

Expected outcome

A test-driven exercise for checking an EVM implementation against the expectations in evm.json.

Guide limitations

  • The README describes the test data and implementation goal but does not provide a complete implementation procedure.
  • The additional evm-pro.json suite is separate and described as part of the Pro course.
Evidence and transparency

Sources & review

Source record details
Source availability
Active
Sources checked
16 October 2026
Original website title
w1nt3r-eth/evm-from-scratch · Official homepage title · retained in its source language