This is the monorepo for the Succinct Prover Network, a protocol on Ethereum that coordinates a distributed network of provers to generate zero knowledge proofs for any piece of software. This protocol creates a two-sided marketplace between provers and requesters, enabling anyone to receive proofs for applications such as blockchains, bridges, oracles, AI agents, video games, and more.
For more details, refer to the network and provers section of our documentation.
Warning: This codebase is still under active development and has not yet undergone a full security audit. It is not production-ready.
This repository offers the following components:
- Contracts: Solidity smart contracts for the protocol, including the $PROVE ERC20 token, staking mechanisms, and the network's settlement contract.
- Verifiable Application: The network's state transition function, handling tasks such as balance management, proof clearing, and more, is implemented as verifiable RISC-V programs, proven using SP1.
- Reference Prover: We provide a reference prover implementation that demonstrates a basic interaction with the network, including bidding and generating a proof.
To get started, you will need to install the following prerequisites:
Then, clone the repository:
git clone https://github.com/succinctlabs/network.git
cd network
To build the prover node and rust crates, run:
cargo build --release
./target/release/spn-node --help
To build and test the contracts, run:
cd contracts
forge test
Licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.