الشفافية
Transparency report
Attested by the operator on 2026-11-14 · next update on or before 2027-02-14
This page states, on the record, every request for user data this service has received — and commits in advance to the date of its next update. A transparency report that falls silent past its promised date is itself a signal, which is the point of promising the date.
Requests received, all time
| Government or law-enforcement requests for user data | 0 |
| Court orders compelling disclosure | 0 |
| Gag orders restricting what this page may say | 0 |
| National-security letters or equivalents | 0 |
| Accounts affected by any of the above | 0 |
| Requests where any plaintext mail could have been produced | 0 — none exists on the server to produce |
Canary
As of 2026-11-14, the operator of this service states:
- We have never received a warrant, subpoena, or any legal demand for user data.
- We have never been placed under a gag order of any kind.
- We have never been asked to install, and have never installed, any capability to intercept, weaken, or bypass the sealing of user mail.
- We have never turned over any user data to any party.
If any statement above stops being true, our obligation is to remove it by the next scheduled update — never to keep publishing it. Read absence accordingly.
What a request could even yield
The honest core of this page is structural, not statistical. Mail bodies, subjects, senders, attachments and their filenames, drafts and contacts are sealed to keys that exist only in the user’s unlocked browser, and the search index is not on the server at all — the strongest query the operator can run against the mail store meets ciphertext. A compelled disclosure could therefore produce: account shell data (identifier, timestamps), routing metadata the server needs to be a mail server, security logs within their retention, and ciphertext. This boundary is enforced by the sealing design and its test suite, not by policy — see the threat model and the constitution, whose Article VI (“No back door at any price”) binds the answer to the request nobody publishes.
The code this instance says it is serving
…
How to check it: the browser extension (extension/) fetches this manifest and hashes, in your browser, every file an open RocMail tab loaded from this instance, that tab's service worker, and every file listed here. A file the tab loaded that is not listed, or one that differs, fails the check.
What that does not prove. This manifest is the server's own statement about itself. The extension fetches the files again, and a server can tell those requests from the page's and answer them differently, so a match does not prove the tab ran those bytes. The HTML of each page and its inline bootstrap are rendered per request and are not covered. Anyone can check out the commit and run the production build. Two builds of one commit on one machine give the same files and the same digest; that a build on another machine does too has not been shown yet, so a rebuild elsewhere is not yet expected to match.
The key log
Every key this instance hands out for a member’s Name is first appended to an append-only log — a Merkle tree, as Certificate Transparency keeps one — under a label only this instance can compute, so the log shows that keys exist and change, never whose they are. Members’ browsers check every key they seal to against it, and each member’s own app checks, with the vault open, that the log holds no key for their Names that is not theirs. When a member’s client says the log’s key has changed, this fingerprint is what they compare.
…
What it cannot do: the log has no outside witnesses yet. A server that showed different members different logs is caught only when they compare heads — which this page is for, and which means most when the fingerprint here matches the one a member’s own client pinned, since this page comes from the server it describes.
Method
Updates land on a fixed quarterly schedule whether or not anything changed, in the public source repository first — so every change to this page has a public, timestamped history that the operator cannot quietly rewrite.