Skip to main content

SP1 zkVM Support

Sindri now supports the SP1 zkVM, streamlining the integration of production-ready proving frameworks into developer workflows. Together with our Jolt integration, this makes zkVM-as-an-API through Sindri both accessible and indispensable for the modern developer toolkit.

To generate SP1 proofs on Sindri, developers upload a project directory containing the guest code files along with the a sindri.json manifest.

Example SP1 Project Directory Structure
📦guest
┣ 📂src
┃ ┗ main.rs
┣ 📜Cargo.toml
┗ 📜sindri.json

All self-contained guest code examples from the SP1 examples directory are uploadable to Sindri. Guest programs that reference struct and function definitions outside of the program/ directory will need to be modified so that those definitions are included with the guest code files uploaded to Sindri.

An example of a sindri.json file that specifies the required fields for a SP1 project is shown below:

sindri.json
{
"name": "fibonacci",
"circuitType": "sp1",
"provingScheme": "groth16",
"sp1Version": "3.0.0"
}

Users can specify one of four supported SP1 proof types by changing the provingScheme field in the sindri.json file to one of: core, compressed, plonk, or groth16.

Proof inputs submitted to Sindri should be formatted as an SP1 SP1Stdin struct:

SP1 Proof Input
{
"buffer": [[20, 0, 0, 0]],
"ptr": 0,
"proofs": []
}