Trusted setup: one contributor. Try it; do not guard value with it yet.

Read the setup record

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 needed

A 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.

  1. Read the bundle (format, numbers, addresses)
  2. Verify the proof in this browser
  3. Verify it on Elysium's precompiles
  4. Ask the deployed gate about it
  5. 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.