MCPcopy Index your code
hub / github.com/ProvableHQ/snarkVM

github.com/ProvableHQ/snarkVM @v4.8.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release v4.8.1 ↗ · + Follow
12,989 symbols 45,884 edges 1,553 files 5,480 documented · 42% updated todaytestnet-v4.8.0 · 2026-06-15★ 1,159133 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README
<img alt="snarkVM" width="1412" src="https://github.com/ProvableHQ/snarkVM/raw/v4.8.1/resources/snarkVM-banner.png">







<a href="https://circleci.com/gh/ProvableHQ/snarkVM"><img src="https://dl.circleci.com/status-badge/img/gh/ProvableHQ/snarkVM/tree/mainnet.svg?style=svg"></a>
<a href="https://codecov.io/gh/ProvableHQ/snarkVM"><img src="https://codecov.io/gh/ProvableHQ/snarkVM/branch/master/graph/badge.svg?token=cck8tS9HpO"/></a>
<a href="https://discord.gg/aleo"><img src="https://img.shields.io/discord/700454073459015690?logo=discord"/></a>
<a href="https://twitter.com/AleoHQ"><img src="https://img.shields.io/twitter/follow/AleoHQ?style=social"/></a>
<a href="https://github.com/ProvableHQ/snarkVM"><img src="https://img.shields.io/badge/contributors-41-ee8449"/></a>

Table of Contents

1. Overview

Package crates.io docs.rs std wasm Description
snarkvm crates.io docs.rs :white_check_mark: :white_check_mark: Meta-package that contains all other crates
snarkvm-algorithms crates.io docs.rs :white_check_mark: :white_check_mark:
snarkvm-circuit crates.io docs.rs :white_check_mark: :white_check_mark: Arithmetic circuits for snarkVM
snarkvm-console crates.io docs.rs :white_check_mark: :white_check_mark:
snarkvm-curves crates.io docs.rs :white_check_mark: :white_check_mark: Cryptographic curves for snarkVM
snarkvm-fields crates.io docs.rs :white_check_mark: :white_check_mark: Arithmetic fields for snarkVM
snarkvm-ledger crates.io docs.rs :white_check_mark: :white_check_mark: Ledger implementation for the Aleo blockchain
snarkvm-parameters crates.io docs.rs :white_check_mark: :white_check_mark:
snarkvm-synthesizer crates.io docs.rs :white_check_mark: :white_check_mark: Program synthesizer for snarkVM
snarkvm-utilities crates.io docs.rs :white_check_mark: :white_check_mark: Helper functions for snarkVM
snarkvm-wasm crates.io docs.rs :white_check_mark: :white_check_mark: WASM bindings for snarkVM

For more information, visit Welcome to Aleo to get started.

2. Build Guide

2.1 Install Rust

We recommend installing Rust using rustup. You can install rustup as follows:

  • macOS or Linux: bash curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

For macOS users, you will need to subsequently install the following packages: bash brew install pkgconf brew install openssl

  • Windows (64-bit):

Download the Windows 64-bit executable or Windows 32-bit executable and follow the on-screen instructions.

2.2 Using snarkVM as a Library

snarkVM is primarily designed to be used as a library in Rust projects. Add it to your Cargo.toml with your favourite published version:

[dependencies]
snarkvm = "<major>.<minor>.<patch>"

2.3 Build from Source Code

You can also build snarkVM from source:

# Fetch the repository's development (staging) branch
git clone --branch staging --single-branch https://github.com/ProvableHQ/snarkVM.git 
cd snarkVM
# Build the library
cargo build --release

3. Contributors

Thank you for helping make snarkVM better!
🧐 What do the emojis mean?

Howard Wu Howard Wu 💻 🚧 🤔 👀 Raymond Chu Raymond Chu 💻 🚧 🤔 👀 d0cd d0cd 💻 🚧 🤔 👀 Pratyush Mishra Pratyush Mishra 💻 🚧 🤔 👀 vicsn vicsn 💻 🚧 📖 👀 ljedrz ljedrz 💻 🔧 👀 Mike Turner Mike Turner 💻 📖 👀
Collin Chin Collin Chin 💻 📖 👀 Alessandro Coglio Alessandro Coglio 💻 📖 ⚠️ Niklas Long Niklas Long 💻 jules jules 💻 Ali Mousa Ali Mousa 💻 Weikeng Chen Weikeng Chen 💻 Evan Schott Evan Schott 💻
Max Bruce Max Bruce 💻

Extension points exported contracts — how you extend this code

Parser (Interface)
Operations to parse a string literal into an object. [100 implementers]
console/network/environment/src/traits/parse.rs
Cast (Interface)
Unary operator for casting values of one type to another. [35 implementers]
console/program/src/data/literal/cast/mod.rs
CanonicalSerialize (Interface)
Serializer in little endian format. This trait can be derived if all fields of a struct implement `CanonicalSerialize` a [22 …
utilities/src/serialize/traits.rs
ToConstraintField (Interface)
Types that can be converted to a vector of `F` elements. Useful for specifying how public inputs to a constraint system [16 …
fields/src/traits/to_constraint_field.rs
Environment (Interface)
Attention: Do not use `Send + Sync` on this trait, as it is not thread-safe. [6 implementers]
circuit/environment/src/environment.rs
Cast (Interface)
Unary operator for casting values of one type to another. [35 implementers]
circuit/program/src/data/literal/cast/mod.rs
Hash (Interface)
A trait for a hash function. [9 implementers]
circuit/algorithms/src/traits.rs
ConstraintSynthesizer (Interface)
Computations are expressed in terms of rank-1 constraint systems (R1CS). The `generate_constraints` method is called to [5 …
algorithms/src/r1cs/constraint_system.rs

Core symbols most depended-on inside this repo

new
called by 4893
console/collections/benches/merkle_tree.rs
clone
called by 1074
console/collections/src/merkle_tree/mod.rs
iter
called by 927
algorithms/src/r1cs/optional_vec.rs
iter
called by 602
console/algorithms/src/poseidon/helpers/state.rs
len
called by 530
ledger/block/src/solutions/mod.rs
add_next_block
called by 489
synthesizer/src/vm/mod.rs
execute
called by 473
synthesizer/src/vm/execute.rs
clone
called by 467
ledger/store/src/helpers/rocksdb/internal/mod.rs

Shape

Method 7,084
Function 5,068
Class 456
Interface 215
Enum 166

Languages

Rust100%

Modules by API surface

circuit/program/src/data/literal/cast_lossy/integer.rs152 symbols
circuit/program/src/data/literal/cast/integer.rs152 symbols
ledger/store/src/block/mod.rs115 symbols
ledger/store/src/transaction/deployment.rs102 symbols
circuit/network/src/v0.rs85 symbols
circuit/network/src/testnet_v0.rs85 symbols
circuit/network/src/canary_v0.rs85 symbols
ledger/store/src/program/finalize.rs83 symbols
ledger/block/src/lib.rs82 symbols
circuit/types/integers/src/helpers/to_bits.rs77 symbols
ledger/store/src/transaction/mod.rs76 symbols
console/network/src/testnet_v0.rs73 symbols

For agents

$ claude mcp add snarkVM \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact