A decentralized operating system and node software that runs the Aleo network for zero-knowledge applications.
o1-labs/o1js
TypeScript framework for writing zero-knowledge circuits and zkApps, with proving and verifying in browsers, Node, or for the Mina Protocol.
- Stars
- 605
- Forks
- 172
- Open issues
- 254
- Last commit
- 2 days ago
What is it?
o1js is a TypeScript framework for building applications on zero-knowledge (zk) cryptography. Developers use it to write zk circuits, then create and verify proofs in browser or Node environments.
The framework also supports creating proofs that are verified by the Mina Protocol, which is the main target for zkApps built with o1js. A scaffolding tool called zkApp CLI is available for starting a new project.
The project is published on npm and maintained alongside a changelog and documentation site. Several community packages extend it, covering areas such as homomorphic encryption, EdDSA operations, and zk regex compilation.
Key features
- 01Write zk circuits in TypeScript.
- 02Create and verify zero-knowledge proofs in browser or Node.js.
- 03Build zkApps that run on the Mina Protocol.
- 04Scaffold new projects with the zkApp CLI.
- 05Published on npm with community extension packages.
Use cases
- Building privacy-preserving applications that prove statements without revealing inputs.
- Developing zkApps for the Mina Protocol.
- Prototyping zk circuits directly in a JavaScript or TypeScript toolchain.
Quick start
- 1
Install o1js from npm
npm install o1js - 2
Scaffold a new project with the zkApp CLI
Things to know
- Targets zk circuits for browsers, Node, or the Mina Protocol, so it is specialized for zero-knowledge applications.
Topics
FAQ
- What is o1js?
- TypeScript framework for writing zero-knowledge circuits and zkApps, with proving and verifying in browsers, Node, or for the Mina Protocol. o1js is a TypeScript framework for building applications on zero-knowledge (zk) cryptography. Developers use it to write zk circuits, then create and verify proofs in browser or Node environments.
- Is o1js free to use? What license does it have?
- o1js is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
- Is o1js still maintained?
- Actively maintained. The last commit to o1js was on Nov 5, 2026.
- What can I use o1js for?
- Building privacy-preserving applications that prove statements without revealing inputs. Developing zkApps for the Mina Protocol. Prototyping zk circuits directly in a JavaScript or TypeScript toolchain.
- How do I install o1js?
- Install o1js from npm: npm install o1js Scaffold a new project with the zkApp CLI
- Where can I get o1js?
- The source code and installation instructions are on GitHub: https://github.com/o1-labs/o1js
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A zero-knowledge virtual machine that generates proofs of correct execution for programs written in Rust or other LLVM-compiled languages.
A privacy-preserving on-chain voting app on Cardano where voters prove membership with zero-knowledge proofs and votes stay anonymous.
JavaScript and WebAssembly library for generating and verifying zkSNARK proofs with Groth16, PLONK and FFLONK, used with circom circuits.
A Rust implementation of Circle STARK proving and verification over the M31 field, with a no_std verifier and SIMD prover backend.
Reference full-node implementation of the Bitcoin protocol, connecting to the peer-to-peer network to validate blocks and transactions.