Back to guides

Generate Your First Proof

beginner3 min

Overview

This tutorial walks you through generating a real ZK-STARK proof on Minerva. You'll prove a simple claim — that a number exceeds a threshold — without revealing the number itself.

Step 1: Choose a Template

Navigate to Templates and select **"Age Verification"** — the simplest circuit.

This template has:

Step 2: Supply Your Inputs

On the template page, you'll see the input form:

FieldTypeExample
`minimum_age`Public18
`actual_age`Private25

The public input (18) will be visible in the proof. The private input (25) will never leave your session.

Step 3: Generate the Proof

Click "Generate Proof". Minerva will:

1.Parse the circuit definition into arithmetic constraints
2.Build an execution trace from your inputs
3.Run the Winterfell STARK prover
4.Return a proof blob (base64-encoded)

The proof looks like:

WINTERFELL_PROOF_AAAAEAAAABAAAAAgA...

This is a real cryptographic proof — not a hash or signature. It's a full STARK proof over a 128-bit prime field.

Step 4: Verify

Click "Verify". Minerva runs the Winterfell verifier against the proof and public inputs. If the proof is valid, you'll see a green checkmark.

Anyone with the proof blob and public inputs can independently verify the claim. They learn that your age exceeds 18 — nothing more.

What Happened Under the Hood?

1.The `gt` gate was compiled into an **Algebraic Intermediate Representation (AIR)**
2.Your inputs were encoded as field elements in GF(2^64 - 2^32 + 1)
3.The prover built a polynomial commitment over the execution trace
4.The verifier checked the polynomial constraints without seeing the trace

Try More

[Income Threshold](/templates/income-threshold) — Prove income exceeds a minimum
[Document Authenticity](/templates/document-authenticity) — Prove a document hash matches
[Design a custom circuit with Juno →](/chat)

Common Questions

Q: Is the proof reusable?

Yes. Once generated, anyone can verify it any number of times.

Q: Can the verifier extract my private data?

No. The zero-knowledge property guarantees that the proof reveals nothing beyond the truth of the claim.

Q: How large is a proof?

Typically 10–50 KB depending on circuit complexity. STARK proofs are larger than SNARK proofs but require no trusted setup.