MCPcopy Index your code
hub / github.com/a16z/jolt

github.com/a16z/jolt @spike-v1.1.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release spike-v1.1.1 ↗ · + Follow
2,640 symbols 6,767 edges 410 files 299 documented · 11% updated 4d agov0.3.0-alpha · 2025-10-01★ 1,00414 open issues

Browse by type

Functions 2,242 Types & classes 398
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Jolt

imgs/jolt_alpha.png

Just One Lookup Table.

Jolt is a zkVM (zero-knowledge virtual machine) for RISC-V, built to be the simplest, fastest, and most extensible general-purpose of its kind. This repository currently contains an implementation of Jolt for the RISC-V 32-bit Base Integer Instruction Set + M Standard Extension for Integer Multiplication and Division (RV32IM). Contributors are welcome!

The Jolt paper was written by Arasu Arun, Srinath Setty, and Justin Thaler.

Resources

Quickstart

[!NOTE] Jolt is in alpha and is not suitable for production use at this time.

For developers looking to build using Jolt, check out the Quickstart guide.

For developers looking to contribute to Jolt, follow the instructions below.

Installation

You will need Rust nightly.

If you have rustup installed, you do not need to do anything as it will automatically install the correct toolchain and any additional targets on the first cargo invocation.

Clone this repo:

git clone git@github.com:a16z/jolt.git

To check if rustup has picked the right version of Rust run rustup show inside the cloned repository.

cd jolt; rustup show.

Build

This repository uses workspaces, and each workspace can be built individually, e.g.

cargo build -p jolt-core

For faster incremental builds, use the build-fast profile:

cargo build --profile build-fast -p jolt-core

Test

Unit and end-to-end tests for jolt-core can be run using the following command:

cargo test -p jolt-core

Examples in the examples directory can be run using e.g.

cargo run --release -p sha2-chain

Performance profiling

Jolt uses tracing_chrome for performance profiling.

To generate a trace, run:

cargo run --release -p jolt-core profile --name sha3 --format chrome

Where --name can be sha2, sha3, sha2-chain, or fibonacci. The corresponding guest programs can be found in the examples directory. The benchmark inputs are provided in bench.rs.

The above command will output a JSON file, e.g. trace-1712455107389520.json, which can be viewed in Perfetto.

CI Benchmarking

We have enabled benchmarking during CI to track performance changes over time in terms of prover runtime and peak memory usage.

Acknowledgements

This repository started as a fork of https://github.com/arkworks-rs/spartan. Original Spartan code by Srinath Setty.

Licensing

Jolt is dual licensed under the following two licenses at your discretion: the MIT License (see LICENSE-MIT), and the Apache License (see LICENSE-APACHE).

Jolt is Copyright (c) a16z 2023. However, certain portions of the Jolt codebase are modifications or ports of third party code, as indicated in the applicable code headers for such code or in the copyright attribution notices we have included in the directories for such code.

Disclaimer

This code is being provided as is. No guarantee, representation or warranty is being made, express or implied, as to the safety or correctness of the code. It has not been audited and as such there can be no assurance it will work as intended, and users may experience delays, failures, errors, omissions or loss of transmitted information. Nothing in this repo should be construed as investment advice or legal advice for any particular facts or circumstances and is not meant to replace competent counsel. It is strongly advised for you to contact a reputable attorney in your jurisdiction for any questions or concerns with respect thereto. a16z is not liable for any use of the foregoing, and users should proceed with caution and use at their own risk. See a16z.com/disclosures for more info.

Extension points exported contracts — how you extend this code

Core symbols most depended-on inside this repo

Shape

Method 1,753
Function 489
Class 273
Enum 84
Interface 41

Languages

Rust100%

Modules by API surface

jolt-core/src/zkvm/instruction_lookups/read_raf_checking.rs71 symbols
jolt-core/src/poly/commitment/dory.rs66 symbols
tracer/src/emulator/cpu.rs62 symbols
tracer/src/emulator/mmu.rs60 symbols
jolt-core/src/poly/opening_proof.rs50 symbols
zklean-extractor/src/mle_ast.rs40 symbols
jolt-core/src/utils/small_value.rs40 symbols
jolt-core/src/poly/dense_mlpoly.rs37 symbols
jolt-core/src/poly/unipoly.rs36 symbols
jolt-core/src/zkvm/r1cs/spartan.rs31 symbols
jolt-core/src/poly/multilinear_polynomial.rs31 symbols
jolt-core/src/poly/commitment/zeromorph.rs31 symbols

For agents

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

⬇ download graph artifact

Ask about this repo answers extend the page