SputnikVM - a Portable Blockchain Virtual Machine

no_std, ethereum


SputnikVM: Rust Ethereum Virtual Machine Implementation

Build Status License

Name Description Crates.io Documentation
evm Main library that re-export most things. crates.io Documentation
evm-core Core library defining the basic execution rules. crates.io Documentation
evm-gasometer Integration of Ethereum gas rules. crates.io Documentation
evm-runtime Runtime defining interface for block, transaction, and storage. crates.io Documentation


  • Standalone - can be launched as an independent process or integrated into other apps
  • Universal - supports different Ethereum chains, such as ETC, ETH or private ones
  • Stateless - only an execution environment connected to independent State storage
  • Fast - main focus is on performance
  • written in Rust, can be used as a binary, cargo crate or shared library


Ensure you have at least rustc 1.33.0 (2aa4c46cf 2019-02-28). Rust 1.32.0 and before is not supported.


Build from sources

SputnikVM is written Rust. If you are not familiar with Rust please see the getting started guide.


To start working with SputnikVM you'll need to install rustup, then you can do:

$ git clone git@github.com:sorpaas/rust-evm.git
$ cd rust-evm
$ cargo build --release --all


Apache 2.0