We are actively building a full Ethereum execution client (Guillotine) on top of this EVM. Guillotine-mini remains the core execution engine.
- Zig 0.15.1+
- Cargo (for Rust crypto deps)
- Python 3.8+ (optional, test generation)
Use as a Zig dependency (recommended)
zig fetch --save https://github.com/evmts/guillotine-mini/archive/main.tar.gzconst guillotine_dep = b.dependency("guillotine_mini", .{
.target = target,
.optimize = optimize,
});
const guillotine_mod = guillotine_dep.module("guillotine_mini");
exe.root_module.addImport("guillotine_mini", guillotine_mod);
const primitives_dep = b.dependency("guillotine_primitives", .{
.target = target,
.optimize = optimize,
});
exe.linkLibrary(primitives_dep.artifact("blst"));
exe.linkLibrary(primitives_dep.artifact("keccak-asm"));
exe.linkLibrary(primitives_dep.artifact("sha3-asm"));
exe.linkLibrary(primitives_dep.artifact("crypto_wrappers"));Build from source
git clone https://github.com/evmts/guillotine-mini.git --recurse-submodules
cd guillotine-mini
zig buildThe primitives library is fetched automatically during build. Downstream consumers must link the crypto artifacts from
guillotine_primitives(see snippet above).
zig build
zig build test
zig build specs
zig build wasmTEST_FILTER="push0" zig build specsCLAUDE.md— project guide for devs and AI assistantsCONTRIBUTING.md— setup and contribution workflowsrc/precompiles/CLAUDE.md— precompile docs
- Full hardfork support (Frontier → Osaka)
- 20+ EIPs implemented
- EIP-3155 tracing
- WASM target (~193 KB optimized)
- 100% ethereum/tests coverage
- Primitives library: https://github.com/evmts/primitives
- Guillotine (full client): https://github.com/evmts/guillotine
See LICENSE.