Architecture (audit interview)

Endpoint (keys stay here / HSM)
    │  HPKE content (NPE suite)
    │  routing: dest + subject in the clear
    ▼
Untrusted NATS (cannot read bodies)
    │
    ▼
Verae DataCube chain (append-only hashes)
    │  written through Peergos client
    ▼
Peergos cryptree (encrypted names, sizes, graph)
    │  chunks → CID / hash
    ▼
IPFS  (distributed, hash-verified ciphertext)
  • At rest: Peergos cryptree + IPFS. Hosts with disk/backup see opaque hashed ciphertext, not PHI, if they lack keys.

  • In transit (NATS): HPKE-Base to directory public keys. Broker is honest-but-curious: destinations yes, bodies no.

  • Integrity: cube JSONL chain + dual hash + IPFS CID check on restore (re-fetch blocks, re-verify hashes — not a plaintext tape).

NATS remains an untrusted router. Production E2E is NPE/HPKE. Passthrough means destination in the clear; the body is ciphertext.

Live: https://pfc.georgelambert.org/v1/npe/keys (public keys only). Controls: https://docs.pfc.georgelambert.org/controls.html