ZK Proof Verification
Check any proof yourself
No account, no secret, no transaction. The same proof is checked by three independent paths, and each answer is shown with its source.
Paste a proof bundle
no secret neededA bundle (zksium-proof-v1) carries the proof and its public inputs: nullifier, root and scope for eligibility; commitment and threshold for disclosure; and the recipient. It never carries the secret, the value or the salt, so it is safe to share with whoever needs to check it.
- ○Read the bundle (format, numbers, addresses)
- ○Verify the proof in this browser
- ○Verify it on Elysium's precompiles
- ○Ask the deployed gate about it
- ○Is a claim recorded for the recipient?
What each check means
- In this browser: snarkjs checks the proof against the verification key shipped with this site (public/circuits/*.vkey.json).
- On Elysium's precompiles: the site's server asks an Elysium node to run the generated Solidity verifier (eth_call with the verifier's code placed by a state override). Read-only; nothing is stored or sent as a transaction. It shows the same proof passes on Elysium itself.
- The gate: the deployed ZksiumProofGate's own check: known root, unused nullifier or commitment, attested commitment, recipient, and the proof.
- A valid proof shows the math holds. It does not tell you who the admin or attester is, or whether you should trust them: read the gate's rules.