Patchway
Concepts

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 thread

On 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.

On this page