Skip to main content


o1js / Modules

o1js   npm version PRs Welcome

o1js helps developers build apps powered by zero-knowledge (zk) cryptography.

The easiest way to write zk programs is using o1js.

o1js is a TypeScript library for zk-SNARKs and zkApps. You can use o1js to write zk smart contracts based on zero-knowledge proofs for the Mina Protocol.

o1js is automatically included when you create a project using the Mina zkApp CLI.

Learn More


o1js is an open source project. We appreciate all community contributions to o1js!

See the Contributing guidelines for ways you can contribute.

Community Packages

High-quality community packages from open source developers are available for your project.

  • snarkyjs-elgamal A partially homomorphic encryption library for o1js based on Elgamal encryption: GitHub and npm

To include your package, see Creating high-quality community packages.