Skip to content
🚀 💜 SVM - Spacemesh Virtual Machine
Rust C WebAssembly Other
Branch: develop
Clone or download
Pull request Compare This branch is 42 commits behind spacemeshos:develop.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Build Status

Spacemesh Virtual Machine

Project Goals

  • Self-contained. Should be hosted by the Spacemesh Golang full-node and future Spacemesh Rust full-node
  • Built on top of wasmer
  • Future compatible for the SMESH programming-language (the language is still in a research stage).


SVM depends on the single-pass compiler of wasmer which requires the rust nightly release channel. More information about installing rust nightly can be found here

Build & Tests

The SVM project is organized into a couple of crates. The root crate is called SVM and it's a workspace crate.

In order to build the SVM project crates at once and run their tests:

cargo +nightly build
RUST_TEST_THREADS=1 cargo +nightly test --all

If you want to build & test in release mode execute:

cargo +nightly build --release
RUST_TEST_THREADS=1 cargo +nightly test --all --release

Note: since leveldb and rocksdb can't have parallel isolated connections to the same database (directory). That's why we ask cargo to run the tests serially (RUST_TEST_THREADS=1).


In order to build the Docker image

docker build -t svm-build .

Then, for spawning a new container

docker run -it svm-build


  • Infrastructure (see the SVM article)
  • Gas metering
  • Contract-to-Contract calls
  • Storage Data-Structures
    • Array
    • List
    • Hash
    • Set
    • Sorted-Set
    • Strings
  • Events with expiration
  • Contract dependencies

Supported Operating-Systems

  • Mac
  • Linux
  • Windows

Got Questions?

You can’t perform that action at this time.