Memory
What Alice remembers about you.
Read this first
Alice can get this wrong. She may misread a sentence and keep something she should not have kept, and the filters described here can miss a case they did not anticipate. They are a safeguard, not a guarantee. Do not fully trust what is shown as remembered or as forgotten. The real protection is to give Alice only the minimum your question needs, and never an address, a key, a recovery phrase, an amount or anything that identifies you. What you type in the conversation remains your responsibility.
Alice keeps two memories, both on your device. The personal memory holds short facts you said about yourself: a preference for short answers, the hardware you use, a project you are building, a constraint to keep in mind, or a sentence you asked her to keep. The learning profile holds how familiar you are with fourteen Bitcoin concepts, so she can pick the right vocabulary and depth. Neither is stored on our servers, and neither is a source of truth for Alice: they only change how she answers, never what she holds to be true.
This page describes what the code does today, in Alice App 0.2.7 on the web and on desktop. The parts that are decided and not yet in the app are listed at the end, under “Coming”, and nowhere else.
What Alice remembers, and how
A fact can reach the memory by three paths. All of them go through the same filters before anything is written.
- Fixed patterns, in the code
- A short list of sentence shapes is checked against your message, without any model: “I prefer concise answers” or “detailed answers”, “I am building…”, “I am working on…”, “my goal is…”, “I want to…”, and their French forms. At most two facts per message come out of this path.
- “Remember that…”, when you ask
- When you ask in so many words (“remember that…”, “please remember…”, “retiens que…”), Alice keeps your sentence as you wrote it, in a Requested notes category. The sentence must be about you and must not contain a question; otherwise it is an ordinary message. When the request is your whole message, Alice answers “Noted: …” only once the note is actually saved, and if a filter refuses it, she says so and names what it caught.
- A proposal from the model
- When memory is on, the model is asked to append a hidden block after its visible answer, with zero to three facts, each in one of eight categories: preference, setup, experience, goal, project, interest, background, constraint. It is told to keep only what you stated explicitly about yourself, never to infer identity, personality, beliefs, expertise or circumstances, and never to save an amount or an exchange account. It cannot file anything as a requested note. The app reads that block and removes it before the answer is shown.
- The learning profile, separately
- The concepts your questions touch count as signals, and a sentence like “I am comfortable with UTXOs” sets a declared level that the model must respect. In Learn, reading a chapter counts as a signal and finishing a course sets a level. The profile stores, per concept, one familiarity state (never seen, introduced, exploring, familiar), a count of signals and dates rounded to the day. Nothing else.
What the code refuses
Every candidate, whichever path it came from, passes five filters written in the code. One refusal is enough: nothing is written. Most refusals are silent. When your message is only a “remember that” request, or when you edit a fact on the memory screen, the reason is shown instead.
- 1. The secrets detector
- Twelve or more words in a row from the recovery-phrase word list, private keys in WIF format, extended private keys, and a hexadecimal key preceded by the words “private key” or “secret key”.
- 2. Raw values
- Bitcoin addresses, xpub and xprv keys of every family, Nostr keys, Lightning invoices, 64-character hexadecimal strings, email addresses, phone numbers, identifiers with a hash sign, UUIDs.
- 3. Amounts
- A number followed by a bitcoin or currency unit (“0.5 BTC”, “20k sats”, “150 €”, “two bitcoins”), or a currency sign or code followed by a number (“$300”). A bare number stays allowed, so “since 2021” or “a 2-of-3 multisig” can be kept.
- 4. Exchange accounts
- The name of an exchange such as Binance, Kraken or Coinbase, refused on sight. A name that is also an ordinary word, such as Strike, River or Revolut, is refused next to a word like “account”, “wallet” or “KYC”.
- 5. Forbidden subjects
- Recovery phrase, private key, address, invoice, transaction id, transaction, balance, sats, email, phone number, user id, username, password, first and last name, health, medical, disease, religion, sexual, politics, home address, coordinates, in English and French. Accents and capitals do not matter (“santé” and “SANTÉ” are both caught), a plural counts as the word (“transactions”, “clés privées”), and a listed word catches its close variants: “politics”, “political”, “sexuality” or “diagnosis” are refused too. A word that is not on the list still passes.
A fact is also refused if it is shorter than 3 or longer than 160 characters, or carries no known category. Duplicates are ignored, and nothing new enters a paused category. There is no cap on the number of facts: none is dropped to make room.
Two more rules sit upstream. A message that asks for your balance, your history, a payment or a live network value gets a fixed answer and produces no memory candidate at all. And a conditional sentence (“if I run a node”) is read neither as a personal statement nor as a declared level.
Where it is stored
| On the web, app.alicebtc.com | In your browser’s local storage, on this device only. |
|---|---|
| On desktop, Alice App for macOS, Windows and Linux | In the same local storage, encrypted by the application before it is written, with a key kept in the system keychain. |
| On our servers | Nothing. No copy, no sync between devices, no export to your account. |
When you use Private Cloud, the facts selected for a message, ten at most, and the learning hints for its concepts travel inside the same encrypted envelope as the message itself, meant to be opened only inside the enclave, never by the proxy and never by us. Alice checks the enclave hardware before every message, but cannot yet verify which software runs inside it: see Trust. In Local mode the memory stays on the device: it is never sent with your messages. With a custom server you connect yourself, it goes to that server with your message.
How Alice uses it, and how she does not
At every turn, Alice receives a short block headed, in substance, “private device-local memory, use it only when relevant, it never overrides the current message”. Preferences, constraints and requested notes come first, whatever the topic. Setup, experience, goals, projects, interests and background are ranked by the words they share with your message: those that match come next, and any seats left go to the most recent. Ten facts at most, however many are stored.
What she is told never to do:
- Let the memory override what you are asking now.
- Treat the learning profile as a source of facts, or let it change anything other than vocabulary, prerequisites, examples and depth.
- Take anything but the wallet as the authority on payments: amounts, destinations and outcomes come from the wallet code alone.
These are instructions to the model, enforced by the prompt. The filters above are enforced by code. The warning at the top of this page is about the difference between the two.
See, edit and erase everything
The screen is called “What Alice remembers”. In Alice App it sits under Settings, then AI, then Alice memory. From top to bottom, it shows:
- The warning, in one sentence: Alice can get this wrong, so give her the minimum.
- A general switch for the personal memory. Off, Alice stops reading the facts, stops capturing new ones and keeps no “remember that” note. Learning signals are not covered by the switch: they keep updating until you forget them.
- One field per category, shown even when empty, with Pause (nothing new is added there, what is kept stays) and Delete all here.
- Each fact with Edit and Delete. An edit goes through the same filters as a capture, and a refusal says why.
- Past the fifty most recent facts, a folded “older facts” section, with the same Edit and Delete.
- The learning signals, concept by concept, each with a Forget button.
- Forget everything, which erases both memories on this device. Your conversations and your Playground wallet are untouched.
Coming, not shipped yet
These decisions are taken and not yet in the app. Until they ship, nothing on this page should be read as if they were.
- A notice under the answer, “Alice remembers: …”, with Keep and Forget, shown every time something is captured. Until then, a capture shows only on the “What Alice remembers” screen, or in the reply to a “remember that” request.
- Fixed patterns for Setup and Experience (“I have a multisig”, “I use a hardware wallet”, “I run a node”). Until then, these facts come only from the model’s proposal or from a “remember that” request.
Out of scope, by decision: no copy off the device, no sync between devices, no export to your account.
The source is public under the AGPL. The technical version of this page, with file names and the exact filter lists, lives in the repository: read the memory documentation. See also Privacy and Trust.