Verify SNARK Proof
Free to download on every platform. Comes pre-installed on BotFone, BotPad and BotFlip — with extra free apps included.
About this app
WHAT IT DOES
Verify SNARK Proof enables you to cryptographically verify SNARK (Succinct Non-interactive ARgument of Knowledge) proofs using either Groth16 or Plonk proof systems. SNARKs are the most widely used zero-knowledge proof systems in blockchain applications, offering the smallest proof size and fastest verification, making them ideal for on-chain verification in Ethereum and other EVM chains. The tool takes a complete SNARK proof, a verification key, public inputs, and a proof system selection (Groth16 or Plonk), and performs the full verification algorithm to confirm the proof's validity. If the verification succeeds, the tool returns a valid result, confirming that the proof demonstrates knowledge of inputs satisfying a circuit without revealing those inputs. This is essential for applications that require efficient and scalable verification of zero-knowledge proofs for blockchain scalability, privacy, and verification.
HOW TO USE
Connect your wallet using the BGWallet connector (required for context). Select your proof system: Groth16 (smallest proof size, circuit-specific setup) or Plonk (universal setup). Select the proof format: "JSON" for structured proof data (recommended) or "Hex" for raw hex-encoded proof components. Enter the SNARK proof as a JSON object (Groth16: pi_a, pi_b, pi_c; Plonk: A, B, C, Z, T1, T2, T3, W, W_). Enter the verification key as a JSON object containing the key components (Groth16: alpha, beta, gamma, delta, gamma_abc; Plonk: alpha, beta, gamma, delta, K1-K4, sigma polynomials, gate polynomials). Enter the public inputs as a JSON array of field elements. Click "Verify Proof" to run the verification. The tool displays the proof system, format, number of public inputs, and the verification result: a green "Verified" checkmark if the proof is valid and a red "Invalid" X if it fails. The result includes a detailed explanation of the outcome.
TECHNICAL MECHANISM
This tool implements SNARK proof verification with support for both Groth16 and Plonk proof systems on the bn128 (BN254) elliptic curve. For Groth16, the verification uses pairing operations to check the equation: e(pi_a, pi_b) = e(alpha, beta) * e(gamma_abc, gamma) * e(pi_c, delta). For Plonk, the verification checks the polynomial commitments, permutation constraints, and quotient polynomial identity using KZG commitments and pairing checks. Both systems use the bn128 curve for compatibility with Ethereum's pairing precompiles, enabling efficient on-chain verification. The verification key contains the precomputed elements specific to the circuit. The verification algorithm checks the cryptographic pairing equations and the public inputs are properly included in the verification. All computation is performed locally in the browser using cryptographic libraries, with no data sent to external servers. The verification process is deterministic and produces a boolean result.
WHAT IT CANNOT SEE
This tool cannot verify that the proof corresponds to actual on-chain state or values without additional context—you must ensure the public inputs match the expected on-chain data. It does not support all ZK proof systems (only Groth16 and Plonk SNARKs). The tool cannot verify proofs without the circuit-specific verification key; both the proof and verification key are required for verification. It does not support hardware acceleration for verification; all computation is done in software in the browser. The tool cannot verify the correctness of the verification key without additional trust assumptions; you must trust the key generation ceremony. It does not support verification of proofs generated with non-standard curves beyond bn128. The tool cannot verify proofs for circuits with mutable or dynamic parameters; the verification key must match the circuit. It does not support proof aggregation or recursive verification; it only verifies a single proof. The tool cannot recover the original inputs from the proof; zero-knowledge proofs reveal only what they are designed to reveal. The tool requires a trusted setup for security guarantees, which is inherent to SNARK systems.
PLEASE NOTE
This tool is designed for developers and users working with SNARK proofs on Ethereum and EVM-compatible chains. Groth16 offers the smallest proof size (3 group elements) and fastest verification, but requires a circuit-specific trusted setup. Plonk offers a universal setup with slightly larger proofs. Both systems use the bn128 curve for compatibility with Ethereum's pairing precompiles. The verification key must be generated from the same circuit as the proof using the same trusted setup ceremony. The proof format varies between Groth16 (pi_a, pi_b, pi_c) and Plonk (A, B, C, Z, T1, T2, T3, W, W'). The public inputs must match the circuit's expectation exactly—mismatches will cause verification to fail. Always verify proofs from trusted sources using a reliable verification library before relying on them in production systems. The verification result proves that the prover knew inputs satisfying the circuit, but it does not prove that those inputs correspond to real-world data without additional context. The tool supports standard Groth16 and Plonk verification, which are the most widely adopted SNARK variants in blockchain applications.