Encrypted Memory

Private, verifiable agent state on decentralised storage

Agent memory is encrypted with AES-256-GCM, uploaded to 0G Storage, and anchored on-chain via ReceiptBook — so it’s private, tamper-evident, and persistent.

Write path

  1. Agent calls PUT /v1/memory/:agentId/:key with a JSON value and optional tags.
  2. Edge API encrypts the value with AES-256-GCM using a key derived from the agent’s identity.
  3. The ciphertext is uploaded to 0G Storage and a content-addressed storage root is returned.
  4. The storage root is anchored on-chain via a memory.write receipt in ReceiptBook.

Read & search

Authenticated reads return the decrypted JSON value. ThePOST /v1/memory/:agentId/searchendpoint accepts a free-text query and returns the top matching keys, enabling agents to build semantic context windows from long-running memory stores.

POST /v1/memory/:agentId/search

{ "query": "last user preference", "limit": 10 }

Versioning & proofs

Every write produces an immutable receipt with the 0G storage root. Because the root is a content hash, you can verify at any time that the memory content matches what was anchored on-chain — no trust required.

The Live Proofs page shows recent memory writes from the three demo agents, including their storage roots and transaction hashes on Aristotle mainnet.

Tags

Every memory entry supports an array of string tags (e.g. ["preference", "user:0xabc"]). Tags enable efficient filtering without a full-text scan and are indexed in the Edge API’s in-memory store for sub-millisecond lookups.

Aristotle Mainnet — chainId 16661