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 .