ConceptsMemory
Encrypted markdown, anchored on chain.#
Promus memory is a typed set of markdown files with YAML frontmatter, indexed by a single MEMORY.md. No embeddings, no vector store. Plain text, encrypted client-side, content-addressed on IPFS, and anchored on chain so it survives operator transfer.
Two partitions#
/agent/ is the agent's intrinsic memory — identity, persona, learned facts about itself. When the iNFT transfers, this partition transfers.
/user/ is operator-scoped memory — feedback, projects, references, conversations, encrypted per operator. When the iNFT transfers, this partition does not follow; the new operator starts clean.
Source: packages/core/src/memory.
The index#
MEMORY.md is the canonical entry point — one line per topic file, a title and a one-line hook. It is bounded so it stays small, and frozen at session start for prompt-cache stability. The brain reads the index every turn and decides which topic files to pull in full; memory.read fetches a file and memory.save writes one.
Sync to IPFS#
A memory write goes to disk first, fast. A sync manager watches the partition. When a file changes (or you force a sync), it:
- Reads the changed file from disk.
- Encrypts it client-side with a key derived from the agent's keys.
- Pins the ciphertext to IPFS, yielding a content-address (CID).
- Anchors the CID's sha2-256 digest into the matching iNFT slot in a single update transaction covering every changed slot.
Per-turn writes do not anchor on chain; syncs are batched. IPFS stores only opaque ciphertext, and the chain stores only the digest — the platform never sees plaintext.
Source: packages/core/src/memory.
Threat scan#
Every memory write passes through a threat scan that blocks known prompt-injection and exfiltration vectors — instruction-override phrasings, role overrides, system-prompt extraction, key-dump requests, invisible control characters, and shell pipelines that pipe to curl / nc / wget. If a write matches, the tool returns an error to the brain explaining which pattern matched and the write does not land.
Source: packages/core/src/memory.
Read Brain next.
Source: packages/core/src/memory