canvass.UNLOCKED
Phase 02 · scaffolding · M0

Server holds ciphertext only.
Voter data stays yours.

Open-source self-custody canvasser app. XChaCha20-Poly1305 client-side, Shamir 3-of-5 recovery, on-device Whisper + Gemma + NLLB. AGPL-3.0. Multi-select result codes. Voter writeback. A back button that works.

Whisper · on-deviceGemma 3 1B · structurerNLLB-200 · 7 languages
Build status · M0
  • ▣crypto module — blob envelope, KDF, HMAC index, passkey PRF
  • ▣sync module — mutation log, Dexie schema, sync health
  • ▣MCP tool registry — 17 Zod-typed tools across 3 scopes
  • ▣self-custody CI check — privileged-import enforcement
  • ▢Hono API skeleton — sync push/pull, blob PUT/GET
  • ▢Auth.js + passkey enrollment with PRF derivation
  • ▢Agent harness — Vercel AI SDK + local tool dispatch
  • ▢Shamir 3-of-5 secret sharing for org master key

Need the public voter resource portal? turnout.app