Skip to main content
Glama

emem, the verifiable memory protocol for the physical world

Compose a memory_token citation handle

emem_memory_token
Read-onlyIdempotent

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. Give this one string to another agent instead of a new description of the fact. The tool checks that both parts are not empty and do not contain the : separator. Memory algebra: the cite operation (https://emem.dev/docs/model.html).

When to use: Call this when you need one string that cites a place and an attested fact across messages, agents or tools. Use emem_echo_verify before you publish the value. FOR MANY FACTS, USE emem_memory_bundle. This is a measured result. A token is 83 to 84 characters and 51 LLM tokens. The value it cites is 11 characters and 5.4 tokens on average. Thus N tokens use about 9.5 times the context of the N numbers. A bundle is 38 characters for any N up to 256, and it resolves in one round trip. It costs less than tokens from N=1, and less than the plain values from N=5. Use one token to cite ONE fact that you must verify later.

Example arguments: {"cell":"defi.zb493.xoso.zcb6a","fact_cid":"cxjiu7l54ujzrpnekp24n4534yojpue4mprddbvevnqtti3lh5bq"}

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
bandNoOptional band key. When set, the minted citation carries the band's tamper-provenance block (class, deterministic, tamper_evidence, trust_rank) so the receiving agent sees the trust class without a resolve round-trip.
cellYescell64, neither component may contain `:`.
fact_cidYes52-char base32-nopad-lowercase content-id of the fact (full 32-byte blake3).
observed_onNoThe fact's source capture date (YYYY-MM-DD) as `/v1/recall` reports it in `sources[].captured_at`. Supplied together with `band` it additionally mints the self-describing `descriptor_token`. A wrong date forges nothing: resolve binds the date to the signed fact and answers 409 on a mismatch.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
cellYes
docsNo
grammarNoThe token grammar, so the form can be parsed rather than pattern-matched.
fact_cidYes
cell_tokenNoThe address alone, when you mean the place rather than an observation of it.
memory_tokenYesThe citation to paste: emem:fact:<cell64>:<fact_cid>. Copy it verbatim; a hand-assembled token that is one character wrong still reads as a citation and resolves to nothing.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / properties / observed_on
      Added value: +{
      +  "description": "The fact's source capture date (YYYY-MM-DD) as `/v1/recall` reports it in `sources[].captured_at`. Supplied together with `band` it additionally mints the self-describing `descriptor_token`. A wrong date forges nothing: resolve binds the date to the signed fact and answers 409 on a mismatch.",
      +  "type": "string"
      +}
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "cell": {
      +      "type": "string"
      +    },
      +    "cell_token": {
      +      "description": "The address alone, when you mean the place rather than an observation of it.",
      +      "type": "string"
      +    },
      +    "docs": {
      +      "type": "string"
      +    },
      +    "fact_cid": {
      +      "type": "string"
      +    },
      +    "grammar": {
      +      "description": "The token grammar, so the form can be parsed rather than pattern-matched.",
      +      "type": "string"
      +    },
      +    "memory_token": {
      +      "description": "The citation to paste: emem:fact:<cell64>:<fact_cid>. Copy it verbatim; a hand-assembled token that is one character wrong still reads as a citation and resolves to nothing.",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "memory_token",
      +    "cell",
      +    "fact_cid"
      +  ],
      +  "type": "object"
      +}
  2. Changed1 schema field changed
    • changedInput schema / properties / cell / description
      Previous value: -"cell64 — neither component may contain `:`."New value: +"cell64, neither component may contain `:`."
  3. Changed2 schema fields changed
    • addedInput schema / properties / band
      Added value: +{
      +  "description": "Optional band key. When set, the minted citation carries the band's tamper-provenance block (class, deterministic, tamper_evidence, trust_rank) so the receiving agent sees the trust class without a resolve round-trip.",
      +  "type": "string"
      +}
    • changedInput schema / properties / fact_cid / description
      Previous value: -"26-char base32-nopad-lowercase content-id of the fact."New value: +"52-char base32-nopad-lowercase content-id of the fact (full 32-byte blake3)."
  4. Added
  5. Removed
  6. Changed3 schema fields changed
    • addedInput schema / properties / cell / maxLength
      Added value: +23
    • addedInput schema / properties / cell / minLength
      Added value: +19
    • addedInput schema / properties / cell / pattern
      Added value: +"^(?:(?:[bcdfghjklmnpqrstvwxyz][aeiouAEIOU]){2}|z[0-9a-f]{4})(?:\\.(?:(?:[bcdfghjklmnpqrstvwxyz][aeiouAEIOU]){2}|z[0-9a-f]{4})){3}$"
  7. Added

TDQS

Score is being calculated.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.