Civic Kernel a thin protocol for public decisions

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.

Or drop a transcript here (the nine files from 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.

Drop your ballot file here — or .