Skip to main content

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

FindingEffect before the fix
Identity taken from request headersSome routes trusted an address sent by the browser. Every route now reads identity only from the verified session.
Shielded balance readable by addressAnyone could query the private balance of any address. The endpoint now answers only for the signed in account.
Public route matching too broadA route whose name began like a public one was treated as public. Matching now respects path boundaries.
Cross site requestsState changing requests from other websites were not reliably refused. They now are.
Sign in nonceThe nonce could be chosen by the browser. It is now issued and checked by the server.
PIN check failing for everyoneA bug made every PIN check fail after the PIN was set. Verification now works as intended.
Session token algorithmOne path accepted tokens without fixing the signing algorithm. It is now fixed to HMAC-SHA256.

Open

FindingEffect todayStatus
Readable fallback messagesMessages 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 contentPosts and channel messages are stored readable on our server.Documented. Encryption not started.
AttachmentsFiles are stored as uploaded and can be opened by anyone with the link.Documented. Encryption not started.
Session cookiesTwo cookie names carry the same session while older code is migrated.In progress.
DependenciesSome 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.