Our research
Every number on this page came out of a script in our repository. Each one can be re-run — and disagreed with.
The privacy invariant
backend/api/scripts/canary-sweep.ts. A control decrypts memory 1 and asserts the marker is there, so an empty search cannot pass by accident.
Where the time goes
171 ms
full save, median · p95 203 ms
Client seals → ciphertext to object storage → metadata to the API. n=30, median, local infrastructure.
Encryption cost
AES-GCM-256 per memory, key wrapped with AES-KW. Median of 20 runs (5 at ≥1 MB). 2015 laptop.
On Solana
Devnet, written one at a time. Both failures were the free public endpoint's WebSocket dropping, not the program rejecting anything.
Unit economics
Todaymeasured
Batchedprojected
Per user per month, by reflections per month, against an $8 plan (axis top). Today: one rent-exempt account per receipt at $73.85/SOL (22 Jun 2026 quote). Batched: one Merkle root per period, ~20× cheaper — not yet built.
Prior art
Consumer AI chatbots
End-to-end encrypted note apps
Confidential-cloud AI (e.g. Apple PCC)
UNSAID
| Approach | Encrypted storage | Attested AI | Public per-access receipt |
|---|---|---|---|
| Consumer AI chatbots | —No | —No | —No |
| End-to-end encrypted note apps | Yes | —No | —No |
| Confidential-cloud AI (e.g. Apple PCC) | —No | Yes | —No |
| UNSAID | Yes | Yes | Yes |
Our contribution, from docs/paper/research-notes.md: binding attestation, consent version and a content-free receipt — per access, on a public ledger — over end-to-end encrypted personal data.
Not measured yet
The paper