Anonymized before the model · encrypted under your key · recoverable from 0G · minted to your wallet
📖 Start here → the full product overview on Notion — the complete story: visuals, architecture, PMF research, the privacy model, and the build journey. If you open one link, make it this one. Everything below is a summary.
AI has quietly become where people process their decisions, relationships, and emotions. Yet every AI journal asks you to trust a company with your most private writing — and that trust is a policy, not a mechanism. A court recently forced OpenAI to produce 20M "deleted" ChatGPT logs.
The missing piece isn't demand. It's privacy, trust, and true ownership. That is Knole.
The behaviour Knole productises already exists at scale. This is a validated market, researched end to end — not a hope.
- Therapy & companionship is the #1 generative-AI use case — ~31% of all usage, up from 17% the year before (HBR, 2025); ~1 in 4 Americans would rather talk to an AI than a therapist. The center of consumer AI, not a wellness niche.
- People already hand-build this. "I fed 14 years of journals into Claude — it found a 4-month burnout cycle I never noticed" (2k+ upvotes) · "AI sees the patterns I refuse to accept; it's not sugarcoating." The demand is here; the private, owned version isn't.
- The category is funded, so the bet is de-risked — Rosebud $6M (Bessemer, Tim Ferriss) on ~10k payers · Mindsera 80k users · PIN AI $10M (a16z) on private, user-owned AI. Knole's edge is sharper differentiation and real privacy, not first-mover risk.
- Retention is what the category lives or dies on — AI apps retain 21% vs 30.7% for non-AI (RevenueCat, 2026); Knole's 30-second daily check-in is the on-ramp built to beat that.
Every single feature maps to a demand people already voice. The feature-by-feature demand table on Notion ties each one to real evidence — Rosebud · Stoic · Daylio · Day One · Reddit · a court record · a16z. Nothing here is speculative.
One private memory engine behind ~30 features across 25 routes — the full product, not a demo.
- Daily Reflection — reflects through four lenses (Gentle Mirror · Pattern Finder · Blunt Friend · Decision Coach), grounded in your own history and built to challenge, not flatter. Reflections stream token-by-token, and each one leaves a tamper-evident on-chain receipt.
- The 14-Day Mirror — every two weeks, a private letter from your past self: recurring patterns, contradictions, and avoided decisions, each tied to a dated entry.
- Life Canvas — your whole life on one private page: a mood arc, a theme constellation, your cast of characters, and the journey grid — every panel drawn from your own entries. The artifact only your own data can make (
/canvas) — plus a shareable card of your mood arc + themes, no words or names, made to post (/card). - Ask My Life · Ask Knole · Chat · Private Research — answers drawn from your journal (quoted back by date with receipts), a private general assistant, a day-to-day thinking partner that remembers (anonymized every turn), and private web research (Qwen-Max on 0G).
- The Index — every memory with source quotes, edit/forget controls, append-only history, and a
⬡ 0Gbadge; plus "what the model saw" (the anonymized text) and tamper-evident recall (memory history anchored on-chain). - Structure & momentum — Guided Programs · evidence-quoted Intentions · Therapy-prep session briefs · Correlations and Decision Replay over your own words · Themes · in-the-moment deepening.
- Voice · Image · Capture — voice journaling (Whisper on 0G) · reflective image generation (Z-Image) · Chrome capture from anywhere · ChatGPT/journal import.
- On your phone — a real installable app: Add-to-Home-Screen on iOS, one-tap install on Android, an offline shell, app shortcuts, and web push. Voice-first — open, speak, done.
- Ownership & money — Memory iNFT (a genuine ERC-7857 Agentic ID, minted to your own wallet — yours to carry across wallets or grant a 0G agent scoped access) · client-side wallet encryption · portable memory identity (revocable grants) · proof-of-journaling streaks on-chain · pay-with-0G credits · a signature-verified Stripe subscription · full export and restore-from-chain.
- And more — Future-Self · AI Wrapped · Year Review · On-This-Day · Remembered (a past entry resurfaces to answer your past self) · Mood Timeline · Omission Radar · retention loop (digest + push) · Night theme · Crisis Safety (SB243).
Trust is minimized at every layer:
- Local MiniLM embeddings — the vectors never leave the machine
- Local anonymization before any prompt
- Reflection and live chat inside a 0G TEE — sealed inference, attestation-verified per response
- AES-256-GCM encryption under user-controlled keys
- Encrypted storage on 0G Storage
- Memory roots anchored on 0G Chain
- Deterministic restore from 0G
- ERC-7857 Memory iNFT — owned by the user's own wallet, portable and grantable
Even if the enclave were compromised, the model would still only ever see anonymized text.
| Layer | How Knole uses it |
|---|---|
| 0G Compute | Sealed AI inference inside a TEE |
| 0G Storage | Encrypted journal entries |
| 0G Chain | Integrity roots + memory ownership (iNFT) |
The sealed 0G TEE is the primary inference path, verified by hardware attestation on every response. If the enclave is ever unreachable, Knole falls back to the plain 0G model — honestly marked not sealed, never dressed up as the enclave — so an outage costs the seal, never your privacy (the text is already anonymized before any model) or capability.
Every major claim is verifiable — and here's the on-chain proof, live on the 0G explorer:
The memory token is a genuine ERC-7857 Agentic ID — not an ERC-721 wearing the name. Don't take our word for it; call the deployed contract yourself. Every value below is read from KnoleAgenticID on 0G Aristotle mainnet and is live on the /verify page, re-checked on each load:
On-chain check (contract 0x6A3200…6B813) |
Result |
|---|---|
supportsInterface(0x4b396f04) — ERC-7857 (iNFT) |
true |
supportsInterface(0x35d39512) — ERC-7857 Authorize |
true |
supportsInterface(0xd79f01c7) — ERC-7857 Cloneable |
true |
supportsInterface(0x80ac58cd) — ERC-721 (compatible) |
true |
supportsInterface(0xdeadbeef) — unknown id (control) |
false |
The control id returning false is the point: this is a real interface registry, not a stub that answers true to everything. Mints go to the user, not a central wallet — token #2 is owned by 0x45d6431D…, a user's own embedded wallet, minted gas-free by the server. The encrypted memory snapshot lives on 0G Storage; the token records only its hash.
- Sealed inference is real, not a fallback — reflection and live chat run through the 0G Compute serving broker inside a TEE (TeeML), and every response is gated on
processResponse(), which verifies the enclave attestation before the "sealed" badge is ever shown - 21 automated evaluation suites in CI — retrieval, groundedness, privacy-leak, crypto, isolation
- Restore-from-chain verification with real mainnet roots
- A real-wallet end-to-end run — inbox → Privy OTP → wallet-signed encryption → on-chain mint
- A public Proof Deck documenting every feature with screenshots and commands
Built entirely by a solo developer — every commit public.
TanStack Start · React 19 · Neon Postgres + pgvector · Drizzle · local all-MiniLM embeddings · transformers.js NER · 0G Sealed Inference via the 0G Compute serving broker (TeeML, attestation-verified) → plain 0G model fallback (fully on 0G, no external LLM) · AES-256-GCM + wallet-derived keys · ERC-7857 Agentic ID (KnoleAgenticID) · Privy · 0G Aristotle mainnet via ethers
Run it locally
npm install
cp .env.example .env # fill in the values (comments in the file)
npx drizzle-kit migrate # apply migrations to your Neon database
npm run dev # http://localhost:3000
npm run evals # the 21-suite memory gateYou'll need a Neon Postgres URL (with the vector extension), an LLM key, and — for the on-chain features — a funded 0G mainnet wallet. Enable the TEE with OG_SEALED_INFERENCE=on (inference then runs through the 0G Compute broker; set OG_TEE_PROVIDER to pick the TeeML provider); enable minting by deploying the iNFT (node scripts/deploy-agentic-id.mjs) and setting KNOLE_NFT_ADDRESS_MAINNET.
Scripts & structure
| Command | Purpose |
|---|---|
npm run dev / npm run build |
dev server / production build (client + SSR) |
npm run evals |
memory-engine release gate → eval_runs |
npm run test:e2e |
Playwright — full-product sweep + real-wallet journey |
npm run worker |
overnight Dreaming consolidation |
src/routes file-based routes · src/components/knole app shell · src/server the engine (embed · anonymise · sealed inference via ogCompute.ts · 0G storage · restore · reflect · mirror · ask · iNFT) · src/db Drizzle schema + pgvector · contracts/KnoleAgenticID.sol the ERC-7857 Agentic ID.
Live on 0G Aristotle mainnet — knole.me: local anonymization before the model · encryption under your key · restore-from-chain · Memory iNFT (genuine ERC-7857, minted to your own wallet) · the memory engine · 14-Day Mirror · Life Canvas · a shareable "shape of my month" card · an installable mobile app (iOS + Android PWA) · reflection lenses · Ask My Life · private web research · voice journaling · the Index · reflection receipts · tamper-evident recall · proof-of-journaling · pay-with-0G · portable memory identity · retention loop · Crisis Safety (SB243) · 0G sealed inference — all served fully on 0G.
Before high-volume production: an external security audit and KMS-backed key custody are recommended (the signing-key seam and rotation runbook are in place — see HUMAN.md).
A journal should belong to the person who wrote it. Knole makes that a technical guarantee, not a legal promise.





