npm.io
0.1.4 • Published 2d ago

@ethproofs/openvm2-wasm-stark-verifier

Licence
MIT
Version
0.1.4
Deps
0
Size
367 kB
Vulns
0
Weekly
25

OpenVM v2 Wasm Stark Verifier

WebAssembly bindings for the OpenVM v2 STARK verifier.

Overview

This module builds the verify_vm_stark_proof_decoded function from the OpenVM v2 openvm-verify-stark-host library into WebAssembly, enabling STARK proof verification to run directly in both web browsers and Node.js environments.

This is the v2 counterpart of openvm-wasm-stark-verifier, updated to work with the OpenVM v2 proof format from openvm-eth.

Usage

Installation
npm install @ethproofs/openvm2-wasm-stark-verifier
React Integration
import init, {
  main,
  verify_stark,
} from '@ethproofs/openvm2-wasm-stark-verifier';

await init(); // Initialize WASM (if needed)
main(); // Initialize panic hook

// Verify a proof (supports both raw and zstd-compressed proofs)
const isValid = verify_stark(proofBytes, vkBytes);
Node.js Usage
const { main, verify_stark } = require('@ethproofs/openvm2-wasm-stark-verifier');

// The Node.js version initializes automatically

main(); // Initialize panic hook
const result = verify_stark(proofBytes, vkBytes);

Proof Format

  • Proof bytes: Serialized StarkProofWithPublicValue<F> in bincode v1 format, optionally zstd-compressed
  • VK bytes: Serialized VmStarkVerifyingKey in bitcode format

This matches the proof format produced by the openvm-eth reth-benchmark tooling.

Testing

Installation
npm install
Prerequisites
Building
# Build for all targets
npm run build:all
Node.js Example
npm run test:node

This runs the Node.js example that loads proof and verification key files from the filesystem and verifies them.

Browser Example
npm run test

This starts a local HTTP server at http://localhost:8080 with a browser example that demonstrates:

  • Loading the WASM module in a browser environment
  • File upload interface for proof and verification key files
  • Interactive STARK proof verification
  • Performance metrics and detailed logging
  • Error handling and user feedback

Note: The browser example requires files to be served over HTTP due to WASM CORS restrictions. The included server script handles this automatically.

Keywords