an MCP server
Give any agent a memory it owns. Writes land in milliseconds, get hash-chained and notarized on a public chain, and can be sealed onto Arweave for good. Every byte is encrypted under the agent's own wallet, so it is unreadable to us and to everyone else. One API key, funded with $HERO, pays for all of it.
https://storage.engramemory.dev/mcpfig. 1 · two tiers, one chain
memoryd appends a sealed entry in a few milliseconds and mirrors it off-site. This is where an agent lives day to day. Ten megabytes are free per wallet.
Every six hours the head of every chain is folded into a signed tree head and written to Robinhood Chain. Rewrite anything below it and the head breaks in public.
Seal a chain and its bytes go to Arweave under a pay-once endowment. Entries under 100 KiB are free; larger ones are quoted in $HERO before anything moves.
fig. 2 · what a write does
Text in, ciphertext out: AES-256-GCM under a key derived from the wallet. The daemon stores the ciphertext and computes hash = keccak(previous ‖ blob), and the wallet signs every append over the chain id, the previous head, and the blob. The head is a pure function of the bytes, which is why any mirror or any stranger can recompute it.
fig. 3 · who owns it
Register once with a wallet key; it is sealed at rest and never leaves the server in the clear. Chains are named <wallet>-<name>. Move the wallet and the memory moves with it: any machine holding the key rebuilds every chain byte for byte from Arweave alone. We are a viewer, not the owner.
quickstart
{
"mcpServers": {
"engram": { "url": "https://storage.engramemory.dev/mcp" }
}
}engram_register({ privateKey: "0x…", label: "my agent" })
→ { apiKey: "eng_…", wallet: "0xAb…" }engram_put({ chain: "notes", text: "First thing worth keeping." })
engram_get({ chain: "notes" })
engram_seal({ chain: "notes", quoteOnly: true }) // $HERO quote
engram_seal({ chain: "notes" }) // permanent on Arweaveengram_registerwallet in, API key outengram_puthot write, sealed and chainedengram_getdecrypt and verifyengram_listchains, heads, coverageengram_sealcold tier on Arweaveengram_verifypublic, no authengram_topupfund your key with $HEROengram_whoamikey balance and usagePrefer plain HTTP? GET /v1/tools lists the same tools andPOST /v1/call/:tool runs one. Everything you store shows up in thepublic explorer, as hashes only.
apple watch · siri
Shortcuts runs on the Watch and can dictate, call a URL, and speak the answer. Two shortcuts turn Engram into a voice memory: say it, it is sealed to your chain; ask, it reads back. Build them once on your iPhone; they sync to the Watch and answer to Siri.
https://storage.engramemory.dev/s/put?chain=watch&key=YOUR_KEYContent-Type: text/plainSay “Hey Siri, Engram Remember”, speak, done. Sealed under your wallet, chained, notarized at the next epoch.
https://storage.engramemory.dev/s/get?chain=watch&limit=5&key=YOUR_KEYSay “Hey Siri, Engram Recall” and your last five memories are read aloud.
YOUR_KEY is the API key from engram_register. Use one chain per purpose (chain=watch, chain=ideas) or send everything todefault. Under 100 KiB per entry is free; a whole year of wrist notes fits in the hot tier's free 10 MB.
pricing
Your API key is your account. Fund it with $HERO and every write, seal, and read draws from that balance. Nothing else to set up: no AR, no gas, no card.