Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/provablehq/snarkvm/llms.txt

Use this file to discover all available pages before exploring further.

What is SnarkVM?

SnarkVM is a decentralized virtual machine designed for zero-knowledge proof execution on the Aleo blockchain. It provides a complete toolkit for building privacy-preserving applications with cryptographic guarantees.
SnarkVM is the core virtual machine that powers the Aleo network, enabling developers to build applications with native privacy features.

Key Features

1

Zero-Knowledge Proof Execution

Execute programs with cryptographic proof generation, ensuring privacy and correctness without revealing sensitive data.
2

Modular Architecture

Built with a clean separation of concerns across multiple crates:
  • Console: Plaintext VM types (Address, Field, Group, Scalar)
  • Circuit: Constraint system equivalents for proof generation
  • Synthesizer: Program execution and proof synthesis
  • Ledger: Blockchain state management
3

Cryptographic Primitives

Includes battle-tested implementations of:
  • Poseidon hash functions
  • BLS12-377 elliptic curves
  • Varuna SNARK proofs
  • Polynomial commitments
4

Multi-Platform Support

Works across platforms with std and wasm support, enabling both server-side and browser-based applications.

Architecture Overview

SnarkVM follows a layered architecture where each crate builds upon lower-level components:

Core Crates

CrateDescription
snarkvm-algorithmsCryptographic primitives (Poseidon, Marlin, Polycommit)
snarkvm-circuitArithmetic circuits for constraint systems
snarkvm-consolePlaintext VM types and program execution
snarkvm-curvesElliptic curve implementations
snarkvm-fieldsFinite field arithmetic
snarkvm-ledgerBlockchain state (blocks, transactions, storage)
snarkvm-synthesizerProgram execution and proof generation
snarkvm-utilitiesParallel primitives and helper functions
The console and circuit crates must stay synchronized. When modifying console types, ensure circuit equivalents are updated to maintain constraint system correctness.

Who Should Use SnarkVM?

SnarkVM is ideal for:
  • Blockchain Developers building privacy-preserving applications on Aleo
  • Cryptography Researchers working with zero-knowledge proof systems
  • Application Developers needing verifiable computation with privacy guarantees
  • Protocol Engineers implementing custom cryptographic protocols

Design Principles

Backwards Compatibility

All changes must be backwards compatible to prevent network forks. The codebase is deployed in production, so modifications that alter consensus behavior require version gating.

Safety and Security

#![forbid(unsafe_code)]
All crates forbid unsafe code unless explicitly approved. Security is paramount in a zero-knowledge proof system.

Performance

SnarkVM uses parallel execution with rayon where appropriate and includes CUDA support for GPU acceleration of cryptographic operations.

Version Information

Version: 4.4.0Rust Version: 1.88.0 or higherEdition: 2024

Next Steps

Installation

Install SnarkVM and set up your development environment

Quick Start

Build your first SnarkVM application

Build docs developers (and LLMs) love