Security
Security audits and open findings
Which reviews have taken place, what they found, what has been fixed and what is still open.
Independent reviews
Smart contract auditNot yet
No independent firm has reviewed our contracts yet.
Application penetration testNot yet
Not carried out yet.
Internal code reviewAvailable
Completed in October 2026. Results below.
When an independent report is published, it will be linked here in full, including any findings we disagree with.
Internal review, October 2026
The review read the code that handles identity, sessions, messages and private balances, rather than relying on documentation. Findings are described here by their effect on you. Technical detail lives in the repository.
Fixed
| Finding | Effect before the fix |
|---|---|
| Identity taken from request headers | Some routes trusted an address sent by the browser. Every route now reads identity only from the verified session. |
| Shielded balance readable by address | Anyone could query the private balance of any address. The endpoint now answers only for the signed in account. |
| Public route matching too broad | A route whose name began like a public one was treated as public. Matching now respects path boundaries. |
| Cross site requests | State changing requests from other websites were not reliably refused. They now are. |
| Sign in nonce | The nonce could be chosen by the browser. It is now issued and checked by the server. |
| PIN check failing for everyone | A bug made every PIN check fail after the PIN was set. Verification now works as intended. |
| Session token algorithm | One path accepted tokens without fixing the signing algorithm. It is now fixed to HMAC-SHA256. |
Open
| Finding | Effect today | Status |
|---|---|---|
| Readable fallback messages | Messages that fail XMTP delivery are stored readable on our server. | Labelled in the chat. Server side rejection is ready and waits for client side sealing. |
| Community content | Posts and channel messages are stored readable on our server. | Documented. Encryption not started. |
| Attachments | Files are stored as uploaded and can be opened by anyone with the link. | Documented. Encryption not started. |
| Session cookies | Two cookie names carry the same session while older code is migrated. | In progress. |
| Dependencies | Some third party packages have published advisories. | Being upgraded in order of severity. |
Found something that is not on this list? Please tell us privately first. See Report a vulnerability.
