— Getting Started —

CLONE. BUILD. PROVE.

Every command below is real -- copied from this repo's own README and CI workflow, not written for this page. Run them in order.

1

Clone and build

Use --release even for tests -- one constraint has a data-dependent polynomial degree that trips a stricter-than-necessary Winterfell debug check. See the Architecture page for why.

git clone https://github.com/CodesbyFebin/rust-stark-zkvm
cd rust-stark-zkvm
cargo build --release
cargo test --release --workspace
2

Run, prove, and verify locally

cargo run --release -p zkvm-cli -- demo

cargo run --release -p zkvm-cli -- run    examples/fibonacci_like.zkasm
cargo run --release -p zkvm-cli -- prove  examples/fibonacci_like.zkasm out.proof
cargo run --release -p zkvm-cli -- verify examples/fibonacci_like.zkasm out.proof

demo runs the full execute → prove → verify → tamper-check cycle, including two deliberate tamper attempts that should get rejected.

3

Push a program over HTTP instead of proving locally

cargo run --release -p zkvm-host-server &   # listens on :4477
cargo run --release -p zkvm-cli -- deploy examples/fibonacci_like.zkasm
cargo run --release -p zkvm-cli -- verify examples/fibonacci_like.zkasm examples/fibonacci_like.zkasm.proof

This is a real HTTP round trip, not a mock -- see the API Reference for every route, or docs/HOST_SERVICE.md for exactly what the service does and doesn't cover.

4

Talk to it over MCP

cargo build --release -p zkvm-host-server
./scripts/mcp_demo.sh

Exposes real prove/verify MCP tools on port 4478 for Claude, Cursor, or any MCP client -- see the MCP page for the exact tool schemas.

5

The full on-chain loop

cd contracts && forge test
cd .. && ./scripts/onchain_demo.sh

Deploys the contracts to a local chain, gets a real proof from a real running server, verifies it locally, attests it on-chain, and confirms the prover is actually paid. Read the FAQ first if you're expecting this to be trustless end to end -- it isn't, on purpose, and that's stated plainly.