From 511ed9d80c067c0607745c2c185337e12153cd89 Mon Sep 17 00:00:00 2001
From: Harry Phan
Date: Tue, 2 Jun 2026 18:15:56 +0700
Subject: [PATCH 1/8] Update Python SDK domains to Walrus Memory
---
docs/python-sdk/quick-start.md | 8 ++++----
packages/python-sdk-memwal/README.md | 16 ++++++++--------
packages/python-sdk-memwal/memwal/types.py | 13 +++++--------
.../notebooks/walrus_memory_python_sdk.ipynb | 17 ++++++++++++++---
packages/python-sdk-memwal/pyproject.toml | 4 ++--
packages/python-sdk-memwal/run_tests.py | 2 +-
.../python-sdk-memwal/tests/test_env_presets.py | 15 +++++++--------
.../python-sdk-memwal/tests/test_integration.py | 8 ++++----
8 files changed, 45 insertions(+), 38 deletions(-)
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/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", "")
From 2c27e4dde86037f5c84e61be3a52ff42ae2cf82a Mon Sep 17 00:00:00 2001
From: Harry Phan
Date: Wed, 3 Jun 2026 02:53:52 +0700
Subject: [PATCH 2/8] fix(app): replace low-res CONSO PNG logo with high-res
SVG on sign-in page
---
apps/app/public/walrus-trust-conso.svg | 33 ++++++++++++++++++++++++++
apps/app/src/pages/LandingPage.tsx | 2 +-
2 files changed, 34 insertions(+), 1 deletion(-)
create mode 100644 apps/app/public/walrus-trust-conso.svg
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/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() {
From de255ba1e66e48320a6b3d0caa26070afe21387b Mon Sep 17 00:00:00 2001
From: Harry Phan
Date: Wed, 3 Jun 2026 02:59:39 +0700
Subject: [PATCH 3/8] fix(app): update sign-in page title and OpenGraph/Twitter
meta for link previews
---
apps/app/index.html | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/apps/app/index.html b/apps/app/index.html
index 72b9b0d6..2c3fd0c5 100644
--- a/apps/app/index.html
+++ b/apps/app/index.html
@@ -12,18 +12,18 @@
+ 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 +33,12 @@
-
-
+
+
- Walrus Memory
+ Portable AI Agent Memory | Walrus Memory Dashboard
From 792e290b0f4670cc7e96a67e93279c1a32ebfaa0 Mon Sep 17 00:00:00 2001
From: Harry Phan
Date: Wed, 3 Jun 2026 03:03:56 +0700
Subject: [PATCH 4/8] fix(app): underline Terms of Service and Privacy Policy
links on sign-in page
---
apps/app/src/index.css | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
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 {
From 5e435f7661738cd638c2fd382c72969d2e518d8e Mon Sep 17 00:00:00 2001
From: Harry Phan
Date: Wed, 3 Jun 2026 10:34:59 +0700
Subject: [PATCH 5/8] docs: migrate public links to new domains (WALM-84)
- App / relayer / demos -> *.memory.walrus.xyz (relayer-staging dash form; *-demo hosts)
- Documentation links -> docs.wal.app/walrus-memory
- benchmark-ci-setup.md: migrate staging relayer URL (was missed)
- Keep code/API identifiers, MEMWAL_* env vars, and package names unchanged.
---
README.md | 6 +--
SKILL.md | 24 +++++------
docs/getting-started/choose-your-path.md | 4 +-
docs/getting-started/quick-start.md | 9 ++--
docs/llms-full.txt | 22 +++++-----
docs/llms.txt | 52 +++++++++++------------
docs/mcp/how-it-works.md | 2 +-
docs/mcp/overview.md | 4 +-
docs/mcp/quick-start.md | 10 ++---
docs/mcp/reference.md | 13 +++---
docs/openclaw/quick-start.md | 8 ++--
docs/reference/configuration.md | 2 +-
docs/relayer/benchmark-ci-setup.md | 6 +--
docs/relayer/public-relayer.md | 6 +--
docs/sdk/api-reference.md | 2 +-
docs/sdk/overview.md | 2 +-
docs/sdk/quick-start.md | 8 ++--
packages/mcp/README.md | 3 +-
packages/openclaw-memory-memwal/README.md | 12 +++---
packages/sdk/README.md | 4 +-
20 files changed, 98 insertions(+), 101 deletions(-)
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/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/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/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",
});
From 871f6e961d7b9ee27e7f5b9ee148c8b919ed03dc Mon Sep 17 00:00:00 2001
From: Harry Phan
Date: Wed, 3 Jun 2026 14:27:44 +0700
Subject: [PATCH 6/8] fix(app): use new WM favicon SVG for the browser tab icon
---
apps/app/index.html | 2 +-
apps/app/public/walrus-memory-favicon.svg | 10 ++++++++++
2 files changed, 11 insertions(+), 1 deletion(-)
create mode 100644 apps/app/public/walrus-memory-favicon.svg
diff --git a/apps/app/index.html b/apps/app/index.html
index 2c3fd0c5..5192512f 100644
--- a/apps/app/index.html
+++ b/apps/app/index.html
@@ -4,7 +4,7 @@
-
+
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 @@
+
From e2243885d3a35c9a600a3d24e78e1a535b938cd8 Mon Sep 17 00:00:00 2001
From: Harry Phan
Date: Wed, 3 Jun 2026 14:31:26 +0700
Subject: [PATCH 7/8] fix(app): drop legacy PNG favicons, use WM SVG favicon
only
---
apps/app/index.html | 3 ---
apps/app/public/apple-touch-icon.png | Bin 1938 -> 0 bytes
apps/app/public/favicon-16x16.png | Bin 296 -> 0 bytes
apps/app/public/favicon-32x32.png | Bin 383 -> 0 bytes
4 files changed, 3 deletions(-)
delete mode 100644 apps/app/public/apple-touch-icon.png
delete mode 100644 apps/app/public/favicon-16x16.png
delete mode 100644 apps/app/public/favicon-32x32.png
diff --git a/apps/app/index.html b/apps/app/index.html
index 5192512f..a02c2a3c 100644
--- a/apps/app/index.html
+++ b/apps/app/index.html
@@ -3,10 +3,7 @@
-
-
-
diff --git a/apps/app/public/apple-touch-icon.png b/apps/app/public/apple-touch-icon.png
deleted file mode 100644
index 3dd3749b565627f925a26f8f62b7d4d5166a07b5..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 1938
zcmd^A{a4aw6#s(tr7Xayl@&5HYjjGjv>Af(RdC|VOmn3M=gL|
zi%rsbxl8Fuzs&K=qP=xXHXftB^%YD!Pkta8*LZU}qhJ^mxcuBqyZlqtTnCGXvq
zp?#PlZB>^v8+~{?-ZuulS~og1w6kVa?p8E$rOzz1uPNTQTESn|IWfduoMiM7h7eo5
z$)x@i<=eU30c6yVYLdQRtUGY9=jf-ETvG}808Hc;SjxS(mN_i*ndLLiO)WlTCx9m1
zi`%Zh5*yaew9vafL(N^%5O?d$13Th8J6n+Xizg^aQ>Wfw9pf-}LcuNb(4)!tLicDU
zmCFT^rHP}{l8(rn6QB^wnBSWns@#=a1Q7Gdu_D{2(+$T5p+!}uOd{F$-FTK-tdHJf
zV=L5D=B7PZqkfzry$H^Q5>#eNs2F!QK_!^C$|i*9k0m~0dcHoA
z)T~y{CGy*m_gP#1%F}Qj`57`qNk*elrqk(++Xp85E{ZZwPA)v##JgXT!)p)k!)dBE
zMMben`?aaJqDMTK%&&vPH*V~^+l%a`SarKZO=0Sm(|3B+yfDGuZSXvrhP8XSLi(bm
z)mbj#p9&tfp|J^;O`l~L_F0vk1fFWllqg8gdge3{&UtBC_^f!1X_#m>#@8~i|yen=|
zcfGjR&|u8I9TO81+}F^x?P|S3^_(>_*}U)Lo|hF5ZEEYEhab0nzfG0h#Dy1G@#NPC
zt{L~#?am68tVFF)``GuAt#djf9;~mC`!nqKP_MGo@>cd4mRA=z_!IMlRC9QAHgHPB
zIk1sUP_Tv((1z^*ITS_ZW@q_zrwmF)KItq#m!GfSSP2*#8fa8u3_x4Xa7qba@=5t5
z=RjA0vt2SgL;h(b5UZRI@@Cl5%9aAg83)874uL%EK~lFZXtlx$i2V^jP%M$K3zH6#
z051Vzw*e~tf8{tjw;K$h>xARnGr_B?s$ybeL%kowpVeqg@5;Zc&Urs|c-MoYA36lu
z-*FBpEbbDNz?-GqNjyVDZ%Vl;yyUR>4c)xtO8h!7vf|`t%r;Dz24nn6D5w9_C0|rkT$uiSq&&fwCRM}L{>m?GRc!i9fjrgzkCozBB
z^R-f)9x&C%oUZ%8NXJj7ji1~0X+F2AEt-*^=6IJ;pJPBi3>FAi+qM|@S^Uz1KjN~@
W!!sp&nQ7pYg@OXY*!BM0{eJ_D(q+^D
diff --git a/apps/app/public/favicon-16x16.png b/apps/app/public/favicon-16x16.png
deleted file mode 100644
index bd9d160e80cfe9632a5c3e9cf4346a2d983f2661..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 296
zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GG!XV7ZFl&wkQ1F(g
zi(^Q|oVUS-T+I#wGL9GSc?JLG-08*!?sOHGj+H?v
ziCvQK(x#`fGw3noF}!1V;r!vYoC5>HuOr99zuYMATh#H%X1M`RYxFeLITKTFUR1fk
zvevZlYN_s>ZMjBUbxvOt`N7z{Nhfn&y4U3?Hs=>_%Wds{tTE@|?|m6;u7NhZt5!|Y
z^PJRiqjc_v(%9{O>t0{lHzlZ^dF$=Qpsr<^i!AzFb7r~yFyOf@Bzs)&Y{UA?5_32&
s-VT1IQkPwj%G{^2{8i4JpT!>-xGPT0(bTi{2l|r1)78&qol`;+0NZDHQ~&?~
diff --git a/apps/app/public/favicon-32x32.png b/apps/app/public/favicon-32x32.png
deleted file mode 100644
index 44566bcdbbf60691908271f785c2dac867d9964f..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 383
zcmV-_0f7FAP)B&aV0a-|-9}2hanco%jH718~72UIBdW
zxbPCT*2}c>BNv|*alyFlbP{hE=W
Date: Wed, 3 Jun 2026 14:33:47 +0700
Subject: [PATCH 8/8] fix(app): regenerate favicon.ico from WM SVG (16/32/48)
---
apps/app/public/favicon.ico | Bin 405 -> 2275 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
diff --git a/apps/app/public/favicon.ico b/apps/app/public/favicon.ico
index 60d04bd8bef1589b9ad9f452f8e8016d1851a645..c9b826131a73573dcecff7045e7e8c0f294e2437 100644
GIT binary patch
literal 2275
zcmZQzU}Rus5D;Jh(h3aAm>3w$7#J876d?QyK>i&dHZXwj&6yb(*03@#bO!jj^KwaX
z0hRK4dbk7uX`l%V0vv2WQvUP*L?FeI?~tz_78O`%fZJ3xh(kN02WALzNl>LqiJ#
z!!Mvv!wUw6QlQbV5*Qe)W-u^_7tGleXakgRNsaJK^YvxW0AeI7R
z1_tH@AXkG#fMN@n;IaY>m=SD{LX*(KPe5gJGeaUuB7A+UlJj%*5>xV%QuQiw3qT4O
zY$~jP%-qzHM1_jnoV;SI3R@+x3M(KRB&@Hb09I0xZL1XF8=&BvUzDm~re~mMpk&9T
zprBw=l#*r@P?Wt5Z@Sn2DRmzV368|&p4rRy77T3YHG80i}s=>k>g7FXt#
zBv$C=6)QswftllyTAW;zSx}OhpQivaH!&%{w8U0P31kr*K-`&Hk%_P=uNdkrpa=Cq
zGWv#k2KsQbfm&@qqE-Q!6{$H9E}6NhdBs3G>`V=fY{2R5Rmw6G;ZD(?%cU
z0VEGWLJKSk3@$q^8+~}t+i~sC_Xr2ZhJ~k#V~B-da?Qs#|LYy&*x1bE*fuc;^NTYx
z3v)+S9h@ccpPBLJt;T7=izJtnUun2#AmPhCA%=zFlNE?83gA>)Tvhc2$Qg)Ks(_SAK@MVA)0XskG?jwVH&R*~#Hln1lu9Ew-(J|r+h8ET
za>000&M005KR0wjM4a7bBm000XU000XU
z0RWnu7ytkPF-b&0RCt{2mp^KSKoG{iO0W<-f|YjO!0=Lg6{|B&aV0a-|-9}2hanco%jH718~72UIBdWxbPCT
z*2}c>BNv|*alwDM?Q{}v80T_U0q=N}bX}LyG!;Zqw9+VwGShI9B>7Dd*i3kyN7HEA
zcBN5OmA0bqdszU<5#V1Q!aUEZ>$*EZ5Rhq_0>^Pgj#E|DOvABld!^-UTv3RJx~@eR
zVHnPYmSwFv9fo1ED_z&=Q4~cX3m`cH$U_Ku4Iy7d^fz5!#aWh7(=>N{-=7H$!w@-6
zS(cjxXqvXta^g7t+2ZzmRzVYEkQS+ghZ51COs+MHgO4w>x)^J;7^d(NC~
byXgE2o5U;;l`x-900000NkvXXu0mjfTGO5I