Hi Here how to end-to-end verify that the [circuit here](https://github.com/zk-passport/openpassport/blob/19b7b0a7cc065e7a400854c34a0e17ce422d0861/circuits/circuits/register_sha256WithRSAEncryption_65537.circom) is actually the one used to generate and verify proofs in the New Democratic Primary, and that the ceremony was done correctly. - Download the zkey that was used here: https://d34i9391mrjtha.cloudfront.net/register_sha256WithRSAEncryption_65537_us_election_no_modal.zkey.zip - unzip it - install [snarkjs](https://github.com/iden3/snarkjs?tab=readme-ov-file#install-snarkjs) - Export the final vkey [with this command](https://github.com/iden3/snarkjs?tab=readme-ov-file#install-snarkjs) and see that it's the same that is used to verify proofs [in the sdk here](https://github.com/zk-passport/openpassport/blob/19b7b0a7cc065e7a400854c34a0e17ce422d0861/sdk/circuits/register_sha256WithRSAEncryption_65537_vkey.json) - pull https://github.com/zk-passport/openpassport and checkout branch `us-election` - run those commands to compile the circuit into r1cs: ``` cd circuits yarn ./scripts/build_circuits.sh cd build ``` - download the ptau number 19 [here](https://github.com/iden3/snarkjs?tab=readme-ov-file#7-prepare-phase-2) - run this command [here](https://github.com/iden3/snarkjs?tab=readme-ov-file#21-verify-the-final-zkey) on the `.r1cs`, `.ptau` and `.zkey`. It should show all the contributions to the ceremony, then end with "ZKey Ok!"