ONNX zkML Verifier

Cryptographically prove your model produced specific outputs
Upload an ONNX model, generate a proof, verify instantly in any browser ยท For API transparency, regulatory compliance, safety research, and verifiable AI testing.

๐ŸŽจ Try Interactive Demo

Draw a digit and watch zkML verification in action. The proof generated is yours to verify anywhere!

๐Ÿ‘† Draw a digit (0-9) on the canvas and click "Recognize & Prove" to see zkML verification in action.
โ€” OR โ€”

Select an example model

Test inputs are automatically loaded for example models.

Import from Hugging Face ๐Ÿค—

Select a model from onnx-community (max 500MB)

โ€” OR โ€”

Enter any model ID from onnx-community

Upload your own ONNX model

No file selected
Provide test inputs as a JSON array of arrays.

๐Ÿ” WASM Proof Verifier (Browser-based)

Client-side cryptographic verification using our 108KB WASM module.
โšก Sub-millisecond verification | ๐Ÿ”’ Completely private (no server calls) | ๐ŸŒ Works offline

Cryptographic Checks:
โœ“ Model Binding โ€ข โœ“ I/O Integrity โ€ข โœ“ Proof Validity โ€ข โœ“ Timestamp Freshness
No file selected

๐Ÿ“š Documentation

What This Verifies

This demo performs client-side cryptographic verification of JOLT-Atlas proofs that a specific ONNX model produced the claimed output from the claimed input.

  • Program Binding: Proof cryptographically tied to your specific ONNX model (SHA-256 hash)
  • I/O Integrity: Input and output data cryptographically bound to the proof
  • Execution Proof: JOLT-Atlas guarantees the model actually executed (not simulated)
  • No Trusted Setup: Transparent zkML system, no pre-ceremony required
  • Browser Verification: 108KB WASM module verifies proofs instantly (<1ms)

Why ONNX?

Industry-standard format โ€ข Cross-platform โ€ข One-command export with Hugging Face Optimum โ€ข Active ecosystem on HF ONNX Community

๐Ÿค— Hugging Face Integration

Load models directly from Hugging Face onnx-community:

  • 60+ curated models: Vision, NLP, audio, and multimodal models ready to use
  • Categories:
    • Vision: ResNet, ViT, MobileNet, EfficientNet, ConvNeXt, YOLOS, DETR, SegFormer
    • NLP: BERT, GPT-2, T5, RoBERTa, DistilBERT, ALBERT, ELECTRA, DeBERTa
    • Audio: Whisper, Wav2Vec2, HuBERT
    • Multimodal: CLIP (vision-language models)
  • Custom model input: Enter any onnx-community model ID for unlimited access
  • Size validation: Automatic checks ensure models are under 500MB limit
  • No authentication: Models download directly from Hugging Face CDN

๐Ÿ’ก Tip: Browse onnx-community to discover 1000+ ONNX models, then enter the model ID in the custom input field.

Export Your Models to ONNX

Export from any framework in one command:

Hugging Face Optimum (Recommended)
pip install optimum[exporters]
optimum-cli export onnx --model bert-base-uncased ./onnx/
PyTorch
import torch
torch.onnx.export(model, dummy_input, "model.onnx", opset_version=12)
scikit-learn
from skl2onnx import convert_sklearn
onnx_model = convert_sklearn(model, initial_types=[...])

Resources:
โ€ข Hugging Face ONNX Export Guide
โ€ข HF ONNX Community (1000+ models)
โ€ข ONNX Runtime Documentation

Use Cases

Model Testing & Debugging
Prove your model produces specific outputs for specific inputs during development and testing.
Audit Trails
Create cryptographic evidence of model executions for compliance and regulatory requirements.
Content Moderation
Prove an image classification model flagged specific content without revealing the model or image.
AI Safety Research
Verify model behavior on adversarial inputs and edge cases with cryptographic guarantees.

About JOLT-Atlas

This verifier uses JOLT-Atlas, a production zkVM (zero-knowledge virtual machine) developed by a16z crypto for cryptographically proving program execution.

  • No Trusted Setup: Transparent proof system using polynomial commitments
  • Production zkVM: Real cryptographic proofs, not simulations
  • RISC-V Execution: Proves ONNX Runtime inference at the instruction level
  • Fast Generation: 600ms - 3s per proof depending on model complexity

Learn More:
โ€ข JOLT GitHub Repository
โ€ข JOLT Documentation
โ€ข Introducing JOLT (a16z blog)

โšก Performance Notes
โ€ข Proof Generation: 600ms - 3s depending on model size and complexity
โ€ข WASM Verification: Sub-millisecond (<1ms) in browser
โ€ข Max Model Size: 500MB ONNX file
โ€ข Browser Support: Chrome, Firefox, Safari, Edge (WASM required)
Provide test inputs as a JSON array of arrays. Example models automatically load appropriate test inputs.