zenroom

No-code cryptographic virtual machine

Zenroom is a tiny, secure, fully isolated, open source, virtual machine that runs on any platform, even on a chip or a web page. 

It performs cryptography (signatures, hash, zkp, homomorphic, post-quantum […]) on multiple curves, blockchain intereoperability and general computation.

Zenroom is programmable in the no-code English-like language Zencode.  

All curves + Lattice

Zenroom supports signatures and pairing with most elliptic curves, see the full list hereThe curves SECP256K1, BLS 12-381, ED25519 are all built in by default and can be used together. Also supports Dilithium, Kyber, ML-DSA and ML-KEM. 

Features

Asymmetric key signatures (ECDSA, EDDSA, Schnorr, BBS), Post-Quantum crypto (Dilithium, Kyber, SNtruP, ML-DSA, ML-KEM), create, sign, verify raw-transactions and signatures for Ethereum and Bitcoin.

Attribute based credentials (ABC) and non-interactive zero knowledge proof based on Coconut and BBS, multi-party computation based on Reflow, W3C VC, secret sharing (Lagrange).

Executes smart contracts in Zencode: an English-like language, inspired by LangSec and BDD.

Deterministic execution end-to-end: in-browser, in-memory or distributed to a blockchain. Fully isolated (no access to fs, network, time). Grants integrity across different platforms.

Tiny library or executable (~1MB), low memory usage (600KB to ~2MB). No external dependencies. Has bindings for most languages.

Zenroom runs on Linux, Windows, Mac, Android, iOS, in the browser (WASM), integrated Cortex chips, see downloads.

low on resources
Highly scalable

KB payload
~ 1
KB RAM usage (for basic crypto)
~ 1
HASH/sec (on desktop PC)
+

all the signatures
on all the curves*

🟩 ECDSA on secp256k1 and P-256 

🟩 EDDSA on ed25519

🟩 Schnorr, BLS and Reflow multisig on BLS12381 

🟩 Ethereum and Bitcoin signatures on secp256k1 

🟩 Dilithium and ML-DSA (PQC) on Lattice 

🟩 BBS+ and Coconut zkp credentials on BLS12381 

🟩 SD-JWT on P-256. 

*Secp256k1 is the default non-pairing curve supported in Zenroom, a different one can be selected at build time, full list here.

secp256k1*

BLS-12381

ed25519

P-256

Lattice (PQC)

Signatures
ECDSA🟩🟩
EDDSA🟩
Schnorr🟩
Reflow (multisig)🟩
BLS🟩
Ethereum🟩
Bitcoin🟩
Dillithium🟩
ML-DSA🟩
Credentials
BBS🟩
Coconut🟩
SD-JWT🟩
* Secp256k1 is the default non-pairing curve supported in Zenroom, a different one can be selected at build time, full list here.

No-code cryptography

ZKP, Multisig, Post-Quantum

Zenroom uses Coconut and BBS zero knowledge proof flows, allowing developers to implement zero knowledge proof credentials in minutes.

Implements BLS homomorphic multisignatures, free of rogue attacks based on Reflow.

Also support for NIST Post-Quantum signatures and KEM (Dilithium, Kyber, ML-DSA, ML-KEM).

End-to-end, fully deterministic cryptography in full isolation

Fully deterministic and replicable cryptography, thanks to the multiplatform virtual machine running on any platform. 

The VM is fully isolated from the OS (no access to fs, network or clock). Read more

No-code: smart contracts natural English

Design cryptographic flows, data processing and business logic in a natural English-like language, that can be read by non-programmers and written with minimal training. Read more

AGPL3 and Commercial licensing

Community
Open Source

All our software is free and open source, we’re building inter-operability and coordinating efforts with DECODE, Sovrin, OW2, Cosmos and other communities.

Enterprise
support

We offer professional support for the integration with enterprise infrastructure and commercial products, along with dual licensing. Let us know about your project!                              

developer resources

Docs

Explore Zenroom documentation:
+ Command line interface
+ Zencode reference
+ Binders
+ Build, integrate and embed
+ Zenroom extensions

Sandbox

Learn Zencode with the auto-complete and with the examples on apiroom.net.

Play with Zenroom in-the-browser, powered Zenroom’s Webassembly build (WASM) and expose your smart-contracts into APIs.

Binaries

Zenroom builds on Linux/Windows/Mac, Android/iOS, on X86/X64/Arm32/Arm64. The most widely used builds are built in CI and available under Releases. For all the other builds, please see the build instructions.

Linux/Win/Mac

Linux: X64 | ARM | ARM64(AArch64) 

Windows: .exe | .dll | .lib | .exe debug

MacOS: X86/X64 | ARM64

Android/iOS libs

Android libs: ARM | ARM64(AArch64) | X86

iOS libs: ARM(armhf) | ARM64(AArch64) | X86_64

Get zenroom.h and add: #include

JavaScript

Npmnpm i zenroom 

Docs: node, react, browser 

Python 3

Pippip3 install zenroom –pre

Docs

Bindings/Embed

Zenroom ecosystem

Microservices

 

Easy REST API builder executing Zencode: place a .zen file in a folder to expose an API.

 

Interoperability


Blockchain interop for Ethereum, Bitcoin, Hyperledger Sawtooth and Fabric, Plenetmint, Redis, MySQL, InfluxDB and more.

 

Sign documents

 

Web-based service, leveraging Zenroom’s cryptographic capabilities, allowing users sign documents and objects, using W3C-DID identities.

Blockchain oracle


Zenroom based blockchain swarm of Blockchain Oracles.   

 

Identity

Identity solution, compatible with eIDAS 2.0 (EUDI-ARF) and W3C-DID / W3C-VC.

 

W3C-DID

Zenroom based W3C-DID implementation. DIDs are built in Zenroom. Controller runs on nodejs, DIDs are stored on redis and anchored on blockchain.

Zenroom live demo

Watch a presentation of Zenroom's zero knowledge proof and attribute based credential flow, with a live demo of the crypto flow in a multiplatform setup.

Proudly crafted in the EU

This project received funding from the European Union’s Horizon 2020 research and innovation programme under grant agreement nr. 732546 (DECODE), and 820937 (REFLOW) by the NGI ASSURE program and by the EBSI PCP.

Our projects in the press

We're members of

2017-2024© Copyright dyne.org