Verification Lab

Inspect the proof path without trusting the pitch.

This page gives judges a compact lab for validating the live proof story: proof system, public inputs, circuit hash, verifier key hash, contract anchors, receipt transaction checks, and nullifier replay evidence.

Proof Statement

Proof systemGroth16 BLS12-381

Circuit proof is generated off-chain and verified by Soroban.

Proof bytes384 bytes

pi_a, pi_b, and pi_c are packed before verifier submission.

Public input: root337334…d6d5ad

Binds proof to the active campaign Merkle root.

Public input: campaign176bc0…d25922

Prevents proof reuse across campaigns.

Public input: issuer0096e9…4ddc1c

Requires active issuer registry status.

Circuit hash8e5c5deb1a2e...fded1ce6

SHA-256 of circuits/aidshield-groth16/circuit.circom.

Verifier key hashc243d169dcf3...77d4d128

SHA-256 of the local verification_key.json artifact used for verifier initialization.

Contract Anchors

DisbursementCARYQO…5D3CZD

Artifact Anchors

Circuit source SHA-2568e5c5deb1a2eb2aafa64a4b7308ccfb7f070ecd9320172b5ca864ab5fded1ce6
Verification key SHA-256c243d169dcf36311eb4d12d5f0fe3016f8d6da21e7e41ca88474c0b477d4d128

The deployed verifier contract exposes proof verification, not a public VK getter. These hashes are reproducible from the repo artifacts and should be checked alongside the contract ID and successful proof path.

Lab Sequence

01Generate or load a beneficiary credential in the claim flow.
02Generate the browser Groth16 proof and submit with Freighter.
03Copy the generated receipt JSON after settlement.
04Open /receipt and check transaction status plus declared AidShield contract against Stellar testnet RPC.
05Retry the same credential to show nullifier replay rejection.
06Open the disbursement and verifier contracts on Stellar Expert.