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.