WebAssembly bindings for the OpenVM STARK verifier.
This module builds the verify_vm_stark_proof function from the OpenVM verify-stark library into WebAssembly, enabling STARK proof verification to run directly in both web browsers and Node.js environments.
npm install @ethproofs/openvm-wasm-stark-verifierimport init, {
main,
verify_stark,
} from '@ethproofs/openvm-wasm-stark-verifier';
await init(); // Initialize WASM (if needed)
main(); // Initialize panic hook
// Verify a proof
const isValid = verify_stark(proofBytes, vkBytes);const { main, verify_stark } = require('@ethproofs/openvm-wasm-stark-verifier');
// The Node.js version initializes automatically
main(); // Initialize panic hook
const result = verify_stark(proofBytes, vkBytes);npm install# Build for all targets
npm run build:allnpm run test:nodeThis runs the Node.js example that loads proof and verification key files from the filesystem and verifies them.
npm run testThis 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
The browser example provides a complete UI for testing the WASM verifier with drag-and-drop file selection and real-time verification results.
Note: The browser example requires files to be served over HTTP due to WASM CORS restrictions. The included server script handles this automatically.