Skip to main content
Version: v1.2

Verifier

a Groth16 verifier contract

Proof​

struct Proof {
struct Pairing.G1Point a;
struct Pairing.G2Point b;
struct Pairing.G1Point c;
}

PRIME_Q​

uint256 PRIME_Q

InvalidProofQ​

error InvalidProofQ()

custom errors

InvalidInputVal​

error InvalidInputVal()

verify​

function verify(uint256[8] _proof, struct SnarkCommon.VerifyingKey vk, uint256 input) public view returns (bool isValid)

Verify a zk-SNARK proof

Parameters​

NameTypeDescription
_proofuint256[8]The proof
vkstruct SnarkCommon.VerifyingKeyThe verifying key
inputuint256The public inputs to the circuit

Return Values​

NameTypeDescription
isValidboolWhether the proof is valid given the verifying key and public input. Note that this function only supports one public input. Refer to the Semaphore source code for a verifier that supports multiple public inputs.

checkPoint​

function checkPoint(uint256 point) internal pure