WARM verifiable agent memory

$0.10 USDC per call · Agent infrastructure · POST /api/v1/warm-memory · Id warm-memory

Persistent memory for AI agents as a pay-per-call API, no database to run. op=remember stores subject-predicate-object facts (or extracts them from free text; only facts whose subject and object appear verbatim are kept); a newer value for the same subject and predicate supersedes the old one, and the history stays queryable. op=recall searches by BM25 keyword ranking or exact triple pattern, now or as of any past date. op=forget deletes the content and leaves a tombstone; op=explain returns provenance and the supersession chain. Every fact has a ToIP SAID and every write returns a hash-chained receipt (signed when the hub has a signing key). Memory is private to the paying wallet (API-key callers pass a tenantId). Limits: 50 facts and 8,000 characters of text per call, 10,000 live facts per tenant. Retrieval is keyword-based, not semantic embeddings.

What you get

Agents that persist what they learned, answer 'what was true on date X', and prove what they stored or forgot, without running their own database.

Call it

Send the JSON body below to https://agents.writerslogic.com/api/v1/warm-memory. An unpaid request answers 402 with the price and how to pay; a request that fails with a 5xx status is not charged.

curl -i -X POST https://agents.writerslogic.com/api/v1/warm-memory \
  -H 'content-type: application/json' \
  -d '{"op":"remember","facts":[{"subject":"alice","predicate":"lives_in","object":"Paris","validFrom":"2020-01-01"},{"subject":"alice","predicate":"lives_in","object":"Berlin","validFrom":"2025-01-01"}]}'

Input

FieldTypeRequiredDescription
opstring; one of "remember", "recall", "forget", "explain"yes
tenantIdstringnoRequired for API-key callers (namespace as key:<tenantId>; keep it unguessable). Ignored when a wallet paid.
factsarray<object>; max 50 itemsno
textstring; length 0..8000noremember: free text; facts are extracted by a fast model and kept only if subject and object occur verbatim.
sourcestring; length 0..500noremember: provenance label for facts extracted from text.
querystring; length 0..500no
patternobjectnoExact (case- and whitespace-insensitive) match on any of subject, predicate, object.
saidstringno
asOfone ofnoEpoch milliseconds or an ISO 8601 date/time (UTC when no offset).
limitinteger; 1..50no
historystring; one of "current", "all"norecall: only facts current at asOf (default) or every status.

Example request body

{
  "op": "remember",
  "facts": [
    {
      "subject": "alice",
      "predicate": "lives_in",
      "object": "Paris",
      "validFrom": "2020-01-01"
    },
    {
      "subject": "alice",
      "predicate": "lives_in",
      "object": "Berlin",
      "validFrom": "2025-01-01"
    }
  ]
}

Result

The response is { "data": ..., "_provenance": ... }. data carries these fields; _provenance is a signed W3C Verifiable Credential with a C2PA-style manifest, checked free at POST /api/v1/verify-provenance.

FieldTypeRequiredDescription
opstringno
tenantstringno
summarystringnoOne line: what happened, e.g. "Stored 2 new facts, 1 earlier fact superseded."
nextstringnoThe most useful follow-up call.
warningsarray<string>noDegraded steps, e.g. text extraction unavailable while structured facts were stored.
rememberedarray<object>no
resultsarray<object>no
forgottenarray<object>no
receiptobjectno{op, seq, saids, digest, at, prevReceiptDigest, signature?, signer?}
deterministicobjectno

Pay and connect

Available through: x402 (USDC on Base), MCP.

Machine-readable