Transparency

Last updated 2026-05-27

Olocus is a small set of cryptographic primitives, a private store on your device, and a thin relay that only ever holds encrypted bytes the device chose to upload. This page names every mechanism behind the privacy claims on the front page. If a claim depends on a mechanism, the mechanism is named.

What the relay can see

When your device uploads a scoped proof, the relay observes:

What the relay cannot see

What the maps backend can see

Olocus self-hosts the map stack at maps.olocus.com — Cloudflare R2 holds the map tiles, style document, and font glyphs; a Cloudflare Worker proxies every request. Forward geocoding and routing ride the same hostname on a Vultr VPS in later milestones. Every map view, place lookup, or route plan reveals to that infrastructure:

Olocus does not claim the maps backend sees nothing; it claims that what the backend sees is bounded, rate-limit-shaped, and not retained as a per-user history. The honest-metadata invariants on the relay (no IP retention, no per-tenant logs, no surveillance-shape columns) apply identically to the maps backend, enforced by the same CI gate.

What the maps backend cannot see

Single-404 invariant

When a verifier tries to fetch a proof that is missing — never existed, revoked, or expired — the relay returns one response: 404 proof_not_available. It deliberately does not distinguish the three reasons, because telling a verifier which one would leak metadata about your revocation behaviour. The verify bundle relies on this invariant and surfaces the honest absence message to the verifier.

Revocation semantics

Revoking a scoped proof stops future access; it does not undo sharing. Bytes the verifier already fetched cannot be recalled — they may have been rendered in-browser, screenshot, or stored locally. The UX uses honest verbs ("Stop future access", "Expire this proof now") — never "Delete disclosure" or "Take it back". The revocation receipt records when the relay refused further access and how many times the verifier had already viewed.

Where the data physically lives

Three actors with bounded power

Olocus's design is built around three actors, each with limits the product enforces:

The verifier never sees the underlying record. The witness never sees the user's graph. The user never sees an Olocus-issued judgement on what's true — Olocus shows evidence, the verifier judges.

What Olocus does not have

Where the source code is

The full repository is at github.com/svailsa/olocus — Rust workspace + Cloudflare Workers relay + Playwright canonical-journey tests + this site. Architecture lives in docs/ARCHITECTURE.md; the v1 relay spec lives in workers/api/README.md.

Honest commitments only. Where a privacy or security claim depends on a mechanism, the mechanism is named. "Olocus never holds plaintext" is precise. "Olocus does not hold the graph in any form" would be inaccurate the moment a pro-tier user enables encrypted backup. Where the architecture maintains a deliberate exception (e.g., the v1.1+ entitlement service's subscription-id → master-public-key link), we name it as an exception, minimise it, and surface it in the user's transparency view inside the app.