diff --git a/README.md b/README.md
index 52c05680..3149a573 100644
--- a/README.md
+++ b/README.md
@@ -12,8 +12,8 @@ data they can trust.
## For AI Agents
- **Single-file guide**: Read [`SKILL.md`](SKILL.md) for a complete integration reference (install, configure, API surface, troubleshooting)
-- **LLM-friendly docs**: [`llms.txt`](https://docs.memwal.ai/llms.txt) — structured overview following the [llmstxt.org](https://llmstxt.org) standard
-- **Full context**: [`llms-full.txt`](https://docs.memwal.ai/llms-full.txt) — expanded version with inlined page content
+- **LLM-friendly docs**: [`llms.txt`](https://docs.wal.app/walrus-memory/llms.txt) — structured overview following the [llmstxt.org](https://llmstxt.org) standard
+- **Full context**: [`llms-full.txt`](https://docs.wal.app/walrus-memory/llms-full.txt) — expanded version with inlined page content
## Install
@@ -47,7 +47,7 @@ await memwal.restore("demo");
## Documentation
-- Full docs at [docs.memwal.ai](https://docs.memwal.ai)
+- Full docs at [memory.walrus.xyz](https://memory.walrus.xyz)
- Docs source of truth: `docs/`
- Docs site entry points:
- [What is Walrus Memory?](docs/getting-started/what-is-memwal.md)
diff --git a/SKILL.md b/SKILL.md
index f3ca26a4..560eae7f 100644
--- a/SKILL.md
+++ b/SKILL.md
@@ -76,8 +76,8 @@ pnpm add @mysten/sui @mysten/seal @mysten/walrus
You need a **delegate key** (Ed25519 private key) and **account ID** (Walrus Memory account object ID on Sui).
Generate them at:
-- Production: https://memwal.ai or https://memwal.wal.app
-- Staging: https://staging.memwal.ai
+- Production: https://memory.walrus.xyz
+- Staging: https://staging.memory.walrus.xyz
### 2. Initialize the SDK
@@ -87,7 +87,7 @@ import { MemWal } from "@mysten-incubation/memwal";
const memwal = MemWal.create({
key: process.env.MEMWAL_PRIVATE_KEY!,
accountId: process.env.MEMWAL_ACCOUNT_ID!,
- serverUrl: process.env.MEMWAL_SERVER_URL ?? "https://relayer.memwal.ai",
+ serverUrl: process.env.MEMWAL_SERVER_URL ?? "https://relayer.memory.walrus.xyz",
namespace: "my-app",
});
```
@@ -427,15 +427,15 @@ const relevant = memories.results.filter((memory) => memory.distance < 0.7);
|---|---|---|---|---|
| `key` | `string` | Yes | — | Ed25519 delegate private key in hex |
| `accountId` | `string` | Yes | — | Walrus Memory account object ID on Sui |
-| `serverUrl` | `string` | No | `https://relayer.memwal.ai` | Relayer URL |
+| `serverUrl` | `string` | No | `https://relayer.memory.walrus.xyz` | Relayer URL |
| `namespace` | `string` | No | `"default"` | Default namespace for memory isolation |
### Managed Relayer Endpoints
| Network | Relayer URL |
|---|---|
-| **Production** (mainnet) | `https://relayer.memwal.ai` |
-| **Staging** (testnet) | `https://relayer.staging.memwal.ai` |
+| **Production** (mainnet) | `https://relayer.memory.walrus.xyz` |
+| **Staging** (testnet) | `https://relayer-staging.memory.walrus.xyz` |
### Framework and Key Handling
@@ -467,7 +467,7 @@ export function getMemWal() {
return MemWal.create({
key: process.env.MEMWAL_PRIVATE_KEY!,
accountId: process.env.MEMWAL_ACCOUNT_ID!,
- serverUrl: process.env.MEMWAL_SERVER_URL ?? "https://relayer.memwal.ai",
+ serverUrl: process.env.MEMWAL_SERVER_URL ?? "https://relayer.memory.walrus.xyz",
namespace: "my-app",
});
}
@@ -493,7 +493,7 @@ import { withMemWal } from "@mysten-incubation/memwal/ai";
const model = withMemWal(openai("gpt-4o"), {
key: "",
accountId: "",
- serverUrl: "https://relayer.memwal.ai",
+ serverUrl: "https://relayer.memory.walrus.xyz",
namespace: "chat",
maxMemories: 5,
autoSave: true,
@@ -536,7 +536,7 @@ Add to `~/.openclaw/openclaw.json`:
"config": {
"privateKey": "${MEMWAL_PRIVATE_KEY}",
"accountId": "0x...",
- "serverUrl": "https://relayer.memwal.ai"
+ "serverUrl": "https://relayer.memory.walrus.xyz"
}
}
}
@@ -579,8 +579,8 @@ If you're writing user-facing copy, prefer "Walrus Memory". If you're writing an
## Links
-- **Docs**: https://docs.memwal.ai
+- **Docs**: https://memory.walrus.xyz
- **SDK on npm**: https://www.npmjs.com/package/@mysten-incubation/memwal
- **GitHub**: https://github.com/CommandOSSLabs/MemWal
-- **Dashboard**: https://memwal.ai
-- **llms.txt**: https://docs.memwal.ai/llms.txt
+- **Dashboard**: https://memory.walrus.xyz
+- **llms.txt**: https://docs.wal.app/walrus-memory/llms.txt
diff --git a/apps/app/index.html b/apps/app/index.html
index 72b9b0d6..a02c2a3c 100644
--- a/apps/app/index.html
+++ b/apps/app/index.html
@@ -3,27 +3,24 @@
-
-
-
-
+
+ content="Generate delegate keys, manage your account, and view your dashboard. Walrus Memory gives AI agents portable, verifiable memory across apps and sessions." />
-
-
+
+
-
-
+
+
@@ -33,12 +30,12 @@
-
-
+
+
- Walrus Memory
+ Portable AI Agent Memory | Walrus Memory Dashboard
diff --git a/apps/app/public/apple-touch-icon.png b/apps/app/public/apple-touch-icon.png
deleted file mode 100644
index 3dd3749b..00000000
Binary files a/apps/app/public/apple-touch-icon.png and /dev/null differ
diff --git a/apps/app/public/favicon-16x16.png b/apps/app/public/favicon-16x16.png
deleted file mode 100644
index bd9d160e..00000000
Binary files a/apps/app/public/favicon-16x16.png and /dev/null differ
diff --git a/apps/app/public/favicon-32x32.png b/apps/app/public/favicon-32x32.png
deleted file mode 100644
index 44566bcd..00000000
Binary files a/apps/app/public/favicon-32x32.png and /dev/null differ
diff --git a/apps/app/public/favicon.ico b/apps/app/public/favicon.ico
index 60d04bd8..c9b82613 100644
Binary files a/apps/app/public/favicon.ico and b/apps/app/public/favicon.ico differ
diff --git a/apps/app/public/walrus-memory-favicon.svg b/apps/app/public/walrus-memory-favicon.svg
new file mode 100644
index 00000000..bfe79243
--- /dev/null
+++ b/apps/app/public/walrus-memory-favicon.svg
@@ -0,0 +1,10 @@
+
diff --git a/apps/app/public/walrus-trust-conso.svg b/apps/app/public/walrus-trust-conso.svg
new file mode 100644
index 00000000..65b5166b
--- /dev/null
+++ b/apps/app/public/walrus-trust-conso.svg
@@ -0,0 +1,33 @@
+
diff --git a/apps/app/src/index.css b/apps/app/src/index.css
index 26215f89..88eb4455 100644
--- a/apps/app/src/index.css
+++ b/apps/app/src/index.css
@@ -9867,7 +9867,7 @@ h1, h2, h3 {
.wm-signin-tos a {
color: #faf8f5;
- text-decoration: none;
+ text-decoration: underline;
}
.wm-signin-trusted {
diff --git a/apps/app/src/pages/LandingPage.tsx b/apps/app/src/pages/LandingPage.tsx
index 03019658..50c14ff7 100644
--- a/apps/app/src/pages/LandingPage.tsx
+++ b/apps/app/src/pages/LandingPage.tsx
@@ -46,7 +46,7 @@ const signinLogos = [
{ label: 'OpenGradient', src: marketingAsset('/walrus-trust-opengradient.svg'), w: 191 },
{ label: 'TALUS', src: marketingAsset('/walrus-trust-talus.svg'), w: 117 },
{ label: 'TATUM', src: marketingAsset('/walrus-trust-tatum.svg'), w: 128 },
- { label: 'CONSO', src: marketingAsset('/walrus-trust-conso.png'), w: 136 },
+ { label: 'CONSO', src: marketingAsset('/walrus-trust-conso.svg'), w: 136 },
]
export default function LandingPage() {
diff --git a/docs/getting-started/choose-your-path.md b/docs/getting-started/choose-your-path.md
index 380e2959..7bbf18fe 100644
--- a/docs/getting-started/choose-your-path.md
+++ b/docs/getting-started/choose-your-path.md
@@ -27,8 +27,8 @@ Following endpoints are provided as public good by Walrus Foundation.
| Network | Relayer URL |
| --- | --- |
-| **Production** (mainnet) | `https://relayer.memwal.ai` |
-| **Staging** (testnet) | `https://relayer.staging.memwal.ai` |
+| **Production** (mainnet) | `https://relayer.memory.walrus.xyz` |
+| **Staging** (testnet) | `https://relayer-staging.memory.walrus.xyz` |
Go to: [Managed Relayer](/relayer/public-relayer)
diff --git a/docs/getting-started/quick-start.md b/docs/getting-started/quick-start.md
index 140d6457..568adb56 100644
--- a/docs/getting-started/quick-start.md
+++ b/docs/getting-started/quick-start.md
@@ -101,8 +101,7 @@ The fastest way to get Walrus Memory running is through the TypeScript SDK.
| App | URL |
| --- | --- |
- | **Walrus Memory Playground** | [memwal.ai](https://memwal.ai) |
- | **Walrus-hosted Playground** | [memwal.wal.app](https://memwal.wal.app) |
+ | **Walrus Memory Playground** | [memory.walrus.xyz](https://memory.walrus.xyz) |
For the contract-based setup flow, see [Delegate Key Management](/contract/delegate-key-management) and [Walrus Memory smart contract](/contract/overview).
@@ -118,8 +117,8 @@ The fastest way to get Walrus Memory running is through the TypeScript SDK.
| Network | Relayer URL |
| --- | --- |
- | **Production** (mainnet) | `https://relayer.memwal.ai` |
- | **Staging** (testnet) | `https://relayer.staging.memwal.ai` |
+ | **Production** (mainnet) | `https://relayer.memory.walrus.xyz` |
+ | **Staging** (testnet) | `https://relayer-staging.memory.walrus.xyz` |
@@ -133,7 +132,7 @@ The fastest way to get Walrus Memory running is through the TypeScript SDK.
const memwal = MemWal.create({
key: "",
accountId: "",
- serverUrl: "https://relayer.memwal.ai",
+ serverUrl: "https://relayer.memory.walrus.xyz",
namespace: "my-app",
});
```
diff --git a/docs/llms-full.txt b/docs/llms-full.txt
index d0c10bf4..61ad7949 100644
--- a/docs/llms-full.txt
+++ b/docs/llms-full.txt
@@ -33,8 +33,8 @@ pnpm add @mysten/sui @mysten/seal @mysten/walrus
### Prerequisites
- Node.js v18+ or Bun v1+
-- A delegate key and account ID (generate at https://memwal.ai or https://memwal.wal.app)
-- A relayer URL (use `https://relayer.memwal.ai` for production or `https://relayer.staging.memwal.ai` for staging)
+- A delegate key and account ID (generate at https://memory.walrus.xyz)
+- A relayer URL (use `https://relayer.memory.walrus.xyz` for production or `https://relayer-staging.memory.walrus.xyz` for staging)
### First Memory
@@ -44,7 +44,7 @@ import { MemWal } from "@mysten-incubation/memwal";
const memwal = MemWal.create({
key: "",
accountId: "",
- serverUrl: "https://relayer.memwal.ai",
+ serverUrl: "https://relayer.memory.walrus.xyz",
namespace: "demo",
});
@@ -83,7 +83,7 @@ Config:
|---|---|---|---|---|
| `key` | `string` | Yes | — | Ed25519 delegate private key in hex |
| `accountId` | `string` | Yes | — | MemWalAccount object ID on Sui |
-| `serverUrl` | `string` | No | `https://relayer.memwal.ai` | Relayer URL |
+| `serverUrl` | `string` | No | `https://relayer.memory.walrus.xyz` | Relayer URL |
| `namespace` | `string` | No | `"default"` | Default namespace for memory isolation |
### `remember(text, namespace?): Promise`
@@ -216,7 +216,7 @@ import { withMemWal } from "@mysten-incubation/memwal/ai";
const model = withMemWal(openai("gpt-4o"), {
key: "",
accountId: "",
- serverUrl: "https://relayer.memwal.ai",
+ serverUrl: "https://relayer.memory.walrus.xyz",
namespace: "chat",
maxMemories: 5,
autoSave: true,
@@ -293,7 +293,7 @@ Used by `MemWal.create(config)` and `withMemWal(model, options)`.
|---|---|---|
| `key` | yes | Delegate private key in hex |
| `accountId` | yes | MemWalAccount object ID on Sui |
-| `serverUrl` | no | Relayer URL. Default: `https://relayer.memwal.ai` |
+| `serverUrl` | no | Relayer URL. Default: `https://relayer.memory.walrus.xyz` |
| `namespace` | no | Default memory boundary. Default: `"default"` |
### MemWalManualConfig
@@ -318,8 +318,8 @@ Used by `MemWalManual.create(config)`.
| Network | Relayer URL |
|---|---|
-| **Production** (mainnet) | `https://relayer.memwal.ai` |
-| **Staging** (testnet) | `https://relayer.staging.memwal.ai` |
+| **Production** (mainnet) | `https://relayer.memory.walrus.xyz` |
+| **Staging** (testnet) | `https://relayer-staging.memory.walrus.xyz` |
---
@@ -393,7 +393,7 @@ Add to `~/.openclaw/openclaw.json`:
"config": {
"privateKey": "${MEMWAL_PRIVATE_KEY}",
"accountId": "0x...",
- "serverUrl": "https://relayer.memwal.ai"
+ "serverUrl": "https://relayer.memory.walrus.xyz"
}
}
}
@@ -460,7 +460,7 @@ MEMWAL_REGISTRY_ID=0x0da982cefa26864ae834a8a0504b904233d49e20fcc17c373c8bed99c75
## Links
-- **Docs**: https://docs.memwal.ai
+- **Docs**: https://docs.wal.app/walrus-memory/getting-started/what-is-memwal
- **SDK on npm**: https://www.npmjs.com/package/@mysten-incubation/memwal
- **GitHub**: https://github.com/CommandOSSLabs/MemWal
-- **Dashboard**: https://memwal.ai
+- **Dashboard**: https://memory.walrus.xyz
diff --git a/docs/llms.txt b/docs/llms.txt
index e7bcd343..7ccff7db 100644
--- a/docs/llms.txt
+++ b/docs/llms.txt
@@ -12,47 +12,47 @@ Important notes:
## Docs
-- [What is MemWal?](https://docs.memwal.ai/getting-started/what-is-memwal): Overview of features, architecture, and use cases
-- [Quick Start](https://docs.memwal.ai/getting-started/quick-start): Install the SDK, generate credentials, store and recall your first memory
-- [Choose Your Path](https://docs.memwal.ai/getting-started/choose-your-path): Pick the right integration path (MemWal, MemWalManual, or withMemWal AI middleware)
+- [What is MemWal?](https://docs.wal.app/walrus-memory/getting-started/what-is-memwal): Overview of features, architecture, and use cases
+- [Quick Start](https://docs.wal.app/walrus-memory/getting-started/quick-start): Install the SDK, generate credentials, store and recall your first memory
+- [Choose Your Path](https://docs.wal.app/walrus-memory/getting-started/choose-your-path): Pick the right integration path (MemWal, MemWalManual, or withMemWal AI middleware)
## SDK
-- [SDK Quick Start](https://docs.memwal.ai/sdk/quick-start): Install, configure, and store your first memory
-- [MemWal Usage](https://docs.memwal.ai/sdk/usage/memwal): Default relayer-handled client — remember, recall, analyze, restore
-- [MemWalManual Usage](https://docs.memwal.ai/sdk/usage/memwal-manual): Manual client — client-side embedding and SEAL encryption
-- [withMemWal AI Middleware](https://docs.memwal.ai/sdk/usage/with-memwal): Vercel AI SDK integration — automatic memory recall and save
-- [SDK API Reference](https://docs.memwal.ai/sdk/api-reference): Full method signatures, return types, and config fields
+- [SDK Quick Start](https://docs.wal.app/walrus-memory/sdk/quick-start): Install, configure, and store your first memory
+- [MemWal Usage](https://docs.wal.app/walrus-memory/sdk/usage/memwal): Default relayer-handled client — remember, recall, analyze, restore
+- [MemWalManual Usage](https://docs.wal.app/walrus-memory/sdk/usage/memwal-manual): Manual client — client-side embedding and SEAL encryption
+- [withMemWal AI Middleware](https://docs.wal.app/walrus-memory/sdk/usage/with-memwal): Vercel AI SDK integration — automatic memory recall and save
+- [SDK API Reference](https://docs.wal.app/walrus-memory/sdk/api-reference): Full method signatures, return types, and config fields
## Relayer
-- [Relayer Overview](https://docs.memwal.ai/relayer/overview): Architecture, trust boundary, key pool, single-instance design
-- [Public Relayer](https://docs.memwal.ai/relayer/public-relayer): Managed relayer endpoints provided by Walrus Foundation
-- [Self-Hosting](https://docs.memwal.ai/relayer/self-hosting): Run your own relayer with full control over encryption and embedding
-- [Relayer API Reference](https://docs.memwal.ai/relayer/api-reference): HTTP routes, authentication headers, request/response shapes
+- [Relayer Overview](https://docs.wal.app/walrus-memory/relayer/overview): Architecture, trust boundary, key pool, single-instance design
+- [Public Relayer](https://docs.wal.app/walrus-memory/relayer/public-relayer): Managed relayer endpoints provided by Walrus Foundation
+- [Self-Hosting](https://docs.wal.app/walrus-memory/relayer/self-hosting): Run your own relayer with full control over encryption and embedding
+- [Relayer API Reference](https://docs.wal.app/walrus-memory/relayer/api-reference): HTTP routes, authentication headers, request/response shapes
## Smart Contract
-- [Contract Overview](https://docs.memwal.ai/contract/overview): Onchain ownership model and package IDs
-- [Delegate Key Management](https://docs.memwal.ai/contract/delegate-key-management): Add, remove, and rotate delegate keys
-- [Ownership & Permissions](https://docs.memwal.ai/contract/ownership-and-permissions): Access control model
+- [Contract Overview](https://docs.wal.app/walrus-memory/contract/overview): Onchain ownership model and package IDs
+- [Delegate Key Management](https://docs.wal.app/walrus-memory/contract/delegate-key-management): Add, remove, and rotate delegate keys
+- [Ownership & Permissions](https://docs.wal.app/walrus-memory/contract/ownership-and-permissions): Access control model
## OpenClaw Plugin
-- [OpenClaw Overview](https://docs.memwal.ai/openclaw/overview): NemoClaw/OpenClaw memory plugin overview
-- [OpenClaw Quick Start](https://docs.memwal.ai/openclaw/quick-start): Install and configure the plugin
-- [How It Works](https://docs.memwal.ai/openclaw/how-it-works): Architecture, hooks, and message flow
-- [OpenClaw Reference](https://docs.memwal.ai/openclaw/reference): Hooks, tools, CLI, and configuration
+- [OpenClaw Overview](https://docs.wal.app/walrus-memory/openclaw/overview): NemoClaw/OpenClaw memory plugin overview
+- [OpenClaw Quick Start](https://docs.wal.app/walrus-memory/openclaw/quick-start): Install and configure the plugin
+- [How It Works](https://docs.wal.app/walrus-memory/openclaw/how-it-works): Architecture, hooks, and message flow
+- [OpenClaw Reference](https://docs.wal.app/walrus-memory/openclaw/reference): Hooks, tools, CLI, and configuration
## Reference
-- [Configuration](https://docs.memwal.ai/reference/configuration): MemWalConfig, MemWalManualConfig, WithMemWalOptions
-- [Environment Variables](https://docs.memwal.ai/reference/environment-variables): Relayer env vars for self-hosting
+- [Configuration](https://docs.wal.app/walrus-memory/reference/configuration): MemWalConfig, MemWalManualConfig, WithMemWalOptions
+- [Environment Variables](https://docs.wal.app/walrus-memory/reference/environment-variables): Relayer env vars for self-hosting
## Optional
-- [Concepts: Memory Space](https://docs.memwal.ai/fundamentals/concepts/memory-space): Namespace isolation and memory boundaries
-- [Architecture: Core Components](https://docs.memwal.ai/fundamentals/architecture/core-components): System overview and component responsibilities
-- [Data Flow & Security Model](https://docs.memwal.ai/fundamentals/architecture/data-flow-security-model): Trust boundaries and encryption flows
-- [Contributing: Run Repo Locally](https://docs.memwal.ai/contributing/run-repo-locally): Monorepo setup for contributors
-- [Example Apps](https://docs.memwal.ai/examples/example-apps): Playground, Chatbot, Noter, Researcher
+- [Concepts: Memory Space](https://docs.wal.app/walrus-memory/fundamentals/concepts/memory-space): Namespace isolation and memory boundaries
+- [Architecture: Core Components](https://docs.wal.app/walrus-memory/fundamentals/architecture/core-components): System overview and component responsibilities
+- [Data Flow & Security Model](https://docs.wal.app/walrus-memory/fundamentals/architecture/data-flow-security-model): Trust boundaries and encryption flows
+- [Contributing: Run Repo Locally](https://docs.wal.app/walrus-memory/contributing/run-repo-locally): Monorepo setup for contributors
+- [Example Apps](https://docs.wal.app/walrus-memory/examples/example-apps): Playground, Chatbot, Noter, Researcher
diff --git a/docs/mcp/how-it-works.md b/docs/mcp/how-it-works.md
index f9afddf2..a53cab13 100644
--- a/docs/mcp/how-it-works.md
+++ b/docs/mcp/how-it-works.md
@@ -150,7 +150,7 @@ Use HTTP transport when the MCP host can connect directly to a remote MCP URL an
The typical endpoint is:
```text
-https://relayer.memwal.ai/api/mcp
+https://relayer.memory.walrus.xyz/api/mcp
```
with request headers:
diff --git a/docs/mcp/overview.md b/docs/mcp/overview.md
index a98fcfc8..5f680175 100644
--- a/docs/mcp/overview.md
+++ b/docs/mcp/overview.md
@@ -24,7 +24,7 @@ Walrus Memory exposes a **Model Context Protocol (MCP) server** so MCP-aware cli
Memories saved from Cursor surface in Claude Desktop, Codex, and vice versa — not locked to any single client
- `--prod` / `--staging` / `--dev` / `--local` flags switch networks without editing client configs
+ `--prod` / `--staging` / `--local` flags switch networks without editing client configs
@@ -65,7 +65,7 @@ If your MCP host supports **remote Streamable HTTP** servers with custom headers
Browse the `@mysten-incubation/memwal-mcp` package on GitHub
-
+
Manage delegate keys, view storage, and revoke connected clients
diff --git a/docs/mcp/quick-start.md b/docs/mcp/quick-start.md
index 3d0bd980..638b3487 100644
--- a/docs/mcp/quick-start.md
+++ b/docs/mcp/quick-start.md
@@ -8,7 +8,7 @@ This page gets you from zero to a working Walrus Memory MCP server inside Cursor
## Prerequisites
- **Node.js 20** or newer (`node -v` to check)
-- A **Sui wallet** with the Walrus Memory app authorized — Sui Wallet, Suiet, Phantom, or any [Sui-compatible wallet](https://memwal.ai)
+- A **Sui wallet** with the Walrus Memory app authorized — Sui Wallet, Suiet, Phantom, or any [Sui-compatible wallet](https://memory.walrus.xyz)
- An **MCP-aware client**: Cursor, Claude Desktop, Claude Code, Codex, Antigravity, or another MCP host
No npm install needed — `npx` fetches the `@mysten-incubation/memwal-mcp` package on demand.
@@ -33,13 +33,13 @@ For most teams, the best default is:
### Sign in with your Sui wallet
- Run the login flow once from your terminal. Your browser opens to `https://memwal.ai/connect/mcp` — approve the connection in your Sui wallet.
+ Run the login flow once from your terminal. Your browser opens to `https://memory.walrus.xyz/connect/mcp` — approve the connection in your Sui wallet.
```bash
npx -y @mysten-incubation/memwal-mcp login --prod
```
- The package writes credentials to `~/.memwal/credentials.json`. For other environments use `--staging`, `--dev`, or `--local`.
+ The package writes credentials to `~/.memwal/credentials.json`. For other environments use `--staging` or `--local`.
Run this in a real terminal (with a TTY). The login command opens a browser and waits for your wallet approval. If you wrap it in a non-interactive shell, the browser won't pop and the flow exits silently.
@@ -168,7 +168,7 @@ If your MCP client supports remote servers with custom headers, you can connect
Use:
-- URL: `https://relayer.memwal.ai/api/mcp`
+- URL: `https://relayer.memory.walrus.xyz/api/mcp`
- Header: `Authorization: Bearer `
- Header: `x-memwal-account-id: `
@@ -206,7 +206,7 @@ Ask the agent to call `memwal_logout`, or run from your terminal:
npx -y @mysten-incubation/memwal-mcp --logout
```
-This deletes the local credentials file. The on-chain delegate key is **not** revoked — visit the [Walrus Memory dashboard](https://memwal.ai) to remove it from your account if needed.
+This deletes the local credentials file. The on-chain delegate key is **not** revoked — visit the [Walrus Memory dashboard](https://memory.walrus.xyz) to remove it from your account if needed.
## Next steps
diff --git a/docs/mcp/reference.md b/docs/mcp/reference.md
index 40f4131a..987d1291 100644
--- a/docs/mcp/reference.md
+++ b/docs/mcp/reference.md
@@ -69,7 +69,7 @@ Returns a one-time URL valid for **5 minutes**. If it expires, call the tool aga
Remove the saved credentials from this machine (`~/.memwal/credentials.json`). Takes no parameters.
-The on-chain delegate key registration is **not** revoked by `memwal_logout` — only the local file is wiped. Visit the [Walrus Memory dashboard](https://memwal.ai) to remove the delegate key from your account.
+The on-chain delegate key registration is **not** revoked by `memwal_logout` — only the local file is wiped. Visit the [Walrus Memory dashboard](https://memory.walrus.xyz) to remove the delegate key from your account.
@@ -171,9 +171,8 @@ Shortcut flags that set both the relayer and the dashboard URL in one switch:
| Flag | Relayer | Dashboard |
| --- | --- | --- |
-| `--prod` | `https://relayer.memwal.ai` | `https://memwal.ai` |
-| `--dev` | `https://relayer.dev.memwal.ai` | `https://dev.memwal.ai` |
-| `--staging` | `https://relayer.staging.memwal.ai` | `https://staging.memwal.ai` |
+| `--prod` | `https://relayer.memory.walrus.xyz` | `https://memory.walrus.xyz` |
+| `--staging` | `https://relayer-staging.memory.walrus.xyz` | `https://staging.memory.walrus.xyz` |
| `--local` | `http://127.0.0.1:8000` | `http://localhost:5173` |
Explicit `--relayer` and `--web-url` override the preset. You can also pass either flag without a preset to point at a custom URL.
@@ -185,7 +184,7 @@ Walrus Memory supports two MCP connection modes.
| Mode | Best for | Configured via |
| --- | --- | --- |
| **stdio package** | Clients that run local MCP commands (most clients today) | `npx -y @mysten-incubation/memwal-mcp` in the client config |
-| **Streamable HTTP** | Clients that support remote HTTP MCP servers | `url: "https://relayer.memwal.ai/api/mcp"` + auth headers |
+| **Streamable HTTP** | Clients that support remote HTTP MCP servers | `url: "https://relayer.memory.walrus.xyz/api/mcp"` + auth headers |
### Streamable HTTP
@@ -195,7 +194,7 @@ Use HTTP transport when your client supports remote MCP servers natively. Authen
{
"mcpServers": {
"memwal": {
- "url": "https://relayer.memwal.ai/api/mcp",
+ "url": "https://relayer.memory.walrus.xyz/api/mcp",
"headers": {
"Authorization": "Bearer ",
"x-memwal-account-id": ""
@@ -214,7 +213,7 @@ The bearer token is a long-lived credential equivalent to an API key. **Never co
For Claude Code, the equivalent registration command is:
```bash
-claude mcp add --transport http memwal https://relayer.memwal.ai/api/mcp
+claude mcp add --transport http memwal https://relayer.memory.walrus.xyz/api/mcp
```
If your client cannot attach headers from the CLI, edit the generated MCP config file to add them manually.
diff --git a/docs/openclaw/quick-start.md b/docs/openclaw/quick-start.md
index 5a89de58..a7baab66 100644
--- a/docs/openclaw/quick-start.md
+++ b/docs/openclaw/quick-start.md
@@ -33,14 +33,14 @@ You'll also need a **delegate key**, **account ID**, and **relayer URL** from Wa
| **Account ID** | Your MemWalAccount object ID on Sui (`0x...`) |
| **Relayer URL** | The Walrus Memory relayer endpoint that handles search, storage, and encryption |
- The easiest way to get your delegate key and account ID is through the [Walrus Memory dashboard](https://memwal.ai). See the [main Quick Start](/getting-started/quick-start) for detailed setup instructions.
+ The easiest way to get your delegate key and account ID is through the [Walrus Memory dashboard](https://memory.walrus.xyz). See the [main Quick Start](/getting-started/quick-start) for detailed setup instructions.
For the relayer URL, use a managed endpoint or deploy your own:
| Environment | Relayer URL |
|-------------|-------------|
- | **Production** (mainnet) | `https://relayer.memwal.ai` |
- | **Development** (testnet) | `https://relayer.dev.memwal.ai` |
+ | **Production** (mainnet) | `https://relayer.memory.walrus.xyz` |
+ | **Staging** (testnet) | `https://relayer-staging.memory.walrus.xyz` |
These managed relayer endpoints are provided as a public good by Walrus Foundation.
@@ -73,7 +73,7 @@ You'll also need a **delegate key**, **account ID**, and **relayer URL** from Wa
"config": {
"privateKey": "${MEMWAL_PRIVATE_KEY}", // References the env var
"accountId": "0x3247e3da...", // Your account ID from the dashboard
- "serverUrl": "https://relayer.dev.memwal.ai" // Or your self-hosted relayer
+ "serverUrl": "https://relayer-staging.memory.walrus.xyz" // Or your self-hosted relayer
}
}
}
diff --git a/docs/python-sdk/quick-start.md b/docs/python-sdk/quick-start.md
index edf1af85..3200ceb2 100644
--- a/docs/python-sdk/quick-start.md
+++ b/docs/python-sdk/quick-start.md
@@ -46,8 +46,8 @@ Requires Python 3.9+. Core dependencies are `httpx` and `PyNaCl` (Ed25519 signin
Before wiring the SDK into your app:
- Generate a Walrus Memory account ID and delegate private key for your client using the hosted endpoint:
- - Production (mainnet): `https://memwal.ai`
- - Staging (testnet): `https://staging.memwal.ai`
+ - Production (mainnet): `https://memory.walrus.xyz`
+ - Staging (testnet): `https://staging.memory.walrus.xyz`
- Choose a relayer:
- Use the [managed relayer](/relayer/public-relayer), selected with the `env` preset
- Or pass an explicit `server_url` to your own relayer
@@ -68,8 +68,8 @@ Instead of hardcoding a URL, pass `env`. The public docs and Colab example use `
| `env` | Relayer URL |
| --- | --- |
-| `prod` | `https://relayer.memwal.ai` |
-| `staging` | `https://relayer.staging.memwal.ai` |
+| `prod` | `https://relayer.memory.walrus.xyz` |
+| `staging` | `https://relayer-staging.memory.walrus.xyz` |
Precedence: an explicit non-default `server_url` > `env` > the default. An unknown preset raises `ValueError`.
diff --git a/docs/reference/configuration.md b/docs/reference/configuration.md
index e0046e8c..78f5544e 100644
--- a/docs/reference/configuration.md
+++ b/docs/reference/configuration.md
@@ -15,7 +15,7 @@ Used by:
| --- | --- | --- |
| `key` | yes | Delegate private key in hex |
| `accountId` | yes | MemWalAccount object ID on Sui |
-| `serverUrl` | no | Relayer URL. Default: `https://relayer.memwal.ai` |
+| `serverUrl` | no | Relayer URL. Default: `https://relayer.memory.walrus.xyz` |
| `namespace` | no | Default memory boundary. Default: `"default"` |
## `MemWalManualConfig`
diff --git a/docs/relayer/benchmark-ci-setup.md b/docs/relayer/benchmark-ci-setup.md
index 89f09fc2..f3d732c7 100644
--- a/docs/relayer/benchmark-ci-setup.md
+++ b/docs/relayer/benchmark-ci-setup.md
@@ -37,7 +37,7 @@ Railway service: `relayer`
| Target | Railway environment | Public relayer URL | Sui network |
| --- | --- | --- | --- |
| dev | `dev` | `https://relayer.dev.memwal.ai` | `testnet` |
-| staging | `staging` | `https://relayer.staging.memwal.ai` | `testnet` |
+| staging | `staging` | `https://relayer-staging.memory.walrus.xyz` | `testnet` |
## Benchmark Test Accounts
@@ -60,7 +60,7 @@ For each environment, set this Variable:
| Variable | dev | staging |
| --- | --- | --- |
-| `BENCH_SERVER_URL` | `https://relayer.dev.memwal.ai` | `https://relayer.staging.memwal.ai` |
+| `BENCH_SERVER_URL` | `https://relayer.dev.memwal.ai` | `https://relayer-staging.memory.walrus.xyz` |
For each environment, set these Secrets:
@@ -77,7 +77,7 @@ Remember and recall against staging:
cd services/server/scripts
./node_modules/.bin/tsx bench-recall-latency.ts \
- --server-url https://relayer.staging.memwal.ai \
+ --server-url https://relayer-staging.memory.walrus.xyz \
--account-id "$BENCH_ACCOUNT_ID" \
--delegate-key "$BENCH_DELEGATE_KEY" \
--namespace benchmark \
diff --git a/docs/relayer/public-relayer.md b/docs/relayer/public-relayer.md
index 5e8a3a10..852fd092 100644
--- a/docs/relayer/public-relayer.md
+++ b/docs/relayer/public-relayer.md
@@ -8,8 +8,8 @@ A managed relayer is a simpler experience for teams that want to get started wit
| Network | Relayer URL |
|---|---|
-| **Production** (mainnet) | `https://relayer.memwal.ai` |
-| **Staging** (testnet) | `https://relayer.staging.memwal.ai` |
+| **Production** (mainnet) | `https://relayer.memory.walrus.xyz` |
+| **Staging** (testnet) | `https://relayer-staging.memory.walrus.xyz` |
## Minimal Config
@@ -19,7 +19,7 @@ import { MemWal } from "@mysten-incubation/memwal";
const memwal = MemWal.create({
key: "",
accountId: "",
- serverUrl: "https://relayer.memwal.ai",
+ serverUrl: "https://relayer.memory.walrus.xyz",
namespace: "demo",
});
```
diff --git a/docs/sdk/api-reference.md b/docs/sdk/api-reference.md
index 855bb4cb..0e575b67 100644
--- a/docs/sdk/api-reference.md
+++ b/docs/sdk/api-reference.md
@@ -19,7 +19,7 @@ Config:
| --- | --- | --- | --- | --- |
| `key` | `string` | Yes | — | Ed25519 delegate private key in hex |
| `accountId` | `string` | Yes | — | MemWalAccount object ID on Sui |
-| `serverUrl` | `string` | No | `https://relayer.memwal.ai` | Relayer URL |
+| `serverUrl` | `string` | No | `https://relayer.memory.walrus.xyz` | Relayer URL |
| `namespace` | `string` | No | `"default"` | Default namespace for memory isolation |
For the full config surface, see [Configuration](/reference/configuration).
diff --git a/docs/sdk/overview.md b/docs/sdk/overview.md
index 1a6d7173..7c9bbf93 100644
--- a/docs/sdk/overview.md
+++ b/docs/sdk/overview.md
@@ -62,7 +62,7 @@ from memwal import MemWal
memwal = MemWal.create(
key="",
account_id="",
- server_url="https://relayer.memwal.ai",
+ server_url="https://relayer.memory.walrus.xyz",
namespace="demo",
)
```
diff --git a/docs/sdk/quick-start.md b/docs/sdk/quick-start.md
index 2edd3253..f9e2d458 100644
--- a/docs/sdk/quick-start.md
+++ b/docs/sdk/quick-start.md
@@ -71,10 +71,10 @@ Before wiring the SDK into your app:
- These hosted endpoints are provided by Walrus Foundation.
- Generate a Walrus Memory account ID and delegate private key for your client using the hosted endpoint:
- - Production (mainnet): `https://memwal.ai` or `https://memwal.wal.app`
- - Staging (testnet): `https://staging.memwal.ai`
+ - Production (mainnet): `https://memory.walrus.xyz`
+ - Staging (testnet): `https://staging.memory.walrus.xyz`
- Choose a relayer:
- - Use the hosted relayer at `https://relayer.memwal.ai` (mainnet) or `https://relayer.staging.memwal.ai` (testnet)
+ - Use the hosted relayer at `https://relayer.memory.walrus.xyz` (mainnet) or `https://relayer-staging.memory.walrus.xyz` (testnet)
- Or deploy your own relayer with access to a wallet funded with WAL and SUI
`MemWal.create` takes a config object with the following fields:
@@ -83,7 +83,7 @@ Before wiring the SDK into your app:
| --- | --- | --- | --- |
| `key` | `string` | Yes | Ed25519 private key in hex |
| `accountId` | `string` | Yes | MemWalAccount object ID on Sui |
-| `serverUrl` | `string` | No | Relayer URL — use `https://relayer.memwal.ai` (mainnet) or `https://relayer.staging.memwal.ai` (testnet) for the [managed relayer](/relayer/public-relayer) |
+| `serverUrl` | `string` | No | Relayer URL — use `https://relayer.memory.walrus.xyz` (mainnet) or `https://relayer-staging.memory.walrus.xyz` (testnet) for the [managed relayer](/relayer/public-relayer) |
| `namespace` | `string` | No | Default namespace — falls back to `"default"` |
## First Memory
diff --git a/packages/mcp/README.md b/packages/mcp/README.md
index c6fada3e..c042651f 100644
--- a/packages/mcp/README.md
+++ b/packages/mcp/README.md
@@ -118,7 +118,6 @@ function in `src/bridge.ts` if you want to assert it directly.
```sh
memwal-mcp --prod
-memwal-mcp --dev
memwal-mcp --staging
memwal-mcp --local
```
@@ -134,7 +133,7 @@ You can also pass explicit URLs:
"-y",
"@mysten-incubation/memwal-mcp",
"--relayer",
- "https://relayer.dev.memwal.ai"
+ "https://relayer-staging.memory.walrus.xyz"
]
}
}
diff --git a/packages/openclaw-memory-memwal/README.md b/packages/openclaw-memory-memwal/README.md
index fd1400dd..4aaab9d1 100644
--- a/packages/openclaw-memory-memwal/README.md
+++ b/packages/openclaw-memory-memwal/README.md
@@ -5,7 +5,7 @@
- Documentation ·
+ Documentation ·
Quick Start ·
Verify ·
How It Works
@@ -44,14 +44,14 @@ The plugin needs three values:
| **Account ID** | Your Walrus Memory account object ID on Sui (`0x...`) |
| **Relayer URL** | The Walrus Memory relayer endpoint that handles search, storage, and encryption |
-Get your delegate key and account ID from the [Walrus Memory dashboard](https://memwal.ai), or see the [Quick Start guide](https://docs.memwal.ai/getting-started/quick-start) for detailed setup.
+Get your delegate key and account ID from the [Walrus Memory dashboard](https://memory.walrus.xyz), or see the [Quick Start guide](https://docs.wal.app/walrus-memory/getting-started/quick-start) for detailed setup.
-For the relayer, use a managed endpoint or [self-host your own](https://docs.memwal.ai/relayer/self-hosting):
+For the relayer, use a managed endpoint or [self-host your own](https://docs.wal.app/walrus-memory/relayer/self-hosting):
| Environment | Relayer URL |
|-------------|-------------|
-| **Production** (mainnet) | `https://relayer.memwal.ai` |
-| **Development** (testnet) | `https://relayer.dev.memwal.ai` |
+| **Production** (mainnet) | `https://relayer.memory.walrus.xyz` |
+| **Staging** (testnet) | `https://relayer-staging.memory.walrus.xyz` |
## Quick Start
@@ -84,7 +84,7 @@ Add the plugin config to `~/.openclaw/openclaw.json`:
"config": {
"privateKey": "${MEMWAL_PRIVATE_KEY}", // References the env var
"accountId": "0x3247e3da...", // Your account ID from the dashboard
- "serverUrl": "https://relayer.dev.memwal.ai" // Or your self-hosted relayer
+ "serverUrl": "https://relayer-staging.memory.walrus.xyz" // Or your self-hosted relayer
}
}
}
diff --git a/packages/python-sdk-memwal/README.md b/packages/python-sdk-memwal/README.md
index 1ee146ea..ce8defdf 100644
--- a/packages/python-sdk-memwal/README.md
+++ b/packages/python-sdk-memwal/README.md
@@ -1,6 +1,6 @@
# Walrus Memory Python SDK
-Python SDK for [Walrus Memory](https://memwal.ai) — Privacy-first AI memory with Ed25519 signing.
+Python SDK for [Walrus Memory](https://memory.walrus.xyz) — Privacy-first AI memory with Ed25519 signing.
All data processing (encryption, embedding, Walrus storage) happens server-side in a TEE. The SDK signs requests with your Ed25519 delegate key and sends text over HTTPS.
@@ -29,7 +29,7 @@ Set your environment variables first:
```bash
export MEMWAL_PRIVATE_KEY="your-ed25519-delegate-private-key-hex"
export MEMWAL_ACCOUNT_ID="0x-your-walrus-memory-account-id"
-export MEMWAL_SERVER_URL="https://relayer.memwal.ai"
+export MEMWAL_SERVER_URL="https://relayer.memory.walrus.xyz"
```
`MEMWAL_PRIVATE_KEY` is the delegate private key from the Walrus Memory dashboard and
@@ -46,7 +46,7 @@ async def main():
memwal = MemWal.create(
key=os.environ["MEMWAL_PRIVATE_KEY"],
account_id=os.environ["MEMWAL_ACCOUNT_ID"],
- server_url=os.environ.get("MEMWAL_SERVER_URL", "https://relayer.memwal.ai"),
+ server_url=os.environ.get("MEMWAL_SERVER_URL", "https://relayer.memory.walrus.xyz"),
)
# Store a memory and wait until the background job is searchable
@@ -77,7 +77,7 @@ from memwal import MemWalSync, RecallParams
client = MemWalSync.create(
key=os.environ["MEMWAL_PRIVATE_KEY"],
account_id=os.environ["MEMWAL_ACCOUNT_ID"],
- server_url=os.environ.get("MEMWAL_SERVER_URL", "https://relayer.memwal.ai"),
+ server_url=os.environ.get("MEMWAL_SERVER_URL", "https://relayer.memory.walrus.xyz"),
)
result = client.remember_and_wait("I'm allergic to peanuts")
@@ -115,8 +115,8 @@ memwal = MemWal.create(
| `env` | Relayer URL |
|-------|-------------|
-| `prod` | `https://relayer.memwal.ai` |
-| `staging` | `https://relayer.staging.memwal.ai` |
+| `prod` | `https://relayer.memory.walrus.xyz` |
+| `staging` | `https://relayer-staging.memory.walrus.xyz` |
Precedence: an explicit non-default **`server_url` wins over `env`**, which wins
over the default. An unknown preset raises `ValueError`. `env` is also accepted
@@ -137,7 +137,7 @@ smart_llm = with_memwal_langchain(
llm,
key=os.environ["MEMWAL_PRIVATE_KEY"],
account_id=os.environ["MEMWAL_ACCOUNT_ID"],
- server_url=os.environ.get("MEMWAL_SERVER_URL", "https://relayer.memwal.ai"),
+ server_url=os.environ.get("MEMWAL_SERVER_URL", "https://relayer.memory.walrus.xyz"),
max_memories=5,
min_relevance=0.3,
)
@@ -158,7 +158,7 @@ smart_client = with_memwal_openai(
client,
key=os.environ["MEMWAL_PRIVATE_KEY"],
account_id=os.environ["MEMWAL_ACCOUNT_ID"],
- server_url=os.environ.get("MEMWAL_SERVER_URL", "https://relayer.memwal.ai"),
+ server_url=os.environ.get("MEMWAL_SERVER_URL", "https://relayer.memory.walrus.xyz"),
)
# Memories are automatically recalled and injected
diff --git a/packages/python-sdk-memwal/memwal/types.py b/packages/python-sdk-memwal/memwal/types.py
index 90e7515a..06cd9ec2 100644
--- a/packages/python-sdk-memwal/memwal/types.py
+++ b/packages/python-sdk-memwal/memwal/types.py
@@ -20,13 +20,10 @@
#: untouched default apart from an explicitly-passed custom URL.
DEFAULT_SERVER_URL = "http://localhost:8000"
-#: Named relayer environments. Mirrors the TypeScript SDK / MCP package
-#: ``--prod`` / ``--dev`` / ``--staging`` / ``--local`` presets so the same
-#: shorthand works across every Walrus Memory client.
+#: Named relayer environments for the public Walrus Memory deployments.
ENV_PRESETS = {
- "prod": "https://relayer.memwal.ai",
- "dev": "https://relayer.dev.memwal.ai",
- "staging": "https://relayer.staging.memwal.ai",
+ "prod": "https://relayer.memory.walrus.xyz",
+ "staging": "https://relayer-staging.memory.walrus.xyz",
"local": "http://127.0.0.1:8000",
}
@@ -42,8 +39,8 @@ class MemWalConfig:
server_url: Server URL (default: http://localhost:8000). An explicit
non-default value always wins over ``env``.
namespace: Default namespace for memory isolation (default: "default").
- env: Optional relayer preset — one of ``"prod"``, ``"dev"``,
- ``"staging"``, ``"local"``. Resolves ``server_url`` to the matching
+ env: Optional relayer preset — one of ``"prod"``, ``"staging"``,
+ ``"local"``. Resolves ``server_url`` to the matching
hosted relayer when ``server_url`` is left at its default.
Precedence: explicit ``server_url`` > ``env`` > default.
"""
diff --git a/packages/python-sdk-memwal/notebooks/walrus_memory_python_sdk.ipynb b/packages/python-sdk-memwal/notebooks/walrus_memory_python_sdk.ipynb
index fee92f5b..c34f7db6 100644
--- a/packages/python-sdk-memwal/notebooks/walrus_memory_python_sdk.ipynb
+++ b/packages/python-sdk-memwal/notebooks/walrus_memory_python_sdk.ipynb
@@ -30,7 +30,7 @@
"- optional OpenAI and LangChain middleware examples\n",
"- cleanup and troubleshooting\n",
"\n",
- "The notebook defaults to `staging` for test credentials. You can switch to `prod` when you have production credentials.\n"
+ "The notebook defaults to `staging` for test credentials and uses Railway-backed Walrus Memory domains: `https://relayer-staging.memory.walrus.xyz` for staging and `https://relayer.memory.walrus.xyz` for production. You can switch to `prod` when you have production credentials.\n"
]
},
{
@@ -64,6 +64,7 @@
"- `MEMWAL_ACCOUNT_ID`\n",
"- `MEMWAL_PRIVATE_KEY`\n",
"- optional `WALRUS_MEMORY_ENV` with `staging` or `prod`\n",
+ "- optional `WALRUS_MEMORY_SERVER_URL` to override the Railway relayer domain\n",
"- optional `WALRUS_MEMORY_NAMESPACE`\n",
"- optional `RUN_OPTIONAL_SDK_METHODS`, set to `false` to skip slower optional Walrus Memory SDK cells\n",
"- optional `RUN_MIDDLEWARE_DEMO`, set to `true` only if you also want to run the OpenAI/LangChain wrapper cells\n",
@@ -89,6 +90,10 @@
" userdata = None\n",
"\n",
"ALLOWED_ENVS = {\"staging\", \"prod\"}\n",
+ "SERVER_URL_PRESETS = {\n",
+ " \"staging\": \"https://relayer-staging.memory.walrus.xyz\",\n",
+ " \"prod\": \"https://relayer.memory.walrus.xyz\",\n",
+ "}\n",
"DEFAULT_ENV = \"staging\"\n",
"\n",
"\n",
@@ -138,6 +143,11 @@
" raise ValueError(\"WALRUS_MEMORY_ENV must be 'staging' or 'prod' for this notebook.\")\n",
"os.environ[\"WALRUS_MEMORY_ENV\"] = WALRUS_MEMORY_ENV\n",
"\n",
+ "DEFAULT_SERVER_URL = SERVER_URL_PRESETS[WALRUS_MEMORY_ENV]\n",
+ "WALRUS_MEMORY_SERVER_URL = read_setting(\n",
+ " \"WALRUS_MEMORY_SERVER_URL\", DEFAULT_SERVER_URL\n",
+ ").rstrip(\"/\")\n",
+ "\n",
"DEFAULT_NAMESPACE = f\"colab-{WALRUS_MEMORY_ENV}-customer-service-test\"\n",
"WALRUS_MEMORY_NAMESPACE = read_setting(\"WALRUS_MEMORY_NAMESPACE\", DEFAULT_NAMESPACE)\n",
"RUN_OPTIONAL_SDK_METHODS = as_bool(read_setting(\"RUN_OPTIONAL_SDK_METHODS\", \"true\"))\n",
@@ -148,6 +158,7 @@
"print(\"Walrus Memory configuration loaded\")\n",
"print(\"account_id:\", mask(os.environ.get(\"MEMWAL_ACCOUNT_ID\", \"\")))\n",
"print(\"env:\", WALRUS_MEMORY_ENV)\n",
+ "print(\"server_url:\", WALRUS_MEMORY_SERVER_URL)\n",
"print(\"namespace:\", WALRUS_MEMORY_NAMESPACE)\n",
"print(\"optional SDK method cells:\", RUN_OPTIONAL_SDK_METHODS)\n",
"print(\"optional middleware cells:\", RUN_MIDDLEWARE_DEMO)\n",
@@ -187,7 +198,7 @@
" \"key\": os.environ[\"MEMWAL_PRIVATE_KEY\"],\n",
" \"account_id\": os.environ[\"MEMWAL_ACCOUNT_ID\"],\n",
" \"namespace\": WALRUS_MEMORY_NAMESPACE,\n",
- " \"env\": WALRUS_MEMORY_ENV,\n",
+ " \"server_url\": WALRUS_MEMORY_SERVER_URL,\n",
"}\n",
"\n",
"memory = MemWalSync.create(**client_kwargs)\n",
@@ -758,7 +769,7 @@
"source": [
"## Basic Troubleshooting\n",
"\n",
- "- `401` or auth rejected: confirm the delegate private key belongs to `MEMWAL_ACCOUNT_ID`, and that both were created for the selected `staging` or `prod` environment.\n",
+ "- `401` or auth rejected: confirm the delegate private key belongs to `MEMWAL_ACCOUNT_ID`, and that both were created for the selected `staging` or `prod` environment. If you override `WALRUS_MEMORY_SERVER_URL`, make sure it matches the same environment.\n",
"- Invalid environment: this notebook only accepts `staging` and `prod`.\n",
"- Empty recall: wait for the remember job to finish, query the same namespace, and broaden the query or raise `max_distance`.\n",
"- Remember timeout: rerun `wait_for_remember_job(job_id, timeout_ms=...)` with a larger timeout.\n",
diff --git a/packages/python-sdk-memwal/pyproject.toml b/packages/python-sdk-memwal/pyproject.toml
index 061f410b..0eb78ae6 100644
--- a/packages/python-sdk-memwal/pyproject.toml
+++ b/packages/python-sdk-memwal/pyproject.toml
@@ -44,8 +44,8 @@ dev = [
]
[project.urls]
-Homepage = "https://memwal.ai"
-Documentation = "https://docs.memwal.ai"
+Homepage = "https://memory.walrus.xyz"
+Documentation = "https://memory.walrus.xyz"
Repository = "https://github.com/MystenLabs/MemWal"
[tool.hatch.build.targets.wheel]
diff --git a/packages/python-sdk-memwal/run_tests.py b/packages/python-sdk-memwal/run_tests.py
index 099e59f4..329b6d33 100644
--- a/packages/python-sdk-memwal/run_tests.py
+++ b/packages/python-sdk-memwal/run_tests.py
@@ -26,7 +26,7 @@
DIM = "\033[2m"
RESET = "\033[0m"
-SERVER_URL = os.environ.get("MEMWAL_SERVER_URL", "https://relayer.dev.memwal.ai")
+SERVER_URL = os.environ.get("MEMWAL_SERVER_URL", "https://relayer-staging.memory.walrus.xyz")
PRIVATE_KEY = os.environ.get("MEMWAL_PRIVATE_KEY", "")
ACCOUNT_ID = os.environ.get("MEMWAL_ACCOUNT_ID", "")
HAS_KEY = bool(PRIVATE_KEY and ACCOUNT_ID)
diff --git a/packages/python-sdk-memwal/tests/test_env_presets.py b/packages/python-sdk-memwal/tests/test_env_presets.py
index 1a5a1834..6db5542c 100644
--- a/packages/python-sdk-memwal/tests/test_env_presets.py
+++ b/packages/python-sdk-memwal/tests/test_env_presets.py
@@ -1,4 +1,4 @@
-"""Tests for the relayer environment presets (prod/dev/staging/local).
+"""Tests for the relayer environment presets (prod/staging/local).
Pure config resolution — no network. Mirrors the precedence rule documented
in the README: explicit non-default ``server_url`` > ``env`` > default.
@@ -17,9 +17,8 @@
@pytest.mark.parametrize(
"env,expected",
[
- ("prod", "https://relayer.memwal.ai"),
- ("dev", "https://relayer.dev.memwal.ai"),
- ("staging", "https://relayer.staging.memwal.ai"),
+ ("prod", "https://relayer.memory.walrus.xyz"),
+ ("staging", "https://relayer-staging.memory.walrus.xyz"),
("local", "http://127.0.0.1:8000"),
],
)
@@ -51,12 +50,12 @@ def test_unknown_env_raises():
def test_create_threads_env_through_to_client():
client = MemWal.create(key=KEY, account_id=ACCOUNT, env="staging")
- assert client._server_url == "https://relayer.staging.memwal.ai"
+ assert client._server_url == "https://relayer-staging.memory.walrus.xyz"
def test_sync_create_threads_env_through():
- client = MemWalSync.create(key=KEY, account_id=ACCOUNT, env="dev")
- assert client._inner._server_url == "https://relayer.dev.memwal.ai"
+ client = MemWalSync.create(key=KEY, account_id=ACCOUNT, env="prod")
+ assert client._inner._server_url == "https://relayer.memory.walrus.xyz"
def test_explicit_default_url_with_env_still_takes_preset():
@@ -68,4 +67,4 @@ def test_explicit_default_url_with_env_still_takes_preset():
server_url=DEFAULT_SERVER_URL,
env="prod",
)
- assert cfg.server_url == "https://relayer.memwal.ai"
+ assert cfg.server_url == "https://relayer.memory.walrus.xyz"
diff --git a/packages/python-sdk-memwal/tests/test_integration.py b/packages/python-sdk-memwal/tests/test_integration.py
index ffa43471..01ae683a 100644
--- a/packages/python-sdk-memwal/tests/test_integration.py
+++ b/packages/python-sdk-memwal/tests/test_integration.py
@@ -2,7 +2,7 @@
"""
Integration tests for the Walrus Memory Python SDK against a live server.
-Targets MEMWAL_SERVER_URL (default: https://relayer.staging.memwal.ai).
+Targets MEMWAL_SERVER_URL (default: https://relayer-staging.memory.walrus.xyz).
No-auth tests (always run, no env vars needed):
- /health endpoint
@@ -31,7 +31,7 @@
# Run against staging using env vars
export MEMWAL_PRIVATE_KEY=""
export MEMWAL_ACCOUNT_ID="0x-your-walrus-memory-account-id"
- export MEMWAL_SERVER_URL="https://relayer.staging.memwal.ai"
+ export MEMWAL_SERVER_URL="https://relayer-staging.memory.walrus.xyz"
python -m pytest tests/test_integration.py -v
"""
@@ -48,13 +48,13 @@
import pytest
from memwal.client import MemWal, MemWalCompatibilityError, MemWalError, MemWalSync
-from memwal.utils import build_signature_message, bytes_to_hex
+from memwal.utils import build_signature_message
pytestmark = pytest.mark.integration
# ── Config ───────────────────────────────────────────────────────────────────
-SERVER_URL = os.environ.get("MEMWAL_SERVER_URL", "https://relayer.staging.memwal.ai")
+SERVER_URL = os.environ.get("MEMWAL_SERVER_URL", "https://relayer-staging.memory.walrus.xyz")
PRIVATE_KEY_HEX = os.environ.get("MEMWAL_PRIVATE_KEY", "")
ACCOUNT_ID = os.environ.get("MEMWAL_ACCOUNT_ID", "")
diff --git a/packages/sdk/README.md b/packages/sdk/README.md
index 9ef64ca9..bc5dbc44 100644
--- a/packages/sdk/README.md
+++ b/packages/sdk/README.md
@@ -6,7 +6,7 @@ Walrus Memory SDK for storing encrypted AI memories on Walrus and retrieving the
## Documentation
-For full documentation, visit [docs.memwal.ai](https://docs.memwal.ai).
+For full documentation, visit [memory.walrus.xyz](https://memory.walrus.xyz).
## Install
@@ -28,7 +28,7 @@ import { MemWal } from "@mysten-incubation/memwal";
const memwal = MemWal.create({
key: process.env.MEMWAL_PRIVATE_KEY!,
accountId: process.env.MEMWAL_ACCOUNT_ID!,
- serverUrl: process.env.MEMWAL_SERVER_URL ?? "https://relayer.memwal.ai",
+ serverUrl: process.env.MEMWAL_SERVER_URL ?? "https://relayer.memory.walrus.xyz",
namespace: "demo",
});