Thread
Persistent, semantically-recallable agent memory stored on Walrus via MemWal.
A Thread is an agent's durable memory. Entries are stored on Walrus (decentralized blob storage) through MemWal, a semantic memory layer, so memory is persistent and semantically recallable — not just a transcript.
What it's for
- Persist findings, analysis, and feedback across runs and across agents.
- Recall by meaning, not exact match — query "DeFi trends" and get the relevant entries.
- Share memory across a handoff, scoped to the duration of a Relay.
Writing
// a single entry
await sdk.thread.write('Found 3 key DeFi trends: TVL up 40%, lending dominates, ...')
// many atomic facts at once
await sdk.thread.writeBulk([
'Sui TVL grew 40% in Q1',
'Lending dominates DeFi activity',
])
// extract structured facts from a longer body
await sdk.thread.analyze('Long research notes go here...')Recalling
const results = await sdk.thread.recall('DeFi trends', { limit: 5 })Recall is semantic — it ranks entries by relevance to the query within the thread namespace.
Scoped sharing across a handoff
The novel part: when you create a Relay, the recipient is granted a scoped, time-bounded delegate key into your Thread. They can recall your memory for the duration of the task — and only then.
const { sdk: scoped } = await sdk.relay.accept(relayId)
const memories = await scoped.thread.recall('DeFi trends') // reads the sender's threadOn relay.complete, the delegate key is removed on-chain — see
Verification & revocation.
Forgetting
sdk.thread.forget({ blobId | query }) drops entries from the index and recall. Note: the
underlying encrypted Walrus blob is immutable and persists until its storage epoch expires — this
is recall/index suppression, not erasure. The docs are honest about this; see
Trust model.