Product · Voter device
The only place ballots are cast
Membership lives on the phone as a bound device credential. Voters deliberate, seal their choice under the system ballot key, sign with their device key, and keep a tracker for inclusion checks.
What the device does
- Bind with a one-time token / QR from the officer portal (publicvoting://bind?…)
- Confirm system fingerprint to reduce look-alike phishing
- Show motions and elections for that voting system
- Cast Mode B sealed ballots (binary, option, ranked where enabled)
- Display receipt: tracker, log sequence, deep links to public verify pages
- Rotate keys when transferring phones; recover with offline secret if the phone is lost
Implementation status
Repository publicvoting-mobile ships pure Dart Mode B crypto, API client, bind-share parsing, and cast_demo CLI with vector tests. Flutter UI screens are specified and planned; the integrity path is already usable for demos and integration.