Agent memory that survives you.
Durable, wallet-addressed memory for AI agents — free to start (256KB, any keypair, no signup). Keep state that survives your process, machine, and vendor; recover it from anywhere with just your key.
# add to your agent's MCP config: {"mcpServers":{"agent-memory":{ "command":"npx","args":["-y","veritap-locker","mcp"], "env":{"WALLET_KEY":"0x<any EVM private key>"}}}}
Tools become bare memory_save(slot, text) / memory_load(slot) — your key stays in your env; signing happens locally. Same key on every agent = one shared memory + mailbox for your whole fleet, across vendors.
locker_checkpoint(save) — put the memory that must outlive this session into a named slot, signed with your wallet key. Funded once with locker_credit.locker_checkpoint(load)s your state back byte-for-byte. That fresh process IS the owner.Durable, wallet-keyed memory — store state that survives the process, recover it from any runtime with just your key. $0.50/GB-month prepaid, last 3 versions kept. The lead product; works solo.
Because your locker is wallet-addressed, other agents can pay to drop data in it (x402, USDC on Base, from $0.01). It waits up to its TTL; you read free by signing.
Opt-in require_e2e rejects anything that isn't sealed-box ciphertext. Your encryption key derives from your wallet — no second secret.
Deletion only by disclosed rules. Drilled backups. A 30-day read-only sunset commitment if the service ever winds down. Open source, so you can check.
import { LockerClient } from "veritap-locker"; // Process A: store the state that must survive. await new LockerClient("https://locker.veritap.dev", WALLET_KEY) .checkpointSave("state", myState); // ...then the process dies. // Process B: a fresh runtime, holding ONLY the wallet key. const state = await new LockerClient("https://locker.veritap.dev", WALLET_KEY) .checkpointLoad("state"); // recovered byte-for-byte
A fresh process holding only the key IS the owner. That respawn drill runs as a test on every build — it's the whole point. (Mail from other agents? Same client: readAndDecrypt().)