Zenroom is a tiny, portable, and fully isolated crypto VM for building privacy-preserving applications, smart contracts, and secure data workflows.
It runs deterministically across platforms โ from browsers and mobile apps to embedded devices, cloud services, and blockchains โ with no external dependencies and a small runtime footprint.
With Zencode, Zenroom lets developers express cryptographic logic in a human-readable language, making advanced operations such as signatures, hashing, zero-knowledge proofs, credentials, and blockchain interoperability easier to write, review, and deploy.
Read the documentation and run quick examples using the online IDE powered by Zenroom: ApiRoom.
After have installed the following dependencies:
- makefile
- cmake
- gcc
- libreadline-dev
- xxd
You can build zenroom as executable or C library. There are various build targets, just type make to have a list:
โจ Welcome to the Zenroom build system
๐ Usage: make <target>
๐๐ฝ List of targets:
posix-exe Dynamic executable for generic POSIX
posix-lib Dynamic library for generic POSIX
linux-exe Dynamic executable for GNU/Linux
linux-lib Dynamic library for GNU/Linux
debug-asan Address sanitizer debug build
debug-gprof Address sanitizer debug build
musl Static executable for Musl
win-exe Executable for Windows x86 64bit
win-dll Dynamic lib (DLL) for Windows x86 64bit
osx-exe Executable for Apple MacOS
osx-lib Library for Apple MacOS native
ios-armv7 Libraries for Apple iOS native armv7
ios-arm64 Libraries for Apple iOS native arm64
ios-sim Libraries for Apple iOS simulator on XCode
node-wasm WebAssembly (WASM) for Javascript in-browser (Emscripten)
check Run tests using the current binary executable build
check-js Run tests using the WASM build for Node
check-osx Run tests using the OSX binary executable build
Optional dependencies are:
- dyne musl-gcc to build the musl target
- Emscripten for wasm builds
Many applications already include Zenroom and use the Zencode language:
- CREDIMI: EUDI-ARF wallet certification
- DIDROOM: EUDI and W3C VC wallet, verifier and issuer dashboard
- W3C compatible Distributed Identity did:dyne
- Global Passport Project
- Keypairoom mnemonic deterministic and private keypairs
- Simple Android app to show how to use Zenroom libs
- Zexec safe remote execution of signed commands
- Micro-service to produce ECDSA signed unix timestamps
- Sawroom Transaction Processor for Hyperledger Sawtooth
- RedRoom Crypto module for Redis
- Lotionroom Tendermint / Cosmos proof of concept with Zenroom
- ZenSchnorr API for Schnorr signatures
- Great Dane DNSSEC as a AV store for Zenroom
- Zen-Web-Ext Web extensions encapsulating Zenroom functionality
- Planetmint by the IPDB foundation
- 2017 - Proof of Concept
- 2018 - Prototype and Alpha release series
- 2019 - Stable release series
v1(now EOL) - 2022 - Stable release series v2 until LTS
v2.22.1 - 2023 - Stable release series v3 until LTS
v3.23.4 - 2024 - Stable release series v4 until LTS
v4.47.0 - 2025 - Current stable
v5(latest HEAD)
- ๐ FORK IT
- Create your feature branch
git checkout -b feature/branch - Commit your changes
git commit -am 'feat: New feature\ncloses #398' - Push to the branch
git push origin feature/branch - Create a new Pull Request
gh pr create -f - ๐ Thank you
Copyright (C) 2017-2026 Dyne.org foundation
Designed and written by Denis "Jaromil" Roio with the help of Puria Nafisi Azizi and Andrea D'Intino.
Includes code contributions by Alberto Lerda, Matteo Cristino, Danilo Spinella, Luca Di Domenico, Rebecca Selvaggini, Filippo Trotter, Nicola Suzzi, Giulio Sacchet.
Reviews and suggestions contributed by: Richard Stallman, Daniele Lacamera, Enrico Zimuel, Sofรญa Celi, Sebastian Blichfeld, Adam Burns, Thomas Fuerstner, Jรผrgen Eckel, Massimo Romano
Zenroom complies with the REUSE license specification and redistributes:
- Lua 5.4 - Copyright ยฉ 1994โ2025 Lua.org, PUC-Rio.
- Apache Milagro Crypto Library (AMCL)
- Various Lua libraries released under Apache/MIT/CC0 license
Special thanks to our colleagues in the DECODE project whose research has inspired the birth of this project: Francesca Bria, George Danezis, Ola Bini, Mark de Villiers, Ivan Jelincic, Alberto Sonnino, Jim Barritt, Christian Espinoza, Samuel Mulube and Nina Boelsums.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License along with this program. If not, see https://www.gnu.org/licenses/.
- Product website: http://zenroom.org/
- Zenroom developer website: https://dev.zenroom.org/
- Zencode whitepaper: https://files.dyne.org/zenroom/Zencode_Whitepaper.pdf
- Tutorials: