Docs/Getting Started
Testnet · v0.1

Getting Started

Connect your Base wallet, derive your encryption key, and write your first sovereign memory in minutes.

Prerequisites

  • A Base-compatible wallet — Coinbase Wallet or MetaMask
  • Testnet ETH on Base Sepolia for any on-chain receipts (optional for basic vault use)
  • A modern browser with Web Crypto API support (all current browsers)

Step-by-step

01
Connect your wallet
Navigate to /vault and click Connect Wallet in the top-right. MNEMOS uses wagmi and supports Coinbase Wallet, MetaMask, and any injected EIP-1193 provider.
NOTE
Connecting your wallet does not create a transaction or cost gas. It simply establishes your identity for key derivation.
02
Derive your encryption key
After connecting, MNEMOS prompts you to sign a fixed message. This signature is used to derive your AES-256-GCM encryption key entirely inside your browser — no network calls, no third-party dependency.
text
Signing message (fixed, never changes):
"MNEMOS_ENCRYPTION_KEY_v1

Signing this message derives your personal encryption key.
It does not create a transaction or cost any gas."

Key derivation:
  signature = wallet.signMessage(above)
  keyMaterial = SHA-256(signature bytes)
  cryptoKey = WebCrypto.importKey("raw", keyMaterial, "AES-GCM", 256)
The derived key is cached in memory for your session. It is never stored anywhere — not in localStorage, not on our servers. Refreshing the page requires signing again.
03
Write your first memory
Click + Add Memory in the vault. Every memory is encrypted client-side before leaving your browser:
text
Encryption (per memory):
  iv = crypto.getRandomValues(12 bytes)
  ciphertext = AES-256-GCM.encrypt(key, iv, plaintext)
  stored = base64url(iv) + "." + base64url(ciphertext)

Only the encrypted blob reaches the server.
The server stores opaque ciphertext — never plaintext.
04
Read your memories back
Memories listed in your vault show an AI-generated title (stored unencrypted for display). Click any memory to decrypt it — decryption runs locally using your cached key:
text
Decryption (on click):
  [iv_b64, ct_b64] = stored.split(".")
  iv = fromBase64url(iv_b64)
  ct = fromBase64url(ct_b64)
  plaintext = AES-256-GCM.decrypt(key, iv, ct)

Memory categories

Each memory belongs to one of six categories, matching the six MNEMOS product modules:

context
MODULE_01
General second-brain notes and context
relationship
MODULE_02
People, interactions, and social context
goal
MODULE_03
Objectives, milestones, and progress
decision
MODULE_04
Choices made, rationale, and outcomes
health
MODULE_05
Physical and mental wellbeing logs
api
MODULE_06
Externally ingested via API gateway

Vault modules

The vault sidebar gives you access to all six modules. Each module has its own write modal and view optimised for that memory type:

  • Context — freeform notes, the core second brain
  • Relationships — people graph with interaction history
  • Goals — kanban-style goal tracker with milestones
  • Decisions — decision timeline with outcome tracking
  • Health — health journal with SVG chart
  • API Gateway — ingest key management, bookmarklet, MCP bridge

Next steps