Electra← Back home

Trust & Verification

Built so that nobody has to take our word for it.

Electra's entire premise is that an election result should be verifiable by the people who voted in it — not just trusted because a platform says so. That means the system has to be structured so that not even the people running the election, or running the platform, can quietly tip the outcome. Here's exactly how that's enforced, and where you can check it yourself.

Nobody can see how you voted — not even the committee

When you cast a ballot, two separate records are written: one that says "this student voted for this position" (no candidate attached), and another that says "this candidate received a vote" (no voter attached). These tables are never joined, anywhere in the system. The electoral committee's dashboard only ever shows aggregate counts — there is no code path, no admin tool, and no database query available to anyone (including us) that reconnects a specific student to a specific choice.

Your university's admin cannot see your election's results before you publish them

A university's org-admin account (the role that manages departments and the university's logo) is deliberately walled off from voters, candidates, and results — server-side, not just hidden in the interface. Every request an admin account makes is checked against its role before the server does anything; there is no admin action that reaches into a committee's election data.

Committees are locked to their own election — enforced by the server, not the UI

Every electoral committee is scoped to exactly one election. That scoping is checked on every single API request the server receives, so a committee session cannot reach a sibling election's voters, candidates, or results even by directly calling the API with a different election ID — the server rejects it regardless of what the interface shows.

Every administrative action is logged, permanently

Adding a candidate, changing a schedule, resetting voter data, sending a token — every action any committee or admin takes is written to an audit log with a timestamp and the acting account. That log is append-only: nothing in the product lets anyone edit or delete a past entry, so there is always a record of exactly what happened and when.

Results are independently verifiable — by anyone, not just Electra

When a committee publishes results, Electra computes a cryptographic hash of the vote counts and timestamps it. That hash — and a matching hash of the official results PDF — is shown on a public integrity page for that election. Anyone can independently recompute the hash of the published PDF using a third-party tool and confirm it matches, without needing to trust Electra's word for it.

Defense in depth on every request

Bcrypt password hashing, rate-limited login attempts, single-use voter sessions that are deleted the moment a ballot is submitted, HMAC-signature verification on every inbound WhatsApp webhook, and parameterised database queries throughout. None of this is exotic — it's the standard toolkit, applied consistently, everywhere.

Verify a specific election

Every published election has its own public integrity page at /[university]/[election]/integrity — it shows the vote-count hash, the timeline of when the election opened, closed, and results were published, and a tool to verify the official results PDF against its recorded hash. Ask your electoral committee for your election's link, or check the results page for a link to it.