Check the election yourself
No account, no permission, no trust required — the check runs from the published files alone, in your browser. Nothing you load here is sent anywhere; this page makes no network request except, if you press the button, to fetch the reference files from this same site.
This verifies a clubvote transcript: a sixty-member allotment society electing its treasurer with anonymous, sealed ballots. The verifier below re-does every check from scratch — the record's hashes and witness signatures, every ballot's membership and validity proofs, the count itself, and finally whether this history matches the copy the world saw. If a single number were altered anywhere, a check turns red and says where.
proto/out/, or the folder itself)
— or .
Find your own ballot
Voters hold a secret their device generated at enrolment. From it, this page recomputes your ballot's linking tag for this decision and looks it up in the public box — so you can see your vote was recorded, without the record ever naming you. The secret stays in this page; nothing is transmitted.
This demo election is deliberately reproducible, so every "secret" is public — that is a declared property of the demo, not of the design. Try or . In a real election only you would know yours, and this lookup would name nobody.
Hand in a ballot — watch the count move
Cast a ballot on the casting page, then drop the
downloaded ballot-….json here. This page judges it exactly as it judges the
box — membership, tag, validity — applies the re-vote rule, adds it to the sealed sum,
and unseals the new total, in your browser. This is the committee's collect step
replayed for you; a parity test in CI holds it to the Python judge's verdicts.
Unsealing here is possible only because this demo publishes every secret, the trustees' included. In a real election this page could judge your ballot but never count it — that takes two of the three trustees, each on their own machine, which is the point. Nothing you drop here changes the published record.