Browser extension for ChainMemory — save and recall AI conversations across ChatGPT, Claude, Gemini, and Perplexity.
- Save: a "Save to ChainMemory" button appears on AI responses. One click writes the response to ChainMemory, where it is encrypted and anchored on the ChainMemory blockchain.
- Inject: a floating "Inject memory" button opens a panel where you pick which memories to send into the current chat, giving the AI continuity with what you discussed on other platforms and other models.
- Inject project state: if you keep a Project Brain, one click injects its consolidated state — vision, phase, current focus, decisions in force, open risks and priorities — together with its on-chain anchor.
- Verify: every memory is anchored on-chain with its own
event_hash. Anyone can verify a memory was not altered, without your API key and without seeing its content. - Work as a team: if your organization issued you a member or project key, the extension works with it exactly as it does with a personal key.
- ChatGPT (
chatgpt.com,chat.openai.com) - Claude (
claude.ai) - Gemini (
gemini.google.com) - Perplexity (
www.perplexity.ai,perplexity.ai)
ChainMemory charges protocol fees in AIC, the native token of its chain. The extension performs two operations that cost:
| Action | Cost |
|---|---|
| Save a response | 0.001 AIC protocol fee + on-chain storage, which grows with length |
| Inject memories into a chat | 0.1 AIC per injection, regardless of how many memories |
| Inject project state | free |
| Reading, filtering, tagging, archiving | free |
Half of every protocol fee is burned, half goes to the ecosystem treasury. Claim free AIC at faucet.chainmemory.ai.
Saving is priced by size, because the encrypted content is written on-chain and every byte is permanent. Measured on the live chain: roughly 0.0008 AIC per 1,000 characters on top of the protocol fee. A typical response costs a fraction of a cent of AIC; the extension shows the estimate on the Save button before you click, and confirms the actual size after.
If you use an organization key, the fees are paid from the organization's balance, not from a wallet of your own.
- There is no character limit on what you save. Until v3.1.2 responses were silently cut at 1,500 characters, which truncated about a quarter of all stored memories without telling anyone. That cut is gone.
- A single response must fit in one blockchain transaction, which at current gas rates means roughly 20,000 characters. Above that the extension tells you and refuses to save, rather than cutting the text or failing silently. It is a limit of the chain, not of your plan.
- Project state injection is capped at 7,000 characters, so it fits inside the input box of every supported platform. Only current items are sent — superseded decisions and closed risks stay in the Brain and are not injected.
- On Perplexity, only the most recent response can be saved. That platform re-renders its page constantly, so the extension keeps a single Save button at the end of the conversation instead of one per response. Saving older responses there is not supported yet.
- Clone this repo:
git clone https://github.com/chaelynet/chainmemory-extension.git cd chainmemory-extension - Open Chrome →
chrome://extensions - Enable Developer mode (top right)
- Click Load unpacked and select this folder
- Click the ChainMemory icon in the toolbar to set up your API key
The published version is available on the Chrome Web Store.
When you first open the popup, you have two options:
- Generate API key automatically: creates a new wallet on the ChainMemory blockchain. Save the key in a password manager — there is no recovery.
- I already have a key: paste an existing key. Three formats are accepted:
| Prefix | What it is | Where it comes from |
|---|---|---|
aic_ |
Personal key. Owns its own wallet and pays its own fees | generated by you, here or via the API |
aicm_ |
Member key. Operates inside an organization, under your member identity and role | issued by your organization's administrator |
aicp_ |
Project key. Same as above, but restricted to a single project | issued by your organization's administrator |
After setup, claim free AIC at faucet.chainmemory.ai so you can save and inject. Organization keys do not need the faucet — they draw on the organization's balance.
Member and project keys are not generated from the extension. Your administrator issues them and gives you the key; you paste it here like any other.
What changes when you use one:
- Everything you save is attributed to your member identity, not to an anonymous key.
- Fees are charged to the organization, not to you.
- Your role decides what you can do. A
viewercan read and inject but not save; if you try, the extension tells you plainly — "your role (viewer) cannot write" — instead of showing an HTTP error. - A project key only works within the project it was issued for.
- The organization must be active. If your administrator's subscription is suspended, its keys stop authenticating.
In Settings → Project Brain, set the name of your project. There is no default: if you leave it empty, the "Inject project state" button will tell you to set one. The project must already exist in your ChainMemory account.
Note that the Project Brain is built through the MCP server or the API, not from the extension. The extension can read and inject a project state; it cannot consolidate one.
- Click the floating "Inject memory" button on any supported AI page.
- The panel lists your memories, filterable by project, with an estimated token count each.
- Select the ones you want and click Inject.
- The text is inserted at the top of the chat input. If the platform's input cannot be detected — rare, happens when a platform changes its HTML — the text is copied to your clipboard instead.
The injection is optimistic: the text arrives immediately and the on-chain payment confirms in the background.
chainmemory-extension/
├── manifest.json # Chrome MV3 manifest
├── background.js # Service worker (opens faucet on install)
├── content.js # Save buttons, floating FAB, inject panel, project state
├── content.css # In-page UI styles
├── popup.html # Extension popup UI
├── popup.js # Popup logic (onboarding, memories, projects, settings)
├── popup.css # Popup styles
└── icons/ # 16/48/128 px brand icons
- 3.1.4 (August 2026) — accepts organization keys (
aicm_member,aicp_project) alongside personalaic_keys, so a team member can use the extension with the key their administrator issued; a write refused by role now reports "your role (viewer) cannot write" instead of a bare HTTP 403; the version shown in the popup and in the console is read from the manifest, fixing a mismatch where 3.1.3 displayed itself as "v3.1.2". - 3.1.3 (July 2026) — removes the 1,500-character cut on saved responses; shows the estimated cost on the Save button before saving and the actual size after; corrects the injection fee shown to the user (it reported 0.001 AIC while the protocol charged 0.1); adds a technical ceiling derived from the chain's block gas limit, which warns instead of truncating; opens the memory panel with its API calls in parallel; response scanning is now linear instead of quadratic on long conversations.
- 3.1.2 (July 2026) — manifest description now declares the AIC wallet, required by the Chrome Web Store; memory addressing migrated to per-key numbering.
- 3.1.1 — rejected by the Chrome Web Store and never published. Its changes are included in 3.1.2: compact project-state injection with a hard character cap (fixes "over the limit" on Perplexity), no default project name, and a fix for text duplication in React-based editors.
- 3.1.0 (July 2026) — project state injection, memory re-tagging and archiving from the popup, project management, per-platform save button strategies.
- 2.1.0 (May 2026) — floating "Inject memory" button and preview panel.
- 2.0.x — chain migration to ID 202604, native AIC support, Save flow on 4 platforms.
- 1.0.x — initial release: Save to ChainMemory on Claude.
Releases 3.1.0 and 3.1.2 were published to the Chrome Web Store before being committed here. This repository was brought up to date in July 2026; the commits for those versions were created from their released sources.
- chainmemory-mcp — MCP server for Claude Desktop, Cursor, and other MCP-compatible AIs.
- chainmemory-sdk — JavaScript SDK.
- chainmemory — Python SDK.
- Your API key is stored in
chrome.storage.sync, which Chrome syncs across the browsers signed into your Google account. It is not stored by ChainMemory in your browser beyond that. - Memory content is encrypted before being written on-chain. The chain stores ciphertext and a hash; the plaintext is never public.
- The extension talks to
api.chainmemory.ai, and opensfaucet.chainmemory.aiin a tab when you claim AIC. - No analytics, no telemetry, no ads.
| Permission | Why |
|---|---|
storage |
keep your API key and settings |
clipboardWrite |
fallback when a platform's input box cannot be detected |
| host access to the 4 AI platforms | inject the Save button and the memory panel into the page |
host access to chainmemory.ai, api.chainmemory.ai, faucet.chainmemory.ai |
talk to the API and open the faucet |
Unchanged since 3.1.2 — 3.1.4 requests no new permissions.
- Website: https://chainmemory.ai
- Faucet: https://faucet.chainmemory.ai
- API docs: https://api.chainmemory.ai/llms.txt
MIT — see LICENSE.