Package Exports
- engramjs
Readme
engramjs
TypeScript SDK for agent memory that is persistent, budget-aware, and optionally verifiable on-chain.
What it provides
- CID-based memory lifecycle:
store,retrieve,renew,prune - Deterministic policy engine (
priority-> replication/ttl/encrypt) - Budget guardrails (
maxSpendUSDFC, renewal thresholds, safety margin) - Multi-agent delegation (
delegate,verifyDelegation) - Recovery via restore/index pointer flows
- Optional ERC-8004 attestation receipts
Install
npm install engramjs @engram-sdk/providers5-minute local start (no chain keys)
import { EngramSDK } from 'engramjs'
import { createProvider } from '@engram-sdk/providers'
const sdk = new EngramSDK({
storageProvider: await createProvider('mock'),
maxSpendUSDFC: 5
})
const receipt = await sdk.store({ note: 'hello engram' }, { priority: 'standard' })
const data = await sdk.retrieve(receipt.cid)
console.log(receipt.cid, data)Live provider setup
import { EngramSDK } from 'engramjs'
import { createProvider } from '@engram-sdk/providers'
const sdk = new EngramSDK({
storageProvider: await createProvider('synapse'),
operatorPrivateKey: process.env.OPERATOR_PRIVATE_KEY,
vincentApiKey: process.env.VINCENT_SECRET_API_KEY,
network: 'calibration', // or 'mainnet'
attestOnChain: true,
maxSpendUSDFC: 10
})Core methods
sdk.store(data, options?)sdk.retrieve(cid, options?)sdk.renew(cid, options?)sdk.prune(cid)delegate(sdk, cid, recipientDID, options?)verifyDelegation(sdk, tokenCid, callerDID)
Priority defaults
| Priority | Replication | TTL | Encrypt |
|---|---|---|---|
critical |
5 | 365 days | true |
standard |
3 | 90 days | false |
temporary |
1 | 7 days | false |
ephemeral |
1 | 1 day | false |
Docs and repo
- Docs: https://docs.engramsdk.dev/
- Repository: https://github.com/aryza0x/engram-sdk