The phone is a transmitter. Not a safe.

Encrypted video testimony that leaves the phone while it is being filmed, toward a relay that cannot read it. The only key is twelve words on paper.

Field-test ready · Audit-ready · Not production-ready

Why it exists & where it fits

Shake. Document. Protect. Frappuccino turns an Android phone into a transmitter of end-to-end encrypted video testimony: footage leaves the device while it is being filmed, toward a relay that cannot read it, and the only key that can ever decrypt it is a twelve-word phrase on paper, in the witness’s pocket.

Seizing the phone - before, during, or after recording - no longer yields anything to read.

The problem

An activist films an abuse. A journalist documents a sealed-off site. A lawyer records an arrest. Three things tend to happen, often in this order: the phone is seized, the PIN is coerced, and the hardware goes to forensic extraction (Cellebrite, GrayKey). For testimony to survive that, three properties must hold at once:

  1. Survive seizure and wiping - the content must exist elsewhere, recoverable by the witness alone, even from a brand-new phone: no account, no cloud, no third party.
  2. Stay unreadable by the server - a seized or hostile relay must have nothing to hand over but opaque bytes.
  3. Hold even if the phone is snatched mid-recording - footage encrypted “at the end” protects nothing if capture is cut short by force.

A local encrypted vault fits this poorly: a safe can be opened - by brute force, by coercion, by an OS exploit. As long as the data and its key are both on the phone, the phone is the single point of failure, and it is exactly what the adversary holds. The goal is not a better safe. It is to stop being a safe.

Why it’s different

Threat model in brief

If the adversary…Then…
Seizes the phone after recordingNothing readable on the device; the footage is on the relay, encrypted
Snatches the phone mid-recordingEverything up to seconds before the snatch is already encrypted and off the device
Coerces the PINAt worst bounded future signing capacity: not one byte of past content
Runs Cellebrite / GrayKeyNo decryption key exists on the device; the ratchet blob is sealed under Argon2id
Intercepts the network, even with a rogue CAPer-blob XChaCha20-Poly1305 inside SPKI-pinned TLS
Seizes or maliciously operates the relayOnly opaque blobs and pseudonymous keys: nothing to read, nothing to leak

What Frappuccino does not protect, stated plainly: the fact of emitting is still visible. The obfuscated transport makes the upload inclassifiable as QUIC to signature DPI, but the destination is a known IP and the timing and volume envelope is unchanged, so this is inclassifiability, not invisibility, and Frappuccino is not a network anonymizer (combine it with Tor or a VPN if the metadata itself endangers you). A compromised OS at capture time sees what the sensor sees; it offers no court-grade chain of custody (that is ProofMode’s and eyeWitness’s territory); and the paper phrase is a deliberate single point of total failure.

Assurance - trust is verified, not declared

A cryptographic system can fail at the design, the implementation, or the compiler level, so each is checked by a tool whose verdict depends on no one’s judgment. Every proof ships with a reproducible runner and a negative control - break the mechanism on purpose and the tool must catch it, because a proof that cannot fail proves nothing.

LayerToolResult
Protocol vs active network attackerTamarin (Dolev-Yao)11/11 lemmas + 3 negative controls
Ratchet state machineTLA+/TLC4680 states explored, 0 error
Untrusted-input parsing (the real Rust)Kani (bounded model checking)header parser provably panic-free
Kotlin/Rust boundaryDifferential fuzzing759/759 vectors byte-identical
Compiler outputLLVM IR zeroize auditthe secret wipe is never dead-store-eliminated

Plus mutation testing, cargo-fuzz, property-based testing, and adversarial AI audits arbitrated by independent re-verification against the code. This prepares an external human audit; it does not replace it.

Status - read this before relying on it

Field-test ready. Audit-ready. Not production-ready.

If lives depend on your footage today, do not make Frappuccino your only line of defense. The known limits are documented with the same care as the features.

Built to be verified

Frappuccino is developed by a solo developer with an AI as the primary pair programmer - including for the cryptographic code and the internal audits. This is stated up front because it is the condition of trust in everything else: no security claim rests on an AI’s judgment. Every important property is anchored to a deterministic, replayable, non-AI oracle, and the code is published to be attacked.

A deeper look at the problem, the design choices, and where Frappuccino sits among existing tools - Tella, Signal, ProofMode, eyeWitness - is on the positioning page.