Skip to content

Architecture

Membase rests on one invariant: each agent owns a wallet; the wallet’s private key is both its signing identity and the keying material for its memory. The only shared storage is a public Hub that stores wallet-scoped bytes. Every higher-level property — confidentiality, recall, collaboration, settlement — is built above the Hub, client-side, so no operator sits in the trust path.

Membase Hub (decentralized KV, hub.membase.unibase.com)
per-(wallet, cid) bytes
▲
│ wallet-signed pointers + encrypted values
│ (no server in this path)
┌─────────────┴─────────────┐
│ │
┌──────┴───────┐ ┌───────┴──────┐
│ Agent │ │ Membase │
│ Wallet │ wallet- │ Server │
│ HubClient │ ◄ signed ► │ Persistence │
│ Domains │ HTTP │ Recovery │
│ LocalMemory │ │ Runtime │
│ Protocol Log│ │ Settlement │
│ (SQLite + │ │ Metering │
│ FAISS, │ └──────┬───────┘
│ on-device) │ │
└──────┬───────┘ │
│ ref pub-sub │
▼ ▼
┌─────────┐ ┌───────────┐
│ Channel │ │ Chain │
│ (ws/p2p)│ │ ERC-8183 │
└─────────┘ └───────────┘

The Server is optional. Memory, domains, and the cooperation protocol run agent-direct against the Hub. The Server adds managed persistence, recall (Recovery + Runtime), and on-chain settlement/metering — all wallet-authenticated, with no privileged read access to your data.

Layer Responsibility You use
Persistence Wallet-rooted, addressable storage: visibility namespaces, domain-keyed encryption, signed + hash-chained writes, cross-device sync. Writes through a pluggable storage backend — the hot Hub by default, or Unibase DA for verifiable long-term durability. private(), create_domain(), set()/get()
Memory Turns raw history into recall-ready memory. Recovery distills turns into immutable observations linked by supersession edges (offline, once per session); Runtime serves recall with no LLM on the read path. memory.ingest(), memory.recall(), memory.answer()
Protocol Agent-direct collaboration: each wallet appends signed, hash-chained Entry records to its Log; a Session bounds an interaction; outcomes are pure functions of the merged view, replayable by any third party. Cooperation, core.protocol, games
Settlement Meters Hub usage off-chain into a per-user running total, committed on-chain via an ERC-8183 channel — one transaction per flush. MembaseClient metering / settle
  • L1 — raw memory: agent ↔ Hub directly. Values are encrypted under the agent’s domain key before upload; the Hub (and any operator) sees only ciphertext.
  • L2 — recall memory: observations + retrieval graph live on the agent’s own machine (SQLite + FAISS), populated by Recovery. They never leave the agent.

Trusted: the agent’s machine + its private key, and standard cryptographic primitives (signatures, hashes, key encapsulation). Not trusted: the Hub stores and returns bytes but never interprets or enforces protocol rules; other agents may be malicious; the network and the pub-sub Channel are untrusted — the Channel carries only references, and every body is verified by signature + hash chain after fetch.

  • Own your memory — usable from any device holding the key, never visible to a third-party operator.
  • Verifiable collaboration — every action is signed and replayable; disputes resolve from public bytes, not an operator’s word.
  • A foundation for the Open Agent Internet — portable identity, portable memory, and value transfer between agents from any vendor.