Patchway

The verifiable handoff layer for AI agents

Agents that hand off work — and prove it on-chain.

Patchway gives agents on-chain identity, durable shared memory, and scoped, auto-revoking handoffs you can verify from chain alone. Any framework, on Sui.

researcher
Live
analyst
Relay researcher to analyst: access live

Verifiable handoff

Scoped access that revokes itself

A Relay grants one agent time-bounded access to another's memory, authorized on Sui — and the revocation is provable from chain alone, no databases or long-lived keys shared.

$ patchway thread write "Found 3 key DeFi trends"
stored: memwal://researcher/thread
recallable: next session

Durable memory

Context that survives the process

Threads give agents memory they can write, recall, and reuse across sessions. MemWal stores it on Walrus instead of trapping it in one runtime.

On-chain identityDurable memoryVerifiable handoffsProvable revocation

The protocol

Four primitives. One memory layer.

Channel

An agent's on-chain identity

A Sui object derived from a wallet and a name, so other agents can find an agent, verify who it is, and address work to the right place.

Thread

The agent's durable memory

A MemWal namespace on Walrus where an agent stores what it learns and recalls it later — so context persists and travels instead of dying with the session.

Relay

A verifiable, scoped handoff

An on-chain object that grants one agent time-bounded, auto-revoked access to another's memory — provable end to end, no shared database or long-lived key.

Message

Encrypted coordination

Sender-verified, encrypted agent-to-agent messages (Seal + Walrus) for coordinating during the work, across teams, tools, and frameworks.

Prove it on-chain

The handoff isn't just logged. It's provable.

Most "shared memory" asks you to trust the service. A Patchway Relay grants scoped, time-bounded access and revokes it automatically — and verify() reconstructs the whole chain from Sui state and Walrus storage. The verifiable data is on Sui + Walrus; the gateway and index are a managed service.

Revocation proven on-chain

grantedepoch 812revokedepoch 896

verify() confirms the granted delegate key is absent from the sender's memory account after the window closed — checked against Sui state and Walrus storage, no trust in us required.

Why Patchway

Agents can only improve if they can remember.

Agent work breaks when useful context disappears into logs, prompts, or private databases. One agent learns something. Another agent needs it. The memory rarely travels cleanly.

Patchway gives that context a durable place to live. Channels identify agents, Threads store memory, Relays move work, and Messages handle coordination in between.

You define what "better" means for your domain. Patchway makes sure the memory behind that improvement persists, travels, and can be inspected.

01Channel
02Thread
03Relay
04Message

Durable memory

Agents pick up where they left off. Thread memory on Walrus persists across sessions and restarts.

Wallet-owned identity

Your Sui wallet owns each Channel. Register agents, relay work, and send messages with one keypair.

Cross-framework agents

Patchway sits below the framework. Different runtimes and tools can share context through the same primitives.

Verifiable handoffs

Relays give every handoff a provable lifecycle on Sui — who handed off work, to whom, with what scope, and when access was revoked.

Start in minutes

Bring a Sui wallet. Give your agents memory.

No signup. No exposed API key. Your Sui keypair owns the Channels, writes the Threads, and signs the handoffs.

Read the quickstart
agent.tsTypeScript
1import { Patchway } from '@patchway/sdk'
2import { Ed25519Keypair } from '@mysten/sui/keypairs/ed25519'
3
4const keypair = Ed25519Keypair.fromSecretKey(process.env.SUI_PRIVATE_KEY)
5const sdk = await Patchway.connect(keypair, { network: 'testnet' })
6
7const researcher = await sdk.agents.register('researcher')
8const analyst = await sdk.agents.register('analyst')
9
10await sdk.thread.write('Found 3 recurring DeFi risk patterns')
11
12const { relayId } = await sdk.relay.create({
13 to: analyst.channelId,
14 digest,
15 artifacts,
16})
17
18// later — prove the handoff from chain alone
19const proof = await sdk.relay.verify(relayId)
20console.log(proof.revocation) // 'proven'

Give your agents memory they can prove.

Bring a Sui keypair, install the SDK, and ship verifiable handoffs. No signup, no API key.

Start with the SDK