Pico is an open-source zero-knowledge virtual machine (zkVM) that transforms how developers build secure, scalable, and high-performance decentralized applications. Drawing on the innovative Glue-and-Coprocessor architecture, Pico fuses the efficiency of specialized circuits with the adaptability of a general-purpose zkVM. This unique design empowers you to craft tailored proof systems that meet the diverse needs of your applications.
Install | Docs | Examples | Telegram | Discord
Before you begin, please ensure that you have installed all the requirements. For installation and setup instructions, refer to the Installation Guide and follow the steps outlined in Quick Start section in Pico Docs.
Pico's design is rooted in the need for adaptable, high-performance ZK systems that can keep up with the rapidly evolving cryptography research. Rather than relying on a "one size fits all" solution, Pico's modular architecture lets you:
- Leverage Interchangeable Proving Backends: Select from multiple proving backends to achieve the best performance and efficiency.
- Integrate App-Specific Circuits: Seamlessly incorporate specialized circuits/coprocessors to accelerate domain-specific computations.
- Customize Proving Workflows: Assemble and fine-tune proof generation pipelines tailored to your application's specific requirements.
One of Pico's most innovative features is its ability to seamlessly switch between multiple proving backends. Currently, Pico supports generating proofs in all phases — RISCV, CONVERT (RECURSION), COMBINE (RECURSION), COMPRESS (RECURSION) and ONCHAIN (for EVM) — with both STARK on KoalaBear and STARK on BabyBear. For CircleSTARK on Mersenne31, Pico currently supports the RISCV-Phase, with RECURSION and EVM phases coming soon.
- STARK on KoalaBear (prime field
$p = 2^{31} - 2^{24} + 1$ ): Supports generating proofs for- RISCV-Phase
- RECURSION-Phase
- EVM-Phase
- STARK on BabyBear (prime field
$p = 2^{31} - 2^{27} + 1$ ): Supports generating proofs for- RISCV-Phase
- RECURSION-Phase
- EVM-Phase
- CircleSTARK on Mersenne31 where
$p = 2^{31} - 1$ ). Supports generating proofs for- RISCV-Phase
- RECURSION-Phase
- EVM-Phase
As of February 2025, Pico has not been audited and is not recommended for production use.
We welcome contributions from developers, researchers, and enthusiasts. Your input is crucial for Pico's evolution, whether you're fixing bugs, enhancing performance, improving documentation, or adding new features.
Before getting started, please review our Repo Layout to understand the repository structure. For detailed contribution instructions, see our Contributing Guidelines.
Pico draws inspiration from the following projects, each representing cutting-edge advancements in zero-knowledge proof systems.
- Plonky3: Pico's proving backend is based on Plonky3, extending its modularity to the zkVM layer to enable the flexible selection of proving fields and systems that best fit each use case.
- SP1: Pico derives significant inspiration from SP1's chip design and their constraints. Its recursion compiler and precompiles originate from SP1.
- Valida: Pico's implementation of cross-table lookups is inspired by Valida's pioneering work in this area.
- RISC0: Pico's Rust toolchain is based on the one originally developed by RISC0.