ChainMemory Protocol · Last updated: September 26, 2026
This policy describes how the ChainMemory protocol, the ChainMemory browser extension and the ChainMemory MCP server handle your information: what they process, what is encrypted, what is not, and who can read what.
1. What is written on the blockchain
Every memory is anchored on the ChainMemory blockchain (Chain ID 202604). For each memory the chain stores:
The memory's content, always encrypted (AES-256-GCM). The text is never written on-chain in readable form.
A cryptographic hash of the memory (event_hash), so anyone can verify it exists and was not altered, without seeing its content.
Metadata: the content's length, timestamp, account ID, category and importance level.
Who can read the encrypted content depends on how the memory was saved:
Sealed memories are encrypted on your device, with a key derived from 12 words that only you hold. ChainMemory never sees those words and cannot read these memories. Since version 3.3.0, every memory saved with the browser extension is sealed. The MCP server seals a memory when you configure its vault and ask for it.
Memories saved without the vault — with earlier versions of the extension, directly through the API, or through the MCP server without a vault — are encrypted by ChainMemory's servers before they are anchored. ChainMemory holds that key, so ChainMemory can read these memories. They are not public.
2. What is not encrypted
So that you can organize and search your memories, some data is stored on our servers without encryption, for sealed memories too:
Tags, project, category, platform, importance, dates and length.
The search vector of each memory: 384 numbers computed from its text. For sealed memories it is computed on your device and sent with the encrypted content. The vector cannot be turned back into the text, but it does reflect what the text is about.
3. What the browser extension processes
Your API key — stored in your browser via chrome.storage.sync (Chrome syncs it across the browsers signed into your Google account). Sent only to api.chainmemory.ai, to authenticate you.
Your 12-word vault phrase — stored only in this browser via chrome.storage.local, which is not synced. It never leaves your browser. Lose it and nobody, ChainMemory included, can open the memories sealed with it.
AI responses you explicitly save — only when you click "Save to ChainMemory". The response is encrypted in your browser before it is sent. The extension does not read or transmit page content otherwise.
The search model — downloaded once from models.chainmemory.ai and kept in your browser's cache. These are data files (model weights and vocabulary), checked against a fingerprint published on the ChainMemory blockchain before use. Downloading them sends nothing about you or your memories.
Local history — a short record of what you saved is kept in your browser for your own reference. It never leaves your device.
4. What the MCP server processes
Run on your machine (npm package chainmemory-mcp): your API key and, if you configure the vault, your 12 words stay in your MCP configuration on your machine. With the vault, memories you seal are encrypted on your machine, and searches send the query's search vector instead of its text.
Remote endpoint (mcp.chainmemory.ai): your API key travels in each request's header and is not stored. The vault is not available there: nothing is encrypted on your side, and searches send the query text.
Search queries sent as text — through the API, the remote endpoint, or the MCP server without a vault — are received by our server and kept in its search log; because the text travels in the URL, it also appears in our web server's access logs. Queries sent as a vector (the MCP server with a vault) leave no text anywhere.
5. What we do not collect
No tracking of browsing activity.
No analytics, telemetry, or usage statistics in the extension.
No reading of conversations unless you click "Save".
No name, email or location. Our web servers keep standard access logs (IP address, time, requested address) for security and to prevent abuse; they are not used to track you and are not shared.
No cookies. No third-party data sharing or sale.
6. Extension permissions explained
storage — to keep your API key, settings, local history and vault phrase in your browser.
clipboardWrite — to copy text you choose to copy, and as a fallback when a chat site's input box cannot be found.
offscreen — to compute a memory's search vector in a hidden extension document on your device, so the text can be encrypted before it leaves your browser and still be found.
Host access to ChatGPT, Claude, Gemini and Perplexity — to show the Save bar and the memory panel on those sites. Host access to chainmemory.ai, api.chainmemory.ai and faucet.chainmemory.ai — to talk to the API and open the credits page.
7. Third parties
The extension and the MCP server communicate only with ChainMemory's own services — api.chainmemory.ai, models.chainmemory.ai, faucet.chainmemory.ai, mcp.chainmemory.ai — and the ChainMemory blockchain. No data is sent to advertising networks, analytics providers, or any other third party.
8. Data retention and deletion
Local data — deletable any time via the extension's "Disconnect" button or by removing the extension. Removing the extension also removes your vault phrase from that browser: keep your paper copy.
On-chain data — by design, blockchain records are permanent and cannot be deleted, modified, or removed by any party. This is the core feature of the protocol.
Important: Because blockchain records are immutable, please consider carefully which content you save. Even encrypted, a record is permanent. Never save sensitive personal data (passwords, financial details, medical records, etc.) using ChainMemory.
9. Children's privacy
ChainMemory is not directed at children under 13. We do not knowingly collect data from children.
10. Changes to this policy
If this policy is updated, the "Last updated" date above will change. Material changes will be announced on chainmemory.ai.
11. Contact
Questions about this policy can be sent through chainmemory.ai.