Enclave Get started

Security & privacy

Security you can
check yourself.

No upload: a breach of our servers cannot reach your data, because it is never there. No credentials: Enclave cannot move money or read a live balance. No third-party processor. The engine is deterministic — AI drafts its parsers offline at build time; at runtime it is pure arithmetic.

Live demonstration

Watch it stop.

A scripted ledger streams through the reconciliation gate. Six rows tie. The seventh carries a transposed digit — and the gate does exactly what it does in production.

opening £4,120.00 Σ +2,094.10 computed £6,214.10
  • 27 JunPAYROLL JUN−4,310.005,877.90
  • 28 JunFX GBP→EUR TRANSFER−1,200.004,677.90
  • 30 JunCLIENT DEPOSIT+1,536.206,241.10
BLOCKED · stated balance £6,241.10 · computed £6,214.10 · exit 4 · no clean export

The stated balance disagrees with the computed one by £27.00. Two different corrections could fit the evidence, so Enclave stops: a red banner, a non-zero exit, and no export until the source is checked.

Self-audit

This page counts its own requests.

The panel on the right reads this page's own performance log, live, and counts every request the browser has made since you arrived. If an external request ever appeared, the counter would turn red — on our own security page.

resources loaded
origins contacted1 (this one)
external requests0

Your browser is the auditor.

The claims

Five claims you can check.

connect-src 'self'

No transit

The page that reads your statement cannot make an external request. The browser enforces this through its Content-Security-Policy. Open DevTools and watch the network panel stay empty.

retained: 0 bytes

No custody

We cannot leak, sell, or lose what we never receive. There is no server-side copy of your transactions anywhere.

oauth grants: none

No credentials

No open-banking consent, no stored password, no API key to your bank. Enclave cannot move money or read a live balance. The blast radius of any compromise is one document.

same input, same bytes

Deterministic

AI drafts the parsers offline, at build time, where it can be reviewed. At runtime the engine is arithmetic. Every figure is replayable, byte for byte, forever.

exit 4

It stops on bad data

Where the arithmetic cannot prove a figure, Enclave stops and reports exactly what failed, instead of exporting a guess.

The whole run

Four statements, one gate.

enclave — zsh
$ enclave prove ~/statements/*.pdf --treasury --base GBP parse barclays_jun.pdf 41 rows ✓ ties parse hsbc_usd_jun.pdf 129 rows ✓ ties parse ibkr_q2.pdf 77 rows ✓ ties parse kraken_jun.pdf 18 rows ✓ ties gate opening 4,120.00 + Σ 2,094.10 = closing 6,214.10 ✓ match transfers matched: 14 · receipts written: 214 held 1 movement awaiting counter-leg → held.txt exit 0