Sindri provides automated ZK proving infrastructure, empowering hundreds of teams—including leading Layer 2s and rollups—to launch in minutes instead of months. Through the Sindri API, developers can seamlessly integrate verifiable computation, reducing time to market, cutting costs, and scaling faster. Sindri makes zero-knowledge infrastructure simple and accessible, facilitating automation within the most hardware-intensive layer of the ZK app deployment stack.
This repository contains the Sindri Rust SDK, which provides a client for interacting with the Sindri API.
The SindriClient
struct encapsulates all methods for interacting with the Sindri API.
The client handles request/response management and includes built-in robustness features like automatic retries for transient errors.
Generate your first zero-knowledge proof in just a few lines of code:
use sindri::client::SindriClient;
let client = SindriClient::new(None, None);
let circuit = client.create_circuit("path/to/circuit", None, None).await?;
let input = r#"{"a": 1, "b": 2}"#;
let proof = client.prove_circuit(circuit.id(), input, None, None, None).await?;
-
Project Management: Create circuits and proofs with methods like
SindriClient.create_circuit()
SindriClient.prove_circuit()
-
Collaboration: Share and reuse public circuits using
SindriClient.clone_circuit()
-
Seamless Integration: Works with popular Rust-based DSLs and zkVMs including: