---
title: "Security | Memento"
description: "What Memento encrypts on your device, what our servers can read, how keys, sessions and shared links work, and what happens if you forget your password."
url: https://mementosite.me/security
---

[Back to Home](https://mementosite.me/)

# Security

How Memento protects what you store, in plain language. This page describes the code as it runs today, including what isn't encrypted.

1.  Your device

    Your browser encrypts content with libsodium before anything is uploaded.

2.  In transit

    Ciphertext and metadata travel to us over HTTPS.

3.  Memento servers

    Store ciphertext they can't decrypt, plus the metadata listed below.

## Encrypted on your device

These are encrypted in your browser before upload. Our servers only hold the ciphertext.

-   Note content, including text extracted from images
-   The values of your vault fields, such as passwords and other secrets
-   AI prompt text
-   The contents of attached files
-   The content of notes you share by link

## What our servers can read

Some information is stored unencrypted so Memento can sign you in, sync, sort and organize your data:

-   Your account email, your password as an Argon2id hash, and your account's public key
-   Your devices' names, types, public keys and approval status; passkey public keys; and two-factor and sign-in provider settings if you use them
-   Note titles (stored unencrypted for listing and sorting), tags, folder names and structure, links between notes, and timestamps
-   Vault item names, types and field labels
-   Prompt titles, descriptions, categories and tags
-   Attachment file names, types and sizes
-   Saved links: URL, title, description and preview image. Our server fetches link previews for you.
-   Notes created by email-to-notes or saved from the browser extension (beta), which are stored unencrypted
-   Activity logs, including IP address, browser user agent and the titles of notes you change

## Keys and algorithms

-   Content is encrypted with XChaCha20-Poly1305 (libsodium), with a fresh random 24-byte nonce every time.
-   Each item has its own random 32-byte key. That key is wrapped with your account key using XSalsa20-Poly1305 (libsodium secretbox).
-   Your account key is 32 random bytes generated on your first device. It is not derived from your password.
-   On each device, the key is kept in the browser's IndexedDB, wrapped by a non-extractable WebCrypto AES-GCM key.
-   A new device generates its own X25519 key pair. A device you already use seals the account key to it (libsodium crypto\_box\_seal). Our server only stores public keys and sealed keys, and both screens show a matching device code before you approve.
-   Your password is sent over HTTPS when you sign in and stored only as an Argon2id hash (libsodium crypto\_pwhash\_str with moderate limits: 3 passes, 256 MiB of memory). It isn't used to derive your encryption keys.

## If you forget your password

-   Reset it from the sign-in page. We email you a 6-digit code that expires after 15 minutes.
-   Your encryption key isn't derived from your password, so a reset doesn't touch your encrypted content. Devices you've already set up keep decrypting as before.
-   A new device, or a browser where you cleared site data, must be approved from a device that still holds your key, in Settings → Device Access.
-   If you lose every device that holds your key, we can't recover your encrypted content. Our servers never hold that key in a form we can use.

## Sessions and sign-in

-   Signing in issues a 15-minute access token and a 30-day refresh token. The refresh token is replaced every time it's used.
-   You can sign out one device in Settings, or every device at once from your Profile.
-   Memento locks after 15 minutes of inactivity by default. You can pick 5, 15, 30 or 60 minutes, a custom time, or never, and unlock with a passkey.
-   Sign-in is limited to 5 attempts per 15 minutes from one network address, account creation to 20 per hour, and verification or reset emails to one per minute.
-   We email you when a new device signs in to your account, with its name, type and IP address, and we notify your old address if your account email changes.

## Sharing a note

-   Your browser generates a random 32-byte key, re-encrypts the note with it and puts the key after the # in the share link. Browsers don't send that part of an address to servers, so we store only the re-encrypted copy.
-   Links can expire after 1 hour, 24 hours, 7 days (the default) or 30 days, or never. An optional password is stored only as a bcrypt hash.
-   Anyone with the complete link, and the password if you set one, can read the shared note.

## Link previews

When you save a link, our server fetches the page to build its preview. It resolves the address first and refuses private, loopback, link-local and cloud-metadata addresses, gives up after 10 seconds and reads at most 5 MB.

## Activity log

Security-relevant events go into an activity log you can review in the app. Each entry is hashed with SHA-256, chained to the previous entry's hash and signed with HMAC-SHA256, so changes to past entries can be detected.

## Transport and browser protections

-   All traffic uses HTTPS. Our API sends Strict-Transport-Security for 2 years, with includeSubDomains and preload.
-   The website can't be framed by other sites (X-Frame-Options: DENY), disables MIME sniffing, and turns off camera and geolocation access. Microphone access is limited to Memento itself, for voice notes, and your browser asks before it's used.
-   API responses carry a restrictive Content-Security-Policy, and JSON request bodies are capped at 100 KB on most endpoints.

## Audits

Memento hasn't had a third-party security audit yet. If you find a security issue, please email [info@mementosite.me](mailto:info@mementosite.me).

![](/logo.png)Memento

Your thoughts, encrypted and organized. The workspace that puts your privacy first.

Public beta

Hyderabad, India
[info@mementosite.me](mailto:info@mementosite.me)

## Product

-   [Features](https://mementosite.me/features)
-   [Security](https://mementosite.me/security)
-   [Pricing](https://mementosite.me/pricing)

## Company

-   [About](https://mementosite.me/about)
-   [Contact](mailto:info@mementosite.me)

## Legal

-   [Privacy Policy](https://mementosite.me/privacy)
-   [Terms of Service](https://mementosite.me/terms)

© 2026 Memento
