Skip to main content
This guide takes you from zero to a running Carry: teach a fact, recall it across models, watch the gate block a revoked namespace, and verify a proof on-chain.

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.
The on-chain config (package + policy IDs) is read from deployments/testnet.json, so you don’t need to set it manually to use the public verifier.

3. Run the app

Open http://localhost:3000.

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.