Encrypt to Statements, Not Keys
Witness encryption allows you to encrypt data to a computational statement. Anyone with a valid solution can decrypt—no key exchange, no trusted third parties. Just verifiable computation.
Built on Circom
Define your decryption conditions using Circom circuits. From simple puzzles to complex access policies—if you can write it as a constraint, you can encrypt to it. Full R1CS support included.
Works Everywhere
Use it in the terminal with the CLI, in Node.js applications, or directly in the browser. Powered by Rust and WASM for high performance across all platforms.