Get in Touch

Build applications with zero-knowledge proofs

SP1 is a general-purpose zkVM that proves the execution of any RISC-V program. Write code in Rust and SP1 generates proofs.

SP1 chip with a square SP mark and a circular 1 mark.

How SP1 works

SP1 uses advanced cryptography to turn computation into a provable statement that anyone can verify the result without seeing the raw data.

  1. Write Rust
    use rsa::RsaPublicKey;
    use sha2::{Digest, Sha256};
    
    fn main() {
      let pk = sp1::io::read();
      let msg = sp1::io::read();
      let sig = sp1::io::read();
      pk.verify(msg, sig)?;
      sp1::io::commit(true);
    }

    Write in native Rust and
    reuse your existing libraries.
    SP1 handles compilation to
    RISC-V automatically.

  2. Prove Execution

    SP1 executes your RISC-V program
    and generates a zero-knowledge
    proof.

  3. Verify Output
    Prove204ms
    Verify24ms

    Anyone can check the proof in milliseconds without re-executing the data or trusting the prover.

Skip months of low-level ZK engineering with SP1.

Write Rust
curl -L https://sp1up.succinct.xyz | bash
# Restart your terminal, then run:
sp1up
cargo prove new --bare myproject
cd myproject/script
cargo run --release -- --prove