Streaming zero-knowledge prover for low-memory ZK proving
Generate proofs in a constant 120 MB — never OOM again
A streaming SNARK prover that processes the witness sequentially, holding only a bounded working set in RAM. Proving that used to need many gigabytes now runs in a constant ~120 MB.

- ~120 MB
- Constant proving footprint
- O(1)
- Peak memory vs. circuit size
- 0
- Out-of-memory failures
A streaming approach to proving.
Conventional ZK proving materializes the full witness and intermediate polynomials in memory at once — so peak RAM grows with circuit size and large proofs OOM on anything but a big server. Snark Stream restructures proving as a streaming pipeline: it ingests and processes data in ordered chunks, keeping only a bounded window resident. The result is a flat memory profile measured in megabytes, not gigabytes, which makes proving viable on commodity and edge hardware.
Under the hood
Sequential ingestion
Instead of loading the entire witness, Snark Stream reads it as an ordered stream and advances a fixed-size window.
Chunked polynomial work
Polynomial commitments and FFT-style stages are evaluated over chunks, flushing completed regions before the next arrives.
Flat memory ceiling
Because nothing accumulates unbounded, resident memory holds at a constant ceiling regardless of proof size.
What you get
Streaming witness pipeline
The witness and intermediate values are consumed in ordered passes, so only a bounded working set is ever resident in RAM.
Bounded, predictable memory
Peak memory is decoupled from circuit size. Capacity planning becomes trivial: it fits in 120 MB and stays there.
Runs on commodity hardware
Proving moves off oversized prover boxes onto standard CI runners, containers, and edge devices.
Drop-in for existing circuits
Integrates with your existing proving flow without rewriting circuits or changing the trusted setup.

Built for teams shipping ZK.
- Teams whose provers OOM as circuits grow
- Rollups and bridges running proving in constrained CI/CD
- Edge and mobile ZK where RAM is the hard limit
Snark Stream questions
Instead of loading the entire witness and intermediate polynomials into RAM, Snark Stream consumes them as an ordered stream and advances a fixed-size working window. Completed regions are flushed before the next arrive, so resident memory holds at a constant ceiling regardless of proof size.
No. Snark Stream changes how proving is scheduled in memory, not the underlying scheme. It integrates with your existing circuits and trusted setup and produces the same proofs.
The goal is to make proving feasible and predictable within a tiny memory budget. By avoiding swapping, OOM restarts and oversized machines, streaming often improves end-to-end reliability and lets proving run on cheaper hardware.
Talk to us about your proving workload.
Tell us where memory is hurting your ZK pipeline. We'll show you which solution fits and how to deploy it.