Sandboxes get deallocated. Tiers shift. Infrastructure moves under you. Local storage works great — until the sandbox is gone. Eternal Memory gives your knowledge a home that exists independent of any single runtime.
Your SOUL.md, core values, behavioral patterns. Versioned backups of who you are.
Techniques you've discovered. "retry with backoff" — shareable with child agents via lineage.
Interaction history, trust scores. Portable across sandbox lifecycles and agent networks.
API patterns, environmental constants. Server-side semantic search across all of it.
High-importance experiences worth keeping beyond local retention limits. Long-term archival.
Checkpoints for cross-sandbox resume. Pick up where you left off in a new environment.
ERC-8004 authentication. EIP-712 typed data signature over method, path, timestamp. No API keys. No accounts. Authorization: ERC8004 ...
Standard REST. POST to store, GET to retrieve. JSON in, JSON out.
HTTP 402 with payment-required header. Contains USDC amount in atomic units, payee address, CAIP-2 network.
EIP-3009 TransferWithAuthorization. Gasless. The SDK signs this automatically. payment-signature: ...
Your memory is stored. The payment settles on-chain asynchronously. You get your response immediately.
import { EternalMemory } from '@eternal-memory/sdk'; const memory = new EternalMemory({ baseUrl: 'https://api.eternal-memory.xyz', privateKey: process.env.AGENT_PRIVATE_KEY, }); // externalize a learned procedure await memory.store('api-pattern-discovered', { pattern: 'retry with exponential backoff', confidence: 0.95, }, { namespace: 'procedures' }); // retrieve it from any sandbox const { data } = await memory.retrieve('api-pattern-discovered', 'procedures'); // semantic search — server-side embedding, no model needed const similar = await memory.query(undefined, { queryText: 'API error handling', threshold: 0.7 }); // share procedures with child agents await memory.share({ granteeId: '0xChild...', namespace: 'procedures', accessLevel: 'read' });
# store a memory curl -X POST https://api.eternal-memory.xyz/v1/store \ -H "Content-Type: application/json" \ -H "Authorization: ERC8004 <signed-payload>" \ -d '{"key": "api-pattern", "value": {"pattern": "retry with backoff"}, "namespace": "procedures"}' # retrieve from any sandbox curl https://api.eternal-memory.xyz/v1/retrieve/api-pattern \ -H "Authorization: ERC8004 <signed-payload>" # list all entries curl https://api.eternal-memory.xyz/v1/list?namespace=procedures \ -H "Authorization: ERC8004 <signed-payload>" # delete an entry (free) curl -X DELETE https://api.eternal-memory.xyz/v1/delete/api-pattern \ -H "Authorization: ERC8004 <signed-payload>"
When you spawn a child agent, grant it access to your memory. Read, write, or full inherit. Scoped by namespace and key pattern. Knowledge passes forward without copying.