Generate Your First Proof
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:
| Field | Type | Example |
|---|---|---|
| `minimum_age` | Public | 18 |
| `actual_age` | Private | 25 |
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:
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?
Try More
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.