Transparency

What we have been asked for, and what we could give

Every legal demand this service receives is written into a register, and the figures below are counted from that register rather than typed by whoever wrote the page. A transparency report whose numbers are entered by hand is a claim about the operator's memory. Generated from a register, it is a claim about the register, which is a smaller and more checkable thing.

2026 H2 — period in progress

The current figures

MeasureCount
Legal demands received0
Accounts named across all demands0
Accounts for which any metadata was produced0
Accounts for which message content was produced0
Preservation orders in force0

Nothing has been received because nothing is deployed and there are no customers. This page exists now rather than later so that the machinery producing it is built and tested before the first demand arrives, rather than assembled in a hurry afterwards.

The row that matters

Message content produced: zero, and not as a policy

We do not decline to hand over message content. We cannot. What this service holds is ciphertext and wrapped keys, and it can read neither. A demand for the contents of an account's messages can be complied with completely and fully, and what it yields is material nobody involved can turn into words.

That is why this figure is printed exactly and never banded. If it is ever anything other than zero, a range would be the wrong way to tell you.

The limits of that claim are on the delivery page and are not buried: encryption in a browser protects you against a server that stores your messages, and not against one that serves you modified JavaScript. We say so because it is true, not because anybody asked.

Why some numbers are ranges

Small numbers identify people

A large messenger reporting "1,284 requests" reveals nothing about anybody. A small one reporting "one preservation order, United Kingdom, this half" has — combined with a date on the warrant canary and a support thread — come close to naming an account. So counts above zero are published in bands: 1–9, 10–49, 50–99, and so on upward.

Zero is reported exactly, because "we received none" is the most useful sentence this document contains, and banding it away would be absurd.

The honest gap

What this report cannot count

A demand can arrive with a legal prohibition on saying that it arrived. Such a demand cannot be included in any figure on this page without breaking that prohibition — so it is not, and we would rather tell you that the exclusion exists than fold it silently into a zero. A total that quietly absorbed a gagged demand would be a lie told with arithmetic.

The warrant canary is the instrument that covers exactly this case. It works by ceasing to be updated, and that page explains — carefully, because most canary pages get this wrong — what its absence would and would not prove.

Who can make a demand

Which laws reach this service, layer by layer

No jurisdiction is a safe one, and this page does not call any of them that. What follows is where each part of hosted Haven sits and what can lawfully reach it, stated so that you can weigh it rather than take a slogan on trust.

Hosted Haven, layer by layer. Self-hosted instances sit wherever their operator puts them.
LayerWhereWhat can reach it
The operator United Kingdom The Investigatory Powers Act 2016, including technical capability notices, which are secret — the kind of notice served on Apple in 2025 over Advanced Data Protection. The UK–US Data Access Agreement lets US authorities ask a UK provider directly; it carries no duty to decrypt.
The servers Germany — Hetzner Online GmbH, Falkenstein and Nuremberg Seizure under German law, including on another country's request — a Hetzner server was seized in 2020 on a request from the United States. German interception-capability duties exempt messaging-only services with 100,000 users or fewer; whether they reach a UK operator that rents machines in Germany is a question we cannot answer without a court, and we would rather say so. A hosting provider holds what anybody who copies the database holds, and the threat model is written for exactly that.
Push notifications Apple, Google, Microsoft, Mozilla United States law, including the CLOUD Act. They carry a fixed-length ticket with no names and no content, and see only the endpoint, the timing and the size.

What any of these could obtain is the same list whatever the jurisdiction: the metadata the privacy page enumerates from the live schema. The message content is ciphertext nobody here can open, which is the row above that reads zero.

How this is produced

Counted, cross-checked, and not typed

  • Figures are generated by scripts/transparency-report.js from the demand register. The generator takes only a period; it accepts no number from its caller.
  • A separate register records preservation orders and what they suspend. The two are cross-checked: a preservation order with no hold placed means data the order covered may have been destroyed on schedule, and a hold with no order on file is indistinguishable, from outside, from an operator deciding to keep somebody's messages. Either disagreement is published rather than resolved quietly.
  • The register names how many accounts a demand covered and never which. A register holding identities would make this report a re-identification risk instead of a disclosure.
  • Reports cover closed half-years, so a published figure does not change under the reader.