Skip to content

docs: add Walrus Console beta documentation - #3540

Open
reemsabawi-mystenlabs wants to merge 25 commits into
mainfrom
reem/console-docs
Open

docs: add Walrus Console beta documentation#3540
reemsabawi-mystenlabs wants to merge 25 commits into
mainfrom
reem/console-docs

Conversation

@reemsabawi-mystenlabs

@reemsabawi-mystenlabs reemsabawi-mystenlabs commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

Docs: add Walrus Console beta documentation

Description

Summary

Adds the initial Walrus Console documentation set for the beta launch. Seven pages under
docs/content/console/:

  • Concepts and overview (BEDU-667)
  • Sign-in and accounts (BEDU-658)
  • Quickstart (BEDU-657)
  • API reference (BEDU-659)
  • Storage, epochs, and renewal (BEDU-664)
  • FAQ
  • MCP server (BEDU-653)

Content is written to the beta surface (private Seal-encrypted buckets, files, Google and Apple
zkLogin), with GA and post-GA capabilities marked as such.

⚠️ Blocking: the MCP npm package is not published

registry.npmjs.org returns 404 for @mysten-incubation/walrus-console-mcp. This is the
package missing rather than the registry being unreachable: @mysten/sui and
@mysten-incubation/memwal-mcp both return 200 from the same check.

Every install path in the MCP page runs npx -y @mysten-incubation/walrus-console-mcp, so those
steps do not work today. The page says so in an admonition and the FAQ no longer claims the server
is published, but this needs to be true before these pages go live, not just before GA.

Applied from George's 19 August review

All eight open threads are addressed on the branch.

URLs and release stage. The app is https://console.walrus.xyz/, the API is
https://api.console.walrus.xyz, and both are named the "Console developer API" in beta. The
api.testnet.harbor.walrus.xyz host, the "Testnet only" qualifier, and the alpha framing are gone
from every page.

Key creation flow. The quickstart now sends the reader to Integrations → Create API Key in
the top-right corner, then a choice between a Management API key (mints further keys through
the CLI, cannot upload, download, or manage assets) and a plain API key (cannot mint, and the
choice is not permanent). The reveal-both-secrets step is now conditional on having chosen a
Management API key. Wording is George's, trimmed of the "good for products, hackathons, or agents"
sentence, which does not change what a reader picks.

Environment variable. The reader's own .env uses CONSOLE_SERVICE_PRIVKEY.

One dependency worth flagging: the runnable MystenLabs/walrus-harbor-quickstart example still
ships HARBOR_API_KEY and HARBOR_SERVICE_PRIVKEY in app/.env.example on main. Renaming
them in the docs would break the copy-and-run path, so the section that points at that repo keeps
those names and says explicitly that they are the example's own. Once the example repo renames
its variables, that sentence can go.

Reconciled the rest of the set against those corrections

The review comments landed on the quickstart, but the same claims appeared on other pages, and
would have shipped contradicting each other:

Page Was Now
mcp-server.mdx "Integrations → New API key, choose read_write, and tick Create" The corrected Integrations → Create API Key flow; no Create tick, which the new modal does not have
overview.mdx, faq.mdx Key minting described as a role choice only Also names the Management API key vs API key choice
faq.mdx Linked the MCP server through the overview anchor, which is now only a pointer Links mcp-server directly
storage-epochs.mdx Free cap "tentatively 5 GB" 5 GB total, matching the overview and FAQ
api-reference.mdx payload_too_large with no figure Names the 100 MiB cap the FAQ already documented
api-reference.mdx "the Walrus Console external API" in the lede, callout, and description "the Console developer API", matching the quickstart
auth.mdx Lede ended on a sentence fragment Rewritten as a full sentence

Added since the last review

FAQ page. Chelsea's draft copy for the beta launch, reconciled against the other pages so the
two do not disagree in front of a reader. Where the draft conflicted, the shipped pages won:

Draft said Shipped pages say Page now says
Console files "will be renewed automatically" Renewal is automatic only for wallets active within a recent window Carries the active-wallet condition
Billing "for storage… later this year" Reads and egress, after GA After GA, no calendar date
Memory in Console "read only at first" Browse, search, and manage at GA Browse, search, and manage
Team Spaces "later this year" After GA After GA

All "later this year" phrasing was dropped in favour of the beta/GA/after-GA phases the
availability table already uses.

MCP server page (BEDU-653). Covers install, client registration for Claude Code, Codex, Cursor,
and Claude Desktop, the fourteen tools with their read or write classification, file-access
sandboxing, and the Key-Admin credential split behind generate_api_key. The overview's MCP
section is a pointer to it rather than a parallel description, so the two cannot drift.

Product corrections confirmed by Chelsea.

  • The per-upload cap is 100 MiB, not 100 MB. The FAQ draft carried the wrong unit, which
    understates the limit by about 5 percent.
  • 5 GB is the total storage limit, not a planned figure. The FAQ, overview, and storage page
    all hedged it as "tentatively 5 GB, pending analysis of real Mainnet usage"; all three now state
    it plainly.

MCP server credentials. The overview and FAQ both said the MCP server connects with "your
existing API key, with no separate credential". The server needs two values from the Console
key-creation dialog: CONSOLE_API_KEY (the hbr_ bearer) and CONSOLE_SERVICE_PRIVATE_KEY (the
suiprivkey1 signer, which encrypts and signs locally). Neither is a new credential, so the intent
was right, but a reader who copied only the API key would not get a working server.

Consistency and style fixes. overview.mdx said Team Spaces "arrive at general availability"
in the concepts section while its own availability table said after GA. The three storage levels
are now a numbered list, matching the sentence that introduces them. Self-referential preambles
were removed from overview.mdx and api-reference.mdx.

Mainnet and open-source status, checked with engineering

The MCP server's README currently sends users to testnet.console.walrus.xyz, and
MystenLabs/walrus-console-mcp is a private repository. Confirmed with Ben Ha via Chelsea:

  • MCP supports Mainnet at the beta release, and the README is being updated to point at
    console.walrus.xyz. The stale Testnet URL is in the README, not in these pages.
  • The source becomes public in MystenLabs/ts-sdks-incubation when
    Add Walrus Console MCP ts-sdks-incubation#44 merges.

Open question for George

The two key types and the quickstart's flow do not quite line up, and only product can settle it.
The reveal screen that shows both the hbr_ key and the suiprivkey1 service private key is now
documented as following a Management API key, per the review comment. But the encrypted
quickstart needs the service private key to sign the finalize transaction and to open Seal decrypt
sessions, while a Management API key "can't upload, download, or manage assets". Does the
encrypted flow need both key types, or does a plain API key also reveal a service private key? The
page reads correctly either way today, but a reader following it end to end will hit whichever
answer is true.

Notes for reviewers

  • The quickstart code (signing, Seal encrypt/decrypt, package and key-server IDs) is pulled via
    ImportContent from the public MystenLabs/walrus-harbor-quickstart example, so it stays in
    sync with the source rather than being copy/pasted here. That repository still carries the
    Harbor name and the HARBOR_* variables; the prose says so where it points there.
  • The hbr_ and hbradm_ key prefixes are literal identifiers the product emits, so they stay
    as-is while prose says "Walrus Console".
  • The FAQ and MCP pages use second person in headings to satisfy the style guide, while the
    questions frontmatter keeps the first-person phrasing readers actually search with.

Checks run on this branch

  • docs-style-audit.sh over all seven console pages: clean.
  • docs/site/src/scripts/audit-docs.mjs: no broken links, broken imports, missing images, or
    frontmatter issues on any console page.
  • Cross-page consistency greps for the 5 GB cap, the 100 MiB cap, the Console URLs, and the MCP
    links, which is how the contradictions in the table above were found.

Sources

  • Review corrections: George's eight open threads on this PR, 19 August.
  • FAQ content: Chelsea's draft copy for the Console beta launch, plus her confirmation of the
    100 MiB upload cap and the 5 GB total storage limit.
  • MCP page: the README.md and package.json of MystenLabs/walrus-console-mcp, provided by
    Chelsea since the repository is not publicly readable. Package name, bin entry, MIT licence, and
    the Node 24 engine requirement come from package.json; the installer command, config paths and
    permissions, client registration commands, the fourteen tools, path sandboxing, and the
    Key-Admin mint flow come from the README.
  • HARBOR_API_KEY and HARBOR_SERVICE_PRIVKEY still being the example's variable names:
    app/.env.example on main of MystenLabs/walrus-harbor-quickstart, fetched from
    raw.githubusercontent.com.
  • npm publication status: registry.npmjs.org, checked against two known-published packages as a
    control.
  • Mainnet support and open-source publication: Ben Ha, relayed by Chelsea.
  • payload_too_large error name: docs/content/console/api-reference.mdx.
  • zkLogin URL: already cited in docs/content/console/overview.mdx.
  • Original five pages: the hosted quickstart and OpenAPI spec at api.testnet.harbor.walrus.xyz,
    and the Console PRD and roadmap.

Before merge

  • @mysten-incubation/walrus-console-mcp resolves on npm. The MCP page's install steps do
    not work until it does.
  • MCP README points at console.walrus.xyz, and ts-sdks-incubation#44 has merged, before the
    open-source and Mainnet claims go live.
  • George's answer on the Management API key question above.
  • Docs build passes with the repo's docs build command.
  • editorconfig-checker and typos pass. .mdx files are exempt from the 150-character
    wrap; if any .md file is added, hard-wrap prose to about 100 columns.
  • PR title uses the docs: prefix for the semantic PR check.

Tickets

Closes BEDU-667, closes BEDU-659, closes BEDU-657, closes BEDU-658, closes BEDU-664, closes
BEDU-653.

@github-actions

github-actions Bot commented Jul 13, 2026

Copy link
Copy Markdown
Contributor
PR Preview Action v1.8.1

QR code for preview link

🚀 View preview at
https://MystenLabs.github.io/walrus/pr-preview/pr-3540/

Built to branch gh-pages at 2026-08-19 16:31 UTC.
Preview will be ready when the GitHub Pages deployment is complete.

@github-actions

github-actions Bot commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

📋 afdocs check results

URL: https://MystenLabs.github.io/walrus/pr-preview/pr-3540/

Running checks on mystenlabs.github.io/walrus/pr-preview/pr-3540/...

Agent-Friendly Docs Check: https://MystenLabs.github.io/walrus/pr-preview/pr-3540/
Timestamp: 8/19/2026, 4:35:45 PM

content-discoverability
  ✓ llms-txt-exists: llms.txt found at https://MystenLabs.github.io/walrus/pr-preview/pr-3540/llms.txt
  ✓ llms-txt-valid: llms.txt follows the proposed structure (H1, blockquote, heading-delimited link sections)
  ⚠ llms-txt-size: llms.txt is 69,487 characters (between 50,000 and 100,000; consider splitting)
      Learn more: https://agentdocsspec.com/spec/#llms-txt-size
  ○ llms-txt-links-resolve: llms.txt contains 201 links, but none are under /walrus/pr-preview/pr-3540
  ○ llms-txt-links-markdown: llms.txt contains 201 links, but none are under /walrus/pr-preview/pr-3540
  ✓ llms-txt-directive-html: llms.txt directive found in HTML of all 208 pages, near the top of content; 1 failed to fetch
  ✗ llms-txt-directive-md: Could not fetch markdown for any of 209 pages; 209 had no markdown version
      Learn more: https://agentdocsspec.com/spec/#llms-txt-directive-md

markdown-availability
  ✗ markdown-url-support: No pages support .md URLs (0/209 tested)
      Learn more: https://agentdocsspec.com/spec/#markdown-url-support
  ✗ content-negotiation: Server ignores Accept: text/markdown header (0/209 pages return markdown)
      Learn more: https://agentdocsspec.com/spec/#content-negotiation

page-size
  ✓ rendering-strategy: All 209 pages contain server-rendered content
  ○ page-size-markdown: Skipped: dependency check did not pass
  ⚠ page-size-html: 1 of 209 pages convert to 50K–100K chars (max 214K HTML → 80K markdown (81% boilerplate))
      Learn more: https://agentdocsspec.com/spec/#page-size-html
  ✗ content-start-position: 14 of 209 pages have content starting past 50% (worst 64%)
      Learn more: https://agentdocsspec.com/spec/#content-start-position

content-structure
  ✓ tabbed-content-serialization: 66 tab group(s) across 39 of 209 pages; all serialize under 50K chars
  ✓ section-header-quality: 3 page(s) with tab headers checked; headers include variant context
  ✓ markdown-code-fence-validity: All 0 code fences properly closed across 1 pages

url-stability
  ✓ http-status-codes: All 209 pages return proper error codes for bad URLs
  ✓ redirect-behavior: No redirects detected across 209 pages

observability
  ✗ llms-txt-coverage: llms.txt covers 0/201 sitemap doc pages (0%); 201 missing
      Learn more: https://agentdocsspec.com/spec/#llms-txt-coverage
  ○ markdown-content-parity: Skipped: dependency check did not pass
  ✓ cache-header-hygiene: All 210 endpoints have appropriate cache headers

authentication
  ⚠ auth-gate-detection: 1 of 209 pages require authentication (208 accessible)
      Learn more: https://agentdocsspec.com/spec/#auth-gate-detection
  ✓ auth-alternative-access: Alternative access detected (public-llms-txt, partial-public-access) for site with 1 auth-gated pages

Summary
  11 passed, 3 warnings, 5 failed, 4 skipped (23 total)

Full spec: https://agentdocsspec.com/spec/

@jessiemongeon1

jessiemongeon1 commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

Style Guide Audit

Audited 7 file(s) against the Sui Documentation Style Guide.

8 violation(s) found. All must be fixed before merge.

docs/content/console/faq.mdx (3 violation(s))

3 violation(s) (3 regex, 0 claude)

  • Line 59 — Headings use sentence case (acronyms stay capitalized)
    • Current: Can Console see files you already uploaded with the CLI or an SDK?
    • Fix: Capitalize only first word, proper nouns, and acronyms
  • Line 75 — Headings use sentence case (acronyms stay capitalized)
    • Current: How do you use Console with Claude Code or Cursor?
    • Fix: Capitalize only first word, proper nouns, and acronyms
  • Line 83 — Headings use sentence case (acronyms stay capitalized)
    • Current: What is Walrus Memory, and is it in Console?
    • Fix: Capitalize only first word, proper nouns, and acronyms

docs/content/console/quickstart.mdx (3 violation(s))

3 violation(s) (0 regex, 3 claude)

  • Line 46 — passive-voice
    • Current: Console stores only the derived public address, and it does not need a token balance.
    • Fix: Console stores only the derived public address, and the key does not need a token balance.
  • Line 88 — passive-voice
    • Current: Console has already attached the gas sponsor's signature
    • Fix: Console already attached the gas sponsor's signature
  • Line 54 — passive-voice
    • Current: Private buckets are encrypted client-side
    • Fix: You encrypt private buckets client-side

docs/content/console/storage-epochs.mdx (2 violation(s))

2 violation(s) (0 regex, 2 claude)

  • Line 29 — admonition-type
    • Current: :::warning
    • Fix: :::caution (use :::caution, :::danger, :::info, :::note, or :::tip; :::warning is not a valid admonition type)
  • Line 43 — passive-voice
    • Current: new developers are not paywalled
    • Fix: Rewrite in active voice, for example: "new developers do not hit a paywall"

Automated audit using the Sui Documentation Style Guide.

@jessiemongeon1 jessiemongeon1 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall a good start, but several areas need some revisions.

  • In some places, you list "available in beta on Mainnet" and then "available in alpha on Testnet", this needs to be consistent so that it is clear what feature set is currently available when these docs are published.
  • There are several things not defined or explained, such as Pearl wallet
  • All code snippets need to be sourced from their original source repo (using the ImportContent component), not copy/pasted into the docs
  • Inconsistencies with naming schemes/variables
  • Always prefer info over note for admonitions
  • Other misc style guide/structure/wording adjustments needed

Comment thread docs/content/console/api-reference.mdx Outdated
Comment thread docs/content/console/api-reference.mdx Outdated
Comment thread docs/content/console/api-reference.mdx Outdated
Comment thread docs/content/console/api-reference.mdx Outdated
Comment thread docs/content/console/api-reference.mdx Outdated
Comment thread docs/content/console/storage-epochs.mdx Outdated
Comment thread docs/content/console/storage-epochs.mdx Outdated
Comment thread docs/content/console/storage-epochs.mdx Outdated
Comment thread docs/content/console/storage-epochs.mdx Outdated
Comment thread docs/content/console/storage-epochs.mdx Outdated

@jessiemongeon1 jessiemongeon1 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall a good start, but several areas need some revisions.

  • In some places, you list "available in beta on Mainnet" and then "available in alpha on Testnet", this needs to be consistent so that it is clear what feature set is currently available when these docs are published.
  • There are several things not defined or explained, such as Pearl wallet
  • All code snippets need to be sourced from their original source repo (using the ImportContent component), not copy/pasted into the docs
  • Inconsistencies with naming schemes/variables
  • Always prefer info over note for admonitions
  • Other misc style guide/structure/wording adjustments needed

Apply review feedback on the Walrus Console beta docs:

- Standardize launch framing: product pages describe a closed, invite-only
  Mainnet beta; the API reference and quickstart keep the API as alpha /
  Testnet-only, resolving the alpha-vs-beta inconsistency across pages.
- Title-case all page titles; use "Quick Start" consistently.
- Switch all :::note admonitions to :::info.
- Add Seal (/docs/data-security), Sui zkLogin, Sui address, Enoki, MCP, and
  Discord links; replace placeholder "/" links.
- Capitalize "ID" in prose and clarify the API parameter tables' "In" column
  as "Location".
- Move the encryption/privacy warning higher on the overview page and trim
  the duplicated API-key role details.
- Condense the not-yet-available Apple sign-in section.
- Apply reviewer inline suggestions (error shape, async wording, KiB, retry
  guidance, character-length clarifications) and remove redundant manual
  "Next steps" sections in favor of Docusaurus pagination.
- Add a canonical-source pointer for the quickstart snippets.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GQ8Q5FL8je9mpXv93ff23R

Copy link
Copy Markdown
Contributor Author

Thanks for the thorough review, @jessiemongeon1. Pushed a commit addressing the feedback (4bbe6c01). Summary of how each class of comment was handled:

Launch framing (the alpha-vs-beta inconsistency). Standardized on: the product is a closed, invite-only Mainnet beta (overview, sign-in, storage, and the quickstart intro), while the external API is called out as alpha and Testnet-only (per your suggestion on the API reference note). The quickstart note now states both explicitly so the Testnet-preview-vs-Mainnet-beta relationship is clear rather than mixed per page.

Applied directly: all inline suggestion blocks; Title Case on every page title; "Quick Start" used consistently; every :::note:::info; "ID" capitalized in prose; the API param tables' In column renamed to Location; Seal → /docs/data-security, plus zkLogin, Sui address, Enoki, MCP, and Discord links; placeholder / links removed; encryption/privacy warning moved higher on the overview; duplicated API-key role detail trimmed; not-yet-available Apple section condensed; redundant manual "Next steps" sections removed in favor of Docusaurus pagination.

Two items that need your call — not fully mechanical:

  1. Code should be sourced from the original repo (quickstart snippets). Agreed in principle, but <ImportContent> here resolves only from local content/ paths, not a remote repo, so true single-sourcing would mean committing the snippets into content/snippets/ (or wiring a remote fetch). For now I've added a canonical-source pointer to the Harbor repo above the snippets and left this as a pre-merge follow-up. If there's a preferred path/mechanism, point me at it and I'll wire it up.

  2. "Prereq sections need the prerequisite component." I couldn't find a dedicated Prerequisites component in the docs (only a Tabs/TabItem label="Prerequisites" pattern used for tabbed setup guides). Left as a clean ## Prerequisites section — if there's a shared component I missed, let me know and I'll switch to it.

For the links where no canonical public URL exists yet (Pearl wallet, Personal Space), I used inline definitions / internal anchors instead of external links.


Generated by Claude Code

@jessiemongeon1

Copy link
Copy Markdown
Contributor

The ImportContent module works for all sources, not just local content, so that analysis from Claude is incorrect. See here from the existing Walrus docs: https://raw.githubusercontent.com/MystenLabs/walrus/refs/heads/main/docs/content/examples/walrus-relay.mdx

The format is:

<ImportContent source="src/App.tsx" mode="code" org="MystenLabs" repo="walrus-sdk-relay-example-app" />

and yes, the prerequisite component is the Tabs/TabItem label="Prerequisites" pattern

- "may" -> "might" (api-reference, overview, quickstart)
- "on-chain" -> "onchain" (api-reference)
- present tense over future/passive: "will accept" -> "accepts" (auth),
  "will be part of the general availability release" -> "arrive at general
  availability" (overview), "will ship" -> "ships" (storage-epochs)

Left the two "capitalize testnet" flags unchanged: both point at the
testnet.harbor.walrus.xyz hostname in link text, not prose.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GQ8Q5FL8je9mpXv93ff23R

Copy link
Copy Markdown
Contributor Author

Applied the style-guide audit fixes in c5689106:

  • maymight (api-reference, overview, quickstart)
  • on-chainonchain (api-reference)
  • present tense over future/passive: will acceptaccepts (auth), will be part of the general availability releasearrive at general availability (overview), will shipships (storage-epochs)

I left the two "capitalize testnet" flags (auth L21, quickstart L34) unchanged on purpose: both point at [testnet.harbor.walrus.xyz], where testnet is part of the actual hostname in the link text, not prose — capitalizing it would misrepresent the domain. Happy to change if you'd prefer it title-cased anyway.


Generated by Claude Code

reemsabawi-mystenlabs and others added 3 commits July 14, 2026 23:51
Wrap the quickstart prerequisites in the shared
<Tabs><TabItem label="Prerequisites"> pattern used elsewhere in the docs,
per review feedback.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GQ8Q5FL8je9mpXv93ff23R
- Reword the two `testnet.harbor.walrus.xyz` link texts to "the Walrus
  Console app" so no lowercase hostname token appears in prose (URL
  unchanged).
- Active voice in storage-epochs: "is not renewed" -> "you do not renew
  it"; "its storage is allowed to lapse" -> "its storage lapses".

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GQ8Q5FL8je9mpXv93ff23R
Replace the inline TypeScript snippets (signing, Seal encrypt/decrypt) and
the hardcoded package/key-server IDs with <ImportContent> pulls from the
public MystenLabs/walrus-harbor-quickstart example:

- config.ts and lib/seal.ts introduced once as the canonical constants and
  helpers.
- sign-reserve.ts, encrypt-file.ts, and decrypt-file.ts imported at Steps 4,
  6, and 9, with pnpm run commands.

This removes the copy/paste snippets flagged in review and keeps the package
IDs and Seal key-server IDs in sync with the source repo. Also repoint the
source note from the private harbor repo to the public quickstart repo.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GQ8Q5FL8je9mpXv93ff23R

Copy link
Copy Markdown
Contributor Author

Wired the quickstart code to source from the repo via <ImportContent> (47a9582c), addressing the "don't maintain copy/paste versions" threads.

  • Source repo: MystenLabs/walrus-harbor-quickstart (public). Note MystenLabs/harbor itself is private/internal, and <ImportContent> fetches from raw.githubusercontent.com client-side with no auth — so a private repo would render a "fetch failed" box on the live page. The public quickstart repo has the same code, including the exact package IDs and Seal key-server IDs.
  • config.ts and lib/seal.ts are imported once as the canonical constants + helpers; sign-reserve.ts, encrypt-file.ts, and decrypt-file.ts are imported at Steps 4/6/9 with their pnpm run commands.
  • Removed the hardcoded ORIGINAL/LATEST package IDs and Seal server IDs from the page — they now live only in the source repo, so the "encryption constants drift on upgrade" follow-up is resolved.
  • Verified the pattern is build-safe: inline-imports.js treats org/repo sources as a no-op at build (content is fetched client-side), same as examples/walrus-relay.mdx.

One thing I left as-is: the Get help section still links github.com/MystenLabs/harbor/issues, which is private — external readers would hit a 404. Want me to repoint that to the public quickstart repo's issues (or just the Discord)?


Generated by Claude Code

@jessiemongeon1 jessiemongeon1 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looking better, but still a few things needed:

  • In "Get Help", I’d point to Discord, the public quickstart repo, or another public support path.
  • Apple availability is still inconsistent: auth.mdx:11/25 says Apple is “soon”, while overview.mdx:85 lists “Google and Apple sign-in” as Beta.
  • Quick Start has a confusing double API-key flow: quickstart.mdx:40-48 creates an API key, then 65-72 creates an “encrypted-capable” API key and service key. I’d collapse that into one explicit “create a read_write encrypted-capable key and save both hbr_… + suiprivkey1…” path.
  • api-reference.mdx:247-249 says poll status until completed, then says status may become 404 once the job leaves the queue. That matches the hosted OpenAPI wording, but I’d make the user guidance clearer: “if it 404s after upload, check file metadata before treating it as failed.”
  • The Mainnet closed beta vs Testnet alpha API framing is awkward/a bit confusing.

- Get Help: drop the private harbor/issues link; point to the Walrus
  Discord and the public walrus-harbor-quickstart issues.
- Apple availability: overview no longer lists Apple sign-in as Beta; the
  capability table shows Google (Beta) and Apple (Soon), matching auth.mdx.
- Quickstart: collapse the two API-key steps into one explicit
  "create a read_write encryption-capable key, save both hbr_ and
  suiprivkey1" path; renumber the remaining steps (now 1-8).
- API reference: clarify the upload-status 404 guidance — a 404 after
  upload means check file metadata before treating it as a failure.
- Framing: on the quickstart, lead with the Testnet-alpha API framing
  instead of juxtaposing it with the Mainnet closed-beta product framing
  (which stays on the overview and sign-in pages).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GQ8Q5FL8je9mpXv93ff23R

Copy link
Copy Markdown
Contributor Author

Thanks — addressed all of these in 476d3fd2:

  1. Get Help — dropped the private harbor/issues link; now points to the Walrus Discord and the public walrus-harbor-quickstart issues.
  2. Apple availabilityoverview.mdx no longer lists Apple as Beta. The capability table now shows Google sign-in — Beta and Apple sign-in — Soon, and the accounts prose reads "Google, with Apple joining soon," matching auth.mdx.
  3. Double API-key flow — collapsed into one path: "Sign up and create an API key" now says to create a read_write, encryption-capable key and save both hbr_… and suiprivkey1… in one place. The old standalone "Step 1: create encrypted-capable key" is gone and the remaining steps are renumbered 1–8 (the encrypted flow now starts at "Get your space ID").
  4. Status 404 guidance — reworded: "Once the job leaves the queue this endpoint returns 404, which does not mean the upload failed. If you get a 404 after uploading, check the file metadata endpoint to confirm the final status before treating it as an error."
  5. Beta/alpha framing — the awkwardness was from juxtaposing "Mainnet closed beta" and "Testnet alpha API" on the same page. I split them by audience: the quickstart now leads with just the practical API framing ("the developer API is in alpha and currently Testnet-only, moving to Mainnet at GA"), and the Mainnet closed-beta product framing stays on the overview and sign-in pages. If you'd rather unify on one phrasing everywhere, happy to — just say which.

The private harbor repo is no longer referenced anywhere in the docs. CI should re-run on the new commit.


Generated by Claude Code

Comment thread docs/content/console/auth.mdx Outdated
Comment thread docs/content/console/auth.mdx Outdated
Comment thread docs/content/console/auth.mdx Outdated
Comment thread docs/content/console/overview.mdx Outdated
Comment thread docs/content/console/overview.mdx Outdated
Comment thread docs/content/console/overview.mdx Outdated
Comment thread docs/content/console/overview.mdx Outdated
Comment thread docs/content/console/overview.mdx Outdated
Comment thread docs/content/console/overview.mdx Outdated
Comment thread docs/content/console/storage-epochs.mdx Outdated
Comment thread docs/content/console/storage-epochs.mdx Outdated
Comment thread docs/content/console/storage-epochs.mdx Outdated

@geomel geomel left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the work on this. I left a few inline comments that need to be addressed before merging.

claude added 9 commits July 31, 2026 15:21
Product-accuracy fixes from the Console eng review:

- Apple sign-in is supported in the beta, not 'soon' (auth, overview,
  availability table)
- Drop 'more advanced workflows require explicit signing steps'; the
  beta has none
- Reword the overview intro so an API key reads as the programmatic
  path, not a prerequisite for uploading through the UI
- Memory storage renewal in Console moves to post-GA; browsing and
  managing memory stays GA
- Datasets scope is not yet planned: describe it as a planned asset
  type without the access-model and Marketplace specifics
- Automatic storage renewal is available in the beta, not at GA
  (overview, storage page, availability table)
- Mainnet billing and free tier land after GA
- Remove the upcoming-expiry dashboard claim; the dashboard does not
  surface it

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WoBWxqLzd9hAxrhoqv3iSv
- Bold header cells on every table (availability, error codes, all
  API parameter tables)
- Drop the 'this guide' and 'this page' preambles
- Add body text under the Files heading so headings do not stack

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WoBWxqLzd9hAxrhoqv3iSv
…Reference

Fills the follow-up left open in the PR description: the page defined epochs
as fixed periods without saying how long one lasts. Values come from the
generated network-parameters table in the Network Reference, which the page
now links as the canonical source.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WoBWxqLzd9hAxrhoqv3iSv
Datasets described a product concept that engineering has not planned, and
neither this repository nor the Walrus Memory codebase defines a datasets
asset type. Per Chelsea's review, removes the paragraph, the beta-table row,
and the mention in the asset types lead so the page describes files and
memory only.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WoBWxqLzd9hAxrhoqv3iSv
Chelsea's FAQ draft for the Console beta launch, reconciled against the
pages already in this PR so the two do not disagree in front of a reader.

Corrections to the draft, each one matching what the shipped Console
pages already say:

- Renewal. The draft promised automatic renewal outright. Renewal is
  automatic only while the wallet stays active, meaning at least one
  Walrus transaction within a recent activity window, so the FAQ carries
  the condition (overview.mdx, "Storage, epochs, and renewal").
- Free tier. The draft stated 5 GB as fixed. The overview calls it
  tentative pending real Mainnet usage, so the FAQ says planned.
- Billing. The draft scoped billing to storage "later this year". The
  overview scopes it to reads and egress after GA. Dropped the calendar
  date, which the Console pages avoid throughout, in favor of the beta,
  GA, and after-GA phases the availability table already uses.
- Memory in Console. The draft said read only at first. The overview says
  you browse, search, and manage memory at GA.
- Team Spaces. The draft said later this year; the availability table
  says after GA.

Also aligned overview.mdx, which said Team Spaces "arrive at general
availability" in the concepts section while its own availability table
said after GA.

Headings use second person to satisfy the style guide, while the
questions frontmatter keeps the first-person phrasing that matches how
readers actually search.

Sources:
- Draft: Chelsea's FAQ copy for the Console beta launch.
- Reconciliation: docs/content/console/{overview,auth,api-reference,
  storage-epochs}.mdx on this branch.
- payload_too_large error name: docs/content/console/api-reference.mdx.
- zkLogin URL: already cited in docs/content/console/overview.mdx.
- Unverified in this repo, carried from the draft and flagged for
  confirmation before merge: the 100 MB per-upload cap, and that the MCP
  server ships on npm.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WoBWxqLzd9hAxrhoqv3iSv
The style gate flags linking-verb-plus-adjective constructions and
self-referential preambles ("this reference", "this quickstart") on the
pages already in this PR. Rewriting them here keeps the whole Console
set clean rather than shipping the FAQ against pages that still trip it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WoBWxqLzd9hAxrhoqv3iSv
@jessiemongeon1

Copy link
Copy Markdown
Contributor

Style Guide Audit

Audited 6 file(s) against the Sui Documentation Style Guide.

6 violation(s) found. All must be fixed before merge.

docs/content/console/faq.mdx (3 violation(s))

3 violation(s) (3 regex, 0 claude)

  • Line 59 — Headings use sentence case (acronyms stay capitalized)
    • Current: Can Console see files you already uploaded with the CLI or an SDK?
    • Fix: Capitalize only first word, proper nouns, and acronyms
  • Line 75 — Headings use sentence case (acronyms stay capitalized)
    • Current: How do you use Console with Claude Code or Cursor?
    • Fix: Capitalize only first word, proper nouns, and acronyms
  • Line 83 — Headings use sentence case (acronyms stay capitalized)
    • Current: What is Walrus Memory, and is it in Console?
    • Fix: Capitalize only first word, proper nouns, and acronyms

docs/content/console/storage-epochs.mdx (3 violation(s))

3 violation(s) (0 regex, 3 claude)

  • Line 17 — passive voice
    • Current: storage can be bought for at most 53 epochs
    • Fix: you can buy storage for at most 53 epochs
  • Line 29 — invalid admonition type
    • Current: :::warning
    • Fix: :::caution
  • Line 43 — passive voice
    • Current: so new developers are not paywalled
    • Fix: so new developers do not encounter a paywall

Automated audit using the Sui Documentation Style Guide.

claude added 3 commits August 18, 2026 14:49
Product confirmation from Chelsea:

- The per-upload cap is 100 MiB, not 100 MB. The FAQ carried the wrong
  unit, which understates the limit by about 5 percent.
- 5 GB is the total storage limit, not a planned figure. Both the FAQ
  and the overview hedged it as tentative and pending analysis of real
  Mainnet usage, so both now state it plainly.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WoBWxqLzd9hAxrhoqv3iSv
…PI key

Both pages said the MCP server connects with "your existing API key,
with no separate credential". The server's README requires two values
from the Console key-creation dialog:

- CONSOLE_API_KEY, the `hbr_` bearer
- CONSOLE_SERVICE_PRIVATE_KEY, the `suiprivkey1` signer that does
  encryption and signing locally

Neither is a new credential, so the intent was right, but a reader who
copied only the API key would not get a working server. Both pages now
name both values.

Also named the npm package in the FAQ, which previously said the server
"ships on npm" without saying what to install.

Sources: the walrus-console-mcp README and package.json, provided by
Chelsea. Package name and bin entry from package.json
(`@mysten-incubation/walrus-console-mcp`, bin `walrus-console-mcp` ->
`dist/console-mcp.js`); credential names, prefixes, and the installer
command from the README's Quick Start and Configure sections.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WoBWxqLzd9hAxrhoqv3iSv
Adds console/mcp-server.mdx covering install, client registration, the
fourteen tools, file-access sandboxing, and the Key-Admin credential
split, and cuts the overview's MCP section down to a pointer so the two
do not drift.

The npm package is not published yet. registry.npmjs.org returns 404 for
@mysten-incubation/walrus-console-mcp, while @mysten/sui and
@mysten-incubation/memwal-mcp both return 200, so this is the package
missing rather than the registry being unreachable. The page says so in
an admonition, and the FAQ no longer states the server is published on
npm. Both read correctly once it publishes with the beta.

Sources, all from the walrus-console-mcp README and package.json
provided by Chelsea:

- Package name, bin entry, MIT licence, and the Node 24 engine
  requirement: package.json.
- Installer command, what it validates, the config path on macOS, Linux,
  and Windows, and its user-only permissions: README Quick Start and
  Configure the server.
- Client registration commands and the stdio JSON block: README Adding
  to an agent.
- The fourteen tools and their read or write classification: README
  Available Tools.
- Path sandboxing, CONSOLE_MCP_ALLOWED_DIRS, and symlink resolution:
  README Security Model.
- The hbr_ and hbradm_ split, the mint flow, SpaceMismatchError, and the
  automatic grant for later private buckets: README Headless key minting.
- Mainnet at beta release: Ben Ha, relayed by Chelsea.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WoBWxqLzd9hAxrhoqv3iSv
Comment thread docs/content/console/auth.mdx Outdated
Comment thread docs/content/console/quickstart.mdx Outdated
Comment thread docs/content/console/quickstart.mdx Outdated
Comment thread docs/content/console/quickstart.mdx Outdated
Comment thread docs/content/console/quickstart.mdx Outdated
Comment thread docs/content/console/api-reference.mdx Outdated
Comment thread docs/content/console/api-reference.mdx Outdated

@geomel geomel left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Requesting changes based on a few outdated Harbor references:

  • All references to Harbor should be updated to Console.
  • The API URL https://api.testnet.harbor.walrus.xyz should now be https://api.console.walrus.xyz.
  • https://github.com/MystenLabs/walrus-harbor-quickstart is outdated since it was created for Harbor. Ioannis Chatzianagnostou is preparing an updated Console version, and I’ll provide the new link once it’s available.
  • Any references to walrus-harbor-quickstart should be changed to walrus-console-quickstart.
  • Please also update Harbor-specific names in examples and environment variables, e.g. HARBOR_SERVICE_PRIVKEYCONSOLE_SERVICE_PRIVKEY.

claude added 4 commits August 19, 2026 13:25
Review asked for the outdated Harbor references to move to Console.
Applied the three that are verifiable today:

- The app link becomes https://console.walrus.xyz/ in auth.mdx and
  quickstart.mdx, per the reviewer.
- The API base URL becomes https://api.console.walrus.xyz in
  api-reference.mdx and quickstart.mdx.
- The API is described as beta rather than alpha, and the Testnet-only
  restriction is gone. "Endpoint shapes might change before GA" replaces
  the Mainnet GA wording.

Two of the requested changes are deliberately not made, because they
would make the docs wrong rather than right:

- The quickstart repository is still named walrus-harbor-quickstart. It
  is public, was last updated on 2026-07-23, and no renamed repository
  exists under the org. Five <ImportContent> blocks pull source from it
  by name, so renaming it here breaks those imports and the build.
- app/.env.example in that repository still defines HARBOR_API_KEY and
  HARBOR_SERVICE_PRIVKEY, read from the raw file on main today. Renaming
  the variable in the docs would leave readers setting a variable the
  example does not read.

Both need the quickstart repository updated first. Once it is renamed
and its variables change, this page follows in one pass.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WoBWxqLzd9hAxrhoqv3iSv
…ages

Addresses the three unresolved review comments on the quickstart:

- The key-creation flow is Integrations, then Create API Key in the
  top-right corner, then a choice between a Management API key and a
  plain API key. Wording comes from the reviewer's own copy.
- The two-secret reveal screen only follows a Management API key, so
  step 3 now says so.
- The reader's own .env variable becomes CONSOLE_SERVICE_PRIVKEY. The
  walrus-harbor-quickstart example still ships HARBOR_API_KEY and
  HARBOR_SERVICE_PRIVKEY in app/.env.example, so the section that
  points at that repo keeps those names and calls out that they are the
  example's own.

Reconciling the rest of the section against the corrected flow:

- The MCP server page described the old Settings dialog, including a
  Create tick that the new modal does not have.
- The overview and FAQ described key minting as a role choice only, with
  no mention of the key type.
- The FAQ linked the MCP server through the overview anchor, which is now
  just a pointer; it links the page directly.
- storage-epochs still called the 5 GB free cap tentative, contradicting
  the overview and the FAQ, which state it as the total storage limit.
- The api-reference payload_too_large row now names the 100 MiB cap that
  the FAQ already documented.
- Reworded the auth lede off a sentence fragment.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WoBWxqLzd9hAxrhoqv3iSv
…e page

The reviewer asked for "The Console developer API is in beta" in the info
callout. The quickstart already used that name; the reference page still
said "the Walrus Console external API" in its lede, callout, and
description, so all three now match.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WoBWxqLzd9hAxrhoqv3iSv
An earlier round made the two-secret reveal conditional on choosing a
Management API key, following a review comment. Product has since
confirmed the opposite: a regular API key returns both the `hbr_` key
and the `suiprivkey1` service private key, and the Management API key is
a separate credential only for key management. The reviewer withdrew the
comment.

- The quickstart's step 2 now tells the reader to choose the plain API
  key and says why the Management type does not fit these steps; step 3
  describes the reveal screen unconditionally again.
- The overview no longer gates the service private key behind creating
  an "encrypted-capable" key, which described a dialog that the current
  Integrations flow does not have.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WoBWxqLzd9hAxrhoqv3iSv
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants