Getting Started with Verifereum

Welcome! We’re excited you’re interested in contributing to Verifereum. We’re developing a production-quality formal semantics of the Ethereum Virtual Machine and proof infrastructure for mathematical verification of smart contracts and compilers, working closely with the HOL4 theorem prover community.

Current Project State

Verifereum’s EVM semantics is a mature executable HOL4 formalisation of the Ethereum Execution Layer, with approximately complete EEST coverage. Active development focuses on maintaining live-fork coverage, improving execution performance, proving semantic properties, and building program- and compiler-verification infrastructure on top.

Getting Set Up with HOL4

Verifereum is built on HOL4, and contributing often involves working with both projects. Here’s what you need to know about getting started with HOL4:

Installation Options

  1. Building from Source (Recommended)
  2. Package Managers

Editor Integration

HOL4 supports several development environments - choose what works best for you:

  1. Emacs Mode
  2. (Neo)vim Mode
  3. VSCode Extension (Experimental)

Need help with installation? Ask in Zulip Verifereum channel - different approaches work better for different systems and use cases.

Contributing to Verifereum and HOL4

Verifereum and HOL4 are tightly integrated projects. We encourage contributing to both:

Learning either project helps with understanding the other!

Current Project Areas

Here are some active areas where you can contribute:

EVM Semantics and Testing

Semantic Theorems and Verification Experiments

Performance Improvements

Documentation and Examples

Getting Started

  1. Join the Community
  2. Set Up Development Environment
  3. Find Your Focus
  4. Start Contributing

Getting Help

We’re building a community of people interested in formal verification of Ethereum contracts. Whether you’re experienced with theorem proving or just getting started, there are ways to contribute and learn together.