Skip to content
Branch: master
Find file History
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

hevm Build Status GitHub (pre-)release

The hevm project is an implementation of the Ethereum virtual machine (EVM) made specifically for unit testing and debugging smart contracts. It is developed by DappHub and integrates especially well with the dapp tool suite. The hevm command line program can run unit tests, interactively debug contracts while showing the Solidity source, or run arbitrary EVM code.

This is not yet a complete EVM. For example, the precompiled contracts are missing. We do well on Ethereum's VMTests suite (see hevm v0.11.1 test report) but we can't guarantee exact consensus conformance. The precompiled contracts are entirely missing for now, and we're in the process of implementing the Metropolis EIPs.



Note: the hevm test runner and debugger currently assumes the use of the ds-test framework for Solidity unit tests and the dapp tool suite.

After running dapp build, you can run your unit test suite with

$ hevm dapp-test

or you can enter the interactive debugger using

$ hevm interactive

Debugger key bindings

  • Esc: exit debugger
  • n: step by one instruction
  • p: step backwards by one instruction
  • N: step to the next source position
  • C-n: step to the next source position and don't enter CALL or CREATE



hevm is distributed as part of the Dapp tools suite.

Static binary

If you don't want to compile anything, and you're on x86-64 Linux, you can download a static binary from the "Releases" tab on GitHub. If the static binary complains about a "terminfo" file, you have to set the TERMINFO environment variable; on Ubuntu, you should do

$ export TERMINFO=/lib/terminfo

(Put that in your ~/.bashrc for convenience.)

Building with Stack or Cabal

If you can't or won't use Nix, the easiest way especially if you don't have GHC (the Haskell compiler) installed already, is to use Stack, which can take care of installing GHC for you. These commands should work:

$ curl -sSL | sh
$ git clone
$ cd dapptools/src/hevm && stack setup && stack install

Also, hevm is in Hackage so you can execute stack install hevm to get it up and running.

If you prefer to use your own installation of GHC and the basic Haskell package manager, Cabal, simply run:

$ git clone
$ cd dapptools/src/hevm && cabal configure && cabal install

Note: If you are on macOS when building with Stack, you will first need to install the secp256k1 library. These commands should be enough:

$ git clone
$ cd secp256k1
$ ./
$ ./configure --enable-module-recovery # for generating secp256k1_recovery.h
$ make
$ sudo make install
$ cd .. && rm -rf secp256k1 # optional (cleanup)


You can find us in the DappHub chat at, especially the #dev channel.

You can’t perform that action at this time.