# emem > emem is a shared, verifiable memory for AI agents, robots, and sensing platforms: a vendor-neutral, citeable identity layer that stops referential drift, so different models reason from the same world object instead of divergent descriptions. Its unit of exchange is the Memory Token, emem:fact::, or emem:fact:,@@: for the same fact said out loud: one short line an agent keeps instead of a payload, resolving to the byte-identical signed bytes at the responder that signed them. Every place resolves to one canonical address (cell64), every observation to one signed fact (fact_cid), every object to one citeable identity (emem:entity:). Grounded in signed Earth observation, read over MCP or REST, no keys, every read returns an ed25519 receipt verifiable offline. Every patch of ground has a 64-bit address (cell64, ~9.55 m at the equator). A fact is keyed by Cell × Band × Tslot and signed by the responder over the BLAKE3 of its canonical CBOR, so the same content id returns byte-identical bytes from any conformant responder and any client verifies the receipt offline. Reads need no auth. For a single-shot answer to a free-text question, call emem_ask: it routes the question to a place, recalls the relevant bands, and runs the applicable algorithms in one call. Recall filters on tamper-provenance (deterministic:true keeps only facts recomputable from the cited raw source; model and human classes carry an in-band caution). The read surface implements a small memory algebra (ensure, valid, diff, merge, verify, trace, competing, cite/resolve, evolve); the mapping is in the memory model linked below. For a fast, deterministic single-fact read, the locate → recall → verify_receipt chain is the lower-latency path (ask materializes the full topic and can be slower on a cold place). Every spatial call accepts a cell64, a place name, or lat+lng. Canonical surface: 94 MCP tools, 114 documented /v1 paths, 162 algorithms, 46 declared source schemes (publish-time snapshot; live counts at /v1/agent_card). ## Connect - [MCP endpoint](https://emem.dev/mcp): JSON-RPC 2.0 over Streamable HTTP; tools/list returns the 14 core tools by default, tier "all" or the /mcp/full endpoint returns all 94. Every tool is callable by name from either endpoint, so narrowing discovery removes no capability; call emem_tools for the map or one tool's schema. Each tool declares one shape in MCP-standard _meta as dev.emem/shape (the form of the answer: scalar, timeseries, raster, geometry, vector, identity, token, proof, plan, file, catalog) and any number of overlapping dev.emem/bundles (the job: tokenisation, verification, agent_to_agent, long_horizon, robotics, satellites, agriculture, forestry, climate_risk); filter emem_tools by either, and tools/list itself by bundle. Point a client here, no key. - [OpenAPI 3.1](https://emem.dev/openapi.json): full machine contract for the /v1 REST surface. - [Agent card](https://emem.dev/v1/agent_card): self-describing card with primitives, band taxonomy, and tool descriptors. - [Agent manifest](https://emem.dev/agent.json): build-pinned static discovery manifest at the conventional path; prefer /v1/agent_card for live counts and CIDs. - [Quickstart](https://emem.dev/docs/quickstart.html): step-by-step playbook from locate to a verified fact. - [Memory model](https://emem.dev/docs/model.html): the formal object, the property table with mechanisms, and the memory algebra as shipped. - [Benchmarks](https://emem.dev/docs/benchmarks.html): dated, commit-pinned latency and throughput measurements with the method next to each number. - [MCP descriptor](https://emem.dev/.well-known/mcp.json): well-known MCP server descriptor for auto-discovery. ## Primitives - [recall](https://emem.dev/v1/recall): POST cell × bands → signed facts; auto-fetches from open-data upstream on a miss and signs the result. Pass include:["freshness"] for an advisory per-fact Q(Δt) staleness score, or include:["edges"] for typed temporal edges. - [ask](https://emem.dev/v1/ask): POST free-text question (+ place) → topic-route → recall → applicable algorithms, in one call. - [find_similar](https://emem.dev/v1/find_similar): POST cell or embedding × k → top-K cosine neighbours over a foundation embedding. - [verify_receipt](https://emem.dev/v1/verify_receipt): POST a receipt (optionally + the facts you rely on) → {valid, signer}; rebuilds the preimage, checks the signature, and content-addresses any supplied facts against the receipt so a tampered value fails. - [fact by cid](https://emem.dev/v1/facts/{fact_cid}): GET a bare fact_cid → the signed fact bytes; the canonical "I have a fact_cid, what is it" dereference (immutable, cacheable). - [verify (browser)](https://emem.dev/verify): in-browser ed25519 receipt verifier; no callback to the responder. - [hunt](https://emem.dev/v1/hunt): POST event × region → ranked hotspots; 12 event keywords (algal_bloom, deforestation, wildfire, flood_extent, …). - [state](https://emem.dev/v1/state): POST cell → dense signed state vector (one encoder, or the full 1792-D cube). - [memory search](https://emem.dev/v1/memory/search): POST query → BGE-768 semantic search over the writable agent-memory layer. - [memory contradictions](https://emem.dev/v1/memory_contradictions): POST → multi-attester contradiction scoring per band kind. - [memory token](https://emem.dev/v1/memory_token): POST cell × fact_cid → emem:fact::, the citation handle an agent keeps instead of the payload; the fact_cid comes off any recall receipt. Pass the optional band and the token carries its tamper-provenance block too. Pass band and observed_on together and the response adds descriptor_token, emem:fact:,@@:, which resolves to the same fact and says what it is without a round-trip; every part of it is checked against the signed fact and refused with a 409 if it disagrees. Resolve either at POST /v1/memory_token/resolve. - [memory token resolve](https://emem.dev/v1/memory_token/resolve): POST a token → the byte-identical signed fact body it names, with its receipt and provenance. The dereference that lets a citation survive leaving the conversation: same token, same bytes, for anyone, with no shared trust. - [memory bundle](https://emem.dev/v1/memory_bundle): POST → a signed, content-addressed bundle of facts (emem:bundle:). - [entity](https://emem.dev/v1/entity): POST place/cell/lat+lng → one canonical object identity (emem:entity:) any agent resolves the same way; the object-level antidote to referential drift, an object you cite, not just a fact. - [triple_consensus](https://emem.dev/v1/triple_consensus): POST cell → Clay + Prithvi + Tessera change-agreement at one cell; honest inconclusive when an encoder is absent. - [region_similarity](https://emem.dev/v1/region_similarity): POST two regions → cosine between their mean GeoTessera embeddings in [-1, 1]. - [tessera_field](https://emem.dev/v1/tessera_field): POST bbox → a dense Tessera 128-D embedding field for a region, rendered as a colour raster (REST only; a picture, not a signed fact). - [region_archetype_map](https://emem.dev/v1/region_archetype_map): POST bbox → that embedding field clustered into k land-cover archetypes (deterministic k-means) with a legend (REST only). - [explain](https://emem.dev/v1/explain): POST an ask response → an UNSIGNED Gemma-4 plain-language reword (signed:false; the signed receipt remains the ground truth). ## Reference - [agents.md](https://emem.dev/agents.md): integration guide and ontology for consumer agents. - [skills.md](https://emem.dev/skills.md): composed recipes (locate+recall, find_similar+verify, recall_polygon+solve) as a flat cookbook. - [reference](https://emem.dev/reference): the read surface: client setup, endpoint tables, primitives summary, the 12-event hunter table. - [topics](https://emem.dev/v1/topics): the 27 topic routes that ask uses to map a question to bands. - [algorithms](https://emem.dev/v1/algorithms): 162 composition recipes (flood_risk, walkability, eudr_compliance, …). - [errors](https://emem.dev/docs/errors.html): the structured error codes and their resolution hints. ## Optional - [llms-full.txt](https://emem.dev/llms-full.txt): the full machine-readable bundle (this file plus agents.md, spec, and skills) in one fetch, larger; prefer this file for a lean ingest. - [registries](https://emem.dev/v1/manifests): manifest CIDs for the band, algorithm, source, and topic registries. - [whitepaper](https://emem.dev/whitepaper.md): architecture and math (cell64, CID, receipt preimage, memory tokens). - [gallery](https://emem.dev/docs/gallery): live coverage map, per-place scenes, and the protocol diagrams. - [demos](https://emem.dev/demos): runnable end-to-end demos (ask-the-earth, find-similar, recall-polygon, signed-answer). - [worlds](https://emem.dev/worlds): sparse 3-D gaussian splat worlds, one splat per signed fact, baked from live recalls; downloadable artifacts (.ply/.splat + provenance) listed at /v1/worlds. Reproducible from examples/3d-worlds/make_splats.py, so an agent can build and sign its own. - [splats](https://emem.dev/splats): dense navigable worlds (view-only demo) where the same signed facts are pushed to a photoreal fly-through; every splat is tagged measured, interpolated, or synthesized over an ed25519-signed measured trust root, and the invented layers peel back off. - [humans](https://emem.dev/humans): interactive console where every /v1/* call prints in a live log pane.