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.
📦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:
{
"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:
{
"buffer": [[20, 0, 0, 0]],
"ptr": 0,
"proofs": []
}