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