Trust through transparency

A closed-source privacy product is a contradiction, and so is a closed-source backup product. You would be trusting that the encryption is real, that the data paths are actually absent, that the proofs are actually zero knowledge, that the keys are never held.

We do not ask for that trust. Our cryptographic cores, backend services, backup engine, client tooling, and protocol specifications are published. Read the code. Run it yourself. Find a bug and tell us.

If the code is not public, the claim is not verifiable. If the claim is not verifiable, it is marketing.

Open, and honest about it

We do not claim that every line we write is open source. We claim that it is published and auditable, and that you can run it yourself. Here is exactly what that means for each product.

🪪

Provii — open source

Open source under a mix of licences across its repositories: AGPL-3.0, Apache-2.0, and MIT, with a small number of components kept proprietary. The cryptographic crates are dual-licensed MIT or Apache-2.0.

Free for the people who use it to prove their age. Credential issuers pay a per-verification royalty; that is the commercial layer.

🌧️

downpipes — source-available

The engine, console, and control-plane are source-available under the Elastic License v2. You may read, run, and rely on them yourself, in your own Cloudflare account, for free. The offline reader is MIT-licensed and fully open.

The one thing the licence forbids is reselling downpipes as a managed service. That is not commercial protection; it is the product. A third party running it for you would be taking custody, and no-custody is the whole point.

The things you would otherwise have to take on faith

🦀

Cryptographic cores

Rust crates for zero knowledge proof generation and verification, Pedersen commitments, and constant-time operations (Provii); the post-quantum hybrid sealing that protects archives at rest (downpipes).

⚙️

Services & engines

Provii's verification and issuance services, in Rust and TypeScript on Cloudflare Workers; the downpipes in-tenant backup engine and operator console that run inside your own account.

📱

Client tooling

Native iOS (Swift) and Android (Kotlin) wallet apps with a shared Rust core via UniFFI (Provii); the MIT-licensed downpipe offline reader that restores archives with no vendor in the loop (downpipes).

📐

Specifications

A standalone age-verification protocol spec (Provii) and a frozen archive-format spec (downpipes), both implementation-independent. Anyone can build a compatible verifier or a compatible reader.

🔧

Integration SDKs

Client and server libraries across multiple platforms and languages, with demo implementations covering common integration scenarios.

📋

Security documentation

Our ISMS documentation is published alongside the code. Threat models, risk registers, data processing records, security policies. Not behind a sales call.

SLSA provenance, signed and pinned

Every build artefact we release can be traced back to its exact source commit and the build environment that produced it, and signed with Sigstore. You do not need to trust that we built what we say we built. The provenance chain proves it.

The downpipes update channel goes further: updates are signature-pinned and pull-only, verified against a pinned public key before they apply, and rolled back automatically if a post-apply canary fails.

  • Every release traced to its exact source commit
  • Sigstore-signed provenance attestations
  • Signature-pinned, pull-only update channel
  • SHA-pinned CI dependencies
  • Automated licence compliance checks
  • Automated vulnerability scanning

Your data stays yours

The same principle runs through both products. A Provii credential belongs to the holder: it lives on their device, protected by their biometrics or passcode, and we cannot access it, revoke it, or monitor how it is used.

A downpipes backup belongs to the customer: it lives in their own Cloudflare account, sealed under keys only they hold, and we never receive a copy. In both cases, when we say you own your data, we mean you are the only one who has it.

A standard, not a walled garden

We publish implementation-independent specifications so others can build compatible software. Anyone can write a Provii-compatible verifier, or a reader for the downpipes archive format.

That is deliberate. A recovery path you can rebuild from a public spec is one no vendor, including us, can ever take away from you.

What we believe

No-custody beats good intentions

A promise not to misuse your data is only as good as the company making it. A system that never holds your data cannot break that promise, because there is nothing to break.

Privacy and sovereignty are architectural

Not a toggle, not a policy, not a promise. When the data paths do not exist, or the keys live only with you, there is nothing to breach, subpoena, or sell.

Regulation needs better tools

Age-verification mandates and data-protection rules are tightening. The question is whether compliance requires mass surveillance and central honeypots, or whether cryptography offers a better path. We think the answer is obvious.

Verifiability is non-negotiable

Closed systems ask you to take their word for it. We think that is an unreasonable ask. If you cannot read the code and run it yourself, you cannot verify the claim.

Get involved

Report bugs, review the cryptography, suggest improvements, or build something new on top of our specifications. We welcome contributions from anyone who shares the goal.