EVM Toolkit (ETK)

The EVM Toolkit (or ETK) is a collection of tools for creating and analyzing smart contract programs on the Ethereum Virtual Machine. So far it consists of an assembler (eas) and a disassembler (disease).

ETK is new, and highly experimental. Use at your own risk.


Assembler: eas

The assembler lives in the etk-asm crate, and provides a command-line interface (eas) and a Rust library. The assembler has a couple notable features:

  • Importing multiple files into the same scope, for organization.
  • Including files in a separate scope, for constructors and initialization code.
  • Automatic push size selection.
  • Solidity-style function selectors.

Disassembler: disease

The disassembler lives in the etk-dasm crate, and also provides a command-line interface (disease) and a Rust library. The disassembler is much more experimental, and has a limited set of features:

  • Disassemble hex or binary encoded instructions into their mnemonics.
  • Identify basic blocks.

API Documentation

Alongside this book, you can also read the API docs generated by Rustdoc if you would like to use ETK as a library.


ecfg requires z3 to build Ubuntu Installation Instructions (example):

sudo apt-get update -y
sudo apt-get install -y z3

Check the system logs to confirm that there are no related errors.


ETK, all the source code, is released under the Apache License Version 2.0 and under the MIT License.