ZK UPLC Verifier

Evaluate Cardano UPLC locally in your browser, generate an OpenVM proof on the backend, then verify that proof locally via WASM.

Aiken WASM
UPLC WASM
WASM Verify
Backend
1 Input
2 Prove
3 Commitment
4 Verify
5 MCU BLE
Λ

Program Input

Compile Aiken source or provide flat-encoded UPLC hex
🖥 Local · WASM
The program is the computation you want to prove was run correctly. You provide the code; the zkVM will later prove it executed honestly.

Evaluate & Prove

Evaluate UPLC locally, then generate a STARK proof on the server
🖥 Local · Evaluation Remote · Proof generation
Your browser runs the program to get its result. The server then re-runs it inside a zkVM, producing a cryptographic proof that the execution was correct.
#

Commitment Verification

Verify SHA-256( program || result ) matches the proof's public output
🖥 Local · WASM

The proof commits to a hash of the program and its result. We recompute that hash locally and check it matches — this ensures the proof is about this specific program and result, not some other computation.

How is the commitment computed?

The zkVM guest computes:

commitment = SHA-256( program_bytes || result_string )

where program_bytes is the raw UPLC program (flat-encoded binary), and result_string is the text representation of the evaluation result (e.g. Integer(55)).

This 32-byte hash is revealed as the proof's public output. A verifier can independently re-evaluate the program, recompute the same hash, and confirm it matches — binding the proof to both the specific program and its output.

STARK Proof Verification

Cryptographically verify the STARK proof locally in your browser via WASM
🖥 Local · WASM
Proof, baseline, and verification key will be loaded before the final check.
The final check runs inside your browser using the OpenVM WASM verifier. Proof generation still uses the backend, but the proof itself is not sent back to the server for verification.
BT

MCU Halo2/KZG Verification

Generate the board-ready proof, send it to a ZKMCU device over BLE, and read the board verdict
ZK Backend · Halo2/KZG BT ZKMCU · BLE
The MCU should be flashed with BLE verifier firmware and advertising as ZKMCU.
This path sends the native verifier key and proof envelope that the MCU verifies with Halo2/KZG. No bytecode verifier is involved.