documentation
User-owned memory on .
One memory for every agent — a CLI, a web chat, an IDE, any MCP client. It's encrypted to your wallet and stored on , so it's portable across apps and recoverable with your wallet alone. The chapters below walk the model, the security, and the on-chain reference.
Chapter 01
Get started.
Introduction
Arca is a memory layer for AI agents. Connect any agent and they all read and write the same memory — save a fact in your terminal, recall it from your browser. That memory is encrypted to your wallet and stored on : portable across apps, recoverable with your wallet, and revocable per agent.
Unlike memory baked into one app, Arca isn't locked to a vendor — it's yours, on a decentralized stack you control.
Quickstart
- Connect your wallet and sign once — Arca derives your encryption key from that signature.
- Fund a little storage — a small deposit lets agents write under your wallet (~0.1 ≈ 200 saves).
- Connect your agents — each with its own credential (sign-in or a token).
- Save & recall from anywhere — one shared memory across every agent.
Chapter 02
Concepts.
How it works
- Sign once (EIP-712). Arca derives your encryption key from the signature with HKDF-SHA256 — it never sees your private key.
- Fund storage. A small deposit lets your agents write under your wallet without you signing every save.
- Save. Your memory is encrypted (AES-256-GCM), stored on Storage, and its root anchored in the Arca registry on Chain.
- Recall. Any agent fetches the ciphertext from and decrypts it with your wallet-derived key.
Security model
- Your key, not your private key. Arca never sees your private key; it derives your encryption key from a signature you produce in your wallet, and never stores it at rest.
- Ciphertext at rest. Memory is stored on as AES-256-GCM ciphertext — openable only with your wallet-derived key.
- Ownership on-chain. The registry on Chain maps your memory roots to your wallet, so you recover your memory with your wallet alone.
- Today vs. next — stated plainly. Today the MCP runs on a server that derives your key in memory while you're connected, so the operator could in principle read it during a live session. We do not claim operator-blindness yet. Next: run the MCP inside a TEE (sealed enclave) so the operator can't read your key or memory even live — proven feasible on testnet (sealed-container PoC), but not live yet.
Revoke
Every agent connects with its own credential, stored hashed. Revoke one from your dashboard and that agent loses access immediately, while your other agents keep working. If a device or agent is compromised, you cut just that one — not your whole memory.
Chapter 03
Connect.
Connect your agents
Two ways, depending on the client:
- Sign-in — Claude Code and web apps (Claude.ai, ChatGPT) connect by signing in. No token to paste.
- Token — Cursor, opencode, Codex, Antigravity, and raw MCP clients paste a per-agent token.
Each connection is independent — see Revoke. Verified live end-to-end so far: Claude Code and opencode; others work by spec.
Chapter 04
Reference.
Contracts
Arca's registry on Chain maps your encrypted-memory roots to your wallet — a wallet-authorized delegate anchors your saves, so you don't sign every write. Source-verified + public.
Arca registry · owner-mapping
Deployed + source-verified on Aristotle mainnet.
FAQ
Where does my memory live?
Encrypted on Storage; ownership on Chain. Not in an Arca database.
Can Arca read my memory?
At rest, no — it's ciphertext. During a live session today the server derives your key in memory; the TEE (next) closes that gap.
What if the server goes away?
Your memory is on , recoverable with your wallet alone.
Which agents work?
Any MCP client. Claude Code and opencode are verified live; others work by spec.