> ## Documentation Index
> Fetch the complete documentation index at: https://docs.starknet.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Proof generation

> Virtual execution, Stwo proving, and how this differs from live Starknet

Proofs are generated by executing Cairo in a **virtual Starknet environment** anchored to a recent block, then proving that execution with Stwo.

## How integrators run the prover (today)

**Operational docs are intentionally not duplicated here** while the reference implementation, SDK, and proving stack are still **private**. When that code is open sourced (planned for a later phase of the rollout), install and end-to-end “generate proof → submit actions” guides will live next to the repository—not as placeholders on this site.

Until then, this page is **conceptual**: it explains what is being proved and why the model looks the way it does.

## Simulated vs real execution

The virtual environment is chain-anchored but not a full sequencer runtime. In practice:

* storage and contract calls are evaluated against an anchored state snapshot,
* only the syscalls and builtins implemented by the **virtual Starknet OS dedicated to the privacy pool's implementation** are available (a subset of what the Starknet sequencer supports),
* unsupported features fail at proving time (not at post-submit execution).

The exact syscall and builtin surface is defined by the **implementation** that ships with the open source release.

## Why this design

* native storage model,
* account abstraction signature checks (`is_valid_signature`),
* shared Cairo logic between proving and verification paths.
