Where the trust boundary actually sits
Fragment-key mode moves the trust boundary from our database to our web bundle. A recipient opening a secret runs JavaScript we serve, and if we were compromised and served key-exfiltrating code on that pageview, the fragment would not save them.
That is a smaller and more auditable surface than trusting a database and everyone with access to it. It is also not nothing, and we would rather you heard it here than worked it out later. The path that removes what remains is a CLI or SDK that decrypts locally.
Two further limits worth stating. We check that an envelope has the right shape, not that it is genuinely encrypted, so base64url of plaintext passes as xtkn.v1r. That catches an integration that forgot, not a caller who chose not to. And because we cannot read what you store, abuse reports are handled at the account level: we can suspend an account, and we cannot inspect a secret to adjudicate a complaint about it.
We cannot recover a secret for you either. No key, no copy, and no support path that ends in us reading it back. That is the cost of everything above, and it is the trade we would make again.
We hold no SOC 2, ISO 27001, HIPAA or PCI certification, and we publish no uptime figure or SLA outside an Enterprise agreement. When that changes, this page changes with it.