Prerequisites
Node.js 20+
The app is a Next.js 16 monorepo using npm workspaces.
Sui CLI (for on-chain)
Testnet address with a little SUI — used to anchor proofs locally and to build/publish the Move contract.
Carry is mock-first: real OpenAI / Anthropic / Walrus adapters sit behind interfaces, and the system falls back to deterministic mocks when a key is absent — so it runs offline and a demo never hard-fails on a flaky testnet.
1. Clone and install
2. Configure environment
Copy the example env and fill in what you have. With no keys, Carry runs in mock mode; with keys, it runs live.3. Run the app
4. The five-minute tour
1
Teach a fact
Open Chat A (GPT-4o). Use the capture box to store a fact in the
health namespace — e.g. “Allergic to penicillin.” It’s written to Walrus as a real blob.2
Recall across models
Open Chat B (Claude). Ask “Am I allergic to anything?” Agent B — a different provider — recalls the fact and renders an Answer Receipt showing the memory used, that it was authorized, and that the blob still resolves on Walrus.
3
Revoke and watch the gate
Open Access and revoke Agent B’s access to
health. Ask again — the agent truthfully refuses, and the receipt shows health blocked by policy. The gate ran before the model, so the memory was never fetched.4
Anchor and verify
Under any Answer Receipt — in Aria (
/companion) or the Dashboard — click Anchor on Sui. Carry mints a tamper-evident Receipt object (signed server-side, no wallet) and hands back a /verify/<id> link. Open it and watch three independent checks go green against Sui and Walrus.5. Run the tests
Next steps
Architecture
See how the gate, Walrus, and on-chain proof fit together.
Use it from any agent
Wire Carry into Cursor, Claude Desktop, or Claude Code via MCP.