Hama

Security

What Hama protects, how the encryption works, and where its limits are.

Last updated August 2026

Hama has no accounts and no sign-up. A space is created with one tap and lives at a short link such as hama.top/r/7Kp2mQa. Because there is no identity to attach a space to, everything below rests on two things: the link, and the key.

The three access modes

Every space is in exactly one of three modes. There is no other combination, and no mixed state.

Turning on a password automatically makes a space Private. A public space with a password does not exist anywhere in Hama.

Public spaces are not confidential

Public and open content is not confidential. Public spaces may appear in Hama search, including the words inside their messages and shared text. Private spaces are not searchable and never appear in search results or in any public API response.

What Zero-Knowledge guarantees

For Private spaces, all encryption and decryption happens in your browser. That means:

What Zero-Knowledge does not protect

Encryption solves one problem well and several others not at all. Honestly:

How the key in the link works

In a Private + Open space, the key lives after the # in the address. Browsers treat that fragment as a purely local part of the URL: it is never included in the HTTP request, so it does not reach Hama servers, server logs, or any intermediary. Your browser hands it to the page, and the page uses it to decrypt.

The practical consequence is that a link without the fragment is useless, and a link with it is the whole secret. Treat it like a password: send it over a channel you trust, and do not paste it anywhere public.

Passwords and key derivation

When you set a password, your browser derives a key from it with Argon2id, a memory-hard function chosen specifically to make large-scale guessing slow and expensive. A per-space random salt means work done against one space is worthless against another.

Pick something long. A passphrase of several unrelated words beats a short password with substituted characters, and length matters more than any symbol you add.

There is no recovery

Hama cannot recover a forgotten password. There is no reset email, no security question and no support procedure - the key does not exist anywhere outside your browser. A forgotten password means the content is permanently unreadable, including for you.

Ciphers and keys

Files and voice messages

In private spaces, files and voice messages are encrypted in your browser before upload, and their names are hidden from the server as well. Maximum file size is 49 MB. Voice messages can be up to 10 minutes.

Because the server only ever sees ciphertext, it cannot scan uploads for malware. Downloads are therefore always delivered as attachments rather than opened in the browser, and you should only open files from people you trust.

What Hama never logs

The following are never written to logs, analytics or backups:

Hama does not sell data, shows no advertising, and does not build user profiles. Operational records keep counts and sanitized technical details only.

Links do not leak

Space pages, admin pages and API routes are served with X-Robots-Tag: noindex, nofollow, noarchive, nosnippet and Referrer-Policy: no-referrer. Search engines are told not to index them, and following an outbound link from inside a space does not hand your address to the destination site.

Deletion

Inactive spaces are permanently deleted every day at 00:00 UTC. A space that still has someone in it at that moment survives to the next day's run, so the time between a space emptying and its deletion is not fixed - it can be seconds or up to about 24 hours. The creator can delete a space instantly at any time, which removes everyone and erases all of its content.

What we ask of you

Reporting a security problem

If you find a vulnerability, tell us through the Support page. Your message is encrypted in your browser with the administrator's public key. Support is one-way: there is no reply channel inside Hama, so include any contact details you want us to use.