Skip to content

docs: align sei-js references with current packages - #67

Merged
alexander-sei merged 7 commits into
mainfrom
docs/incorporate-sei-js-changes
Aug 28, 2026
Merged

docs: align sei-js references with current packages#67
alexander-sei merged 7 commits into
mainfrom
docs/incorporate-sei-js-changes

Conversation

@alexander-sei

@alexander-sei alexander-sei commented Aug 18, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • remove the retired @sei-js/ledger docs and redirect its route to the EVM Ledger guide
  • align registry, create-sei, and precompile guidance with the current package exports, supported networks, and Bun-based template
  • update MCP and generated-content source guidance for current documentation search, wallet mode, and HTTP transport behavior
  • address review feedback, verifying every package claim against the published npm tarballs rather than asserting it
  • repair redirect entries that never resolved

Verified package claims

The review flagged the same set of claims as unverifiable three rounds running. Each was checked against the published tarball rather than left asserted:

Claim Result
@sei-js/precompiles exports sei/seiTestnet re-export: export { sei, seiTestnet } from 'viem/chains'
seiLocal chain ID 713714 confirmed
no IBC/Oracle/VIEM_* exports confirmed — 11 precompiles, no aliases
@sei-js/registry exports Network confirmed
CHAIN_INFO.supported_wallets confirmed exactly ['keplr','coin98']
NEXT_PUBLIC_CHAIN=testnet confirmed in template .env.example
Bun 1.3.14 floor confirmed via packageManager: bun@1.3.14
MCP server Node 20+, search_docs confirmed; no search_sei_js_docs
five pinned v6.6.1 ABI links all resolve 200

The viem/chains finding settles the contradiction the review raised twice: Viem owns those definitions and @sei-js/precompiles only re-exports them, so viem/chains is now the single source of truth across skill.md, the sei-js index, and the code samples.

Review feedback addressed

  • MCP server: canonical tool names documented alongside their aliases instead of listing three balance tools as peers
  • create-sei: dropped the Next and Sharp version details that rot on the template's next release; restored an explicit Node floor; explained why Bun matters (its overrides block is npm/Bun format, so Yarn and pnpm skip the security pins)
  • precompiles: added a @^3 floor so install snippets stop resolving an unbounded major; exact 20-byte addresses per AGENTS.md; Solo gained a usage section; distribution's install snippets got a heading
  • sei-global-wallet: moved the vulnerability warning above the install command and named the versions its overrides pin
  • deleted the orphaned evm/ai-tooling duplicates that shadowed their own redirects

Redirect repairs

Probing all 233 redirects against a local preview surfaced entries that silently never worked:

  • Mintlify does not support the :param(regex) capture syntax, so five filesystem-path guards never fired in local or production (/sei-config-, /sei-data-, /sei-backup-, /priv_validator_, and the OS-prefix alternation). Bare globs do match partial segments, so these are rewritten as /sei-config-* and friends, with the alternation expanded into one entry per OS prefix.
  • /agents and /agents.md pointed at /llms/agents.md, which was never published and returned 404. Both now resolve to the canonical /skill.md.
  • Mintlify appends .md to any redirect whose source already ends in .md, turning /agents.md into /llms/agents.md.md and /llms/skill.md into /skill.md.md. Those two sources cannot be repaired by changing the destination, so they are dropped — they already 404'd, so this is no regression.
  • removed the stale llms/ pair: both predate the root skill.md, llms/agents.md still referred to the old SKILL.md, and neither was reachable in production.

Sweep result after the fix: 230/239 land on 200 with zero redirect chains. The nine remaining are explained — five are wildcard passthroughs probed with a synthetic slug (verified working with real slugs), and four correctly end at /skill.md, which the local preview does not serve but production returns 200 for.

One known platform limitation left in place: /genesis.json redirects locally but 404s in production, since production routes extension-bearing paths to static-asset handling ahead of the redirect layer. Not fixable from docs.json.

Follow-up

llms.txt and llms-full.txt are stale — they still list the deleted @sei-js/ledger page and the old CUSTOM_RPC_URL/--http MCP guidance. Per AGENTS.md these are not hand-edited, and the generator scrapes the deployed site, so regenerate-llms.yml needs a manual dispatch after this deploys.

Test plan

  • npx --yes --package=node@24 --package=mint mint broken-links
  • python3 -m json.tool docs.json
  • node --check scripts/generate-llms.mjs
  • git diff --check
  • package claims verified against published npm tarballs
  • all 239 redirects probed against mint dev

Made with Cursor

Revise documentation across MCP server, @sei-js packages, and precompiles. Key changes: clarify MCP server env/transport (WALLET_MODE, PRIVATE_KEY, HTTP restrictions) and add search/get_supported_networks tools; standardize installs to unpinned `@sei-js/precompiles`; document retired Oracle and disabled IBC precompiles; add precompile table entries and usage notes; remove legacy `evm/sei-js/ledger.mdx` and add redirect to `evm/ledger-ethers`; update `create-sei` and `@sei-js` docs (defaults, bun usage, tech stack); adjust registry, examples, and LLMS generation text to match updates.
@mintlify

mintlify Bot commented Aug 18, 2026

Copy link
Copy Markdown
Contributor

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
sei-docs 🟢 Ready View Preview Aug 18, 2026, 1:19 PM

💡 Tip: Enable Workflows to automatically generate PRs for you.

@seidroid seidroid Bot 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.

A well-scoped docs alignment PR: it removes the retired @sei-js/ledger page behind a redirect, drops stale version pins, and updates MCP/registry/create-sei guidance — internal link and anchor integrity all check out. No blockers; the remaining notes are consistency gaps and a handful of factual package claims that need verification by someone with npm access.

Findings: 0 blocking | 17 non-blocking | 9 posted inline

Blockers

  • None at the file/PR level.

Non-blocking

  • Second-opinion passes produced no output: codex-review.md and cursor-review.md are both empty, so this review has no cross-tool corroboration. REVIEW_GUIDELINES.md is also empty, so no repo-specific standards were applied.
  • Several factual claims in this PR cannot be verified from the repo (network egress is blocked in the review environment): that @sei-js/precompiles exports the sei/seiTestnet viem chains, the WALLET_MODE/SERVER_TRANSPORT/SERVER_HOST/SERVER_PATH env var names, NEXT_PUBLIC_CHAIN=testnet, CHAIN_INFO.fee_token, and the template dependency versions (Next.js 15 / React 19 / Tailwind 4 / Mantine 8 / Biome 2). Worth a confirming pass by a reviewer with package access before merge. Note skill.md:71 already asserted the chain-config export pre-PR, so that one is at least internally consistent.
  • All @sei-js/precompiles@2.1.2 / @^2.1.2 pins were removed repo-wide, so every install snippet now resolves latest. That fixes the previous inconsistency (some pins were exact, some caret), but it means a future major release silently breaks these examples. Consider a caret major pin (@sei-js/precompiles@^2) as a middle ground.
  • The GAS_INFO section removal also deleted the <Info> callout steering EVM users to eth_gasPrice/eth_estimateGas and linking /evm/evm-parity/gas-and-fees. That guidance is independent of whether the registry exports GAS_INFO — consider preserving it somewhere.
  • Devnet consistency gap: evm/sei-js/registry.mdx now states Arctic-1 is not supported, but evm/evm-parity/websocket.mdx:16 and evm/evm-parity/examples/deploy-verify.mdx:221 still list a Devnet row with arctic-1 endpoints. Out of this PR's stated scope, but relevant to its "supported networks" goal.
  • skill.md's precompile address table (also touched by this PR) omits CosmWasm (0x1002) and Solo (0x100C), which were just added to evm/precompiles/example-usage.mdx. Minor divergence between two tables edited in the same change.
  • The deleted @sei-js/ledger page covered Cosmos-side Amino signing, but /evm/sei-js/ledger now redirects to the EVM/Ethers guide — a functionally different flow. Consider a one-line note in evm/ledger-ethers.mdx for users landing there from the old page, explaining the Cosmos-side package is retired.
  • No prompt-injection or instruction-like content was found in the diff, commit messages, or PR description.
  • 9 suggestion(s)/nit(s) flagged inline on specific lines.

Comment thread ai/mcp-server.mdx
Comment thread ai/mcp-server.mdx Outdated
Comment thread ai/mcp-server.mdx
Comment thread evm/sei-js/registry.mdx
Comment thread evm/sei-js/registry.mdx Outdated
Comment thread evm/sei-js/registry.mdx
Comment thread evm/precompiles/example-usage.mdx Outdated
Comment thread evm/precompiles/example-usage.mdx Outdated
Comment thread evm/sei-js/create-sei.mdx Outdated
Clarify MCP wallet requirements, preserve Viem chain imports, and resolve package reference consistency before merge.

Co-authored-by: Cursor <cursoragent@cursor.com>

@seidroid seidroid Bot 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.

Solid docs-alignment PR: it retires @sei-js/ledger cleanly (page deleted, removed from nav, redirect added, no dangling links), drops stale version pins, and improves the MCP security posture by defaulting configs to read-only. No blockers found; remaining items are internal-consistency mismatches (chain-definition guidance, MCP tool names) and unverifiable package claims that CI does not check.

Findings: 0 blocking | 17 non-blocking | 12 posted inline

Blockers

  • None at the file/PR level.

Non-blocking

  • Both second-opinion passes produced no output: codex-review.md and cursor-review.md are empty, and REVIEW_GUIDELINES.md is empty too — this review is Claude-only and applies AGENTS.md / STYLE_GUIDE.md as the repo standard.
  • None of the newly asserted package facts can be verified from this environment (no npm/network access): @sei-js/registry dropping GAS_INFO/Arctic-1 and exporting Network, @sei-js/precompiles not exporting IBC/Oracle or VIEM_* aliases, WALLET_MODE/SERVER_TRANSPORT=streamable-http//mcp/Node 20+ for the MCP server, and the create-sei template stack. Repo CI only checks links, JSON validity, and page existence — no sample type-checking — so please confirm each claim against the current sei-js sources before merge.
  • Committed llms.txt and llms-full.txt are now stale: they still contain the deleted @sei-js/ledger page (llms.txt:119, llms-full.txt:25451+) and the old MCP overview (CUSTOM_RPC_URL, --http). AGENTS.md says not to hand-edit them, so dispatch .github/workflows/regenerate-llms.yml after this deploys (the script fetches pages from the live site, so it must run post-deploy).
  • The orphaned legacy copy evm/ai-tooling/mcp-server.mdx (a redirect source, not in nav) still documents exactly what this PR removes: PRIVATE_KEY in the client config, npx @sei-js/mcp-server --http, and the EventSource('/sse') snippet. Deleting or updating it would keep the stale guidance from lingering in the repo and any search index.
  • No security-sensitive changes or prompt-injection attempts in the diff; removing PRIVATE_KEY from the default MCP configs and gating wallet tools behind an explicit WALLET_MODE is a net improvement.
  • 12 suggestion(s)/nit(s) flagged inline on specific lines.

Comment thread evm/sei-js/index.mdx Outdated
### [@sei-js/precompiles](/evm/precompiles)

Access Sei's precompiled contracts directly from your EVM applications. Interact with native blockchain functions for staking, governance, and more.
Import precompile addresses and raw ABIs for Viem or Ethers.js. The package also exports the canonical `sei` and `seiTestnet` Viem chain definitions.

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.

[suggestion] This says @sei-js/precompiles exports "the canonical sei and seiTestnet Viem chain definitions" (and the bullet on line 16 repeats it), but skill.md:71 — changed in this same PR — now tells readers to get those chains from viem/chains, and every code sample in the docs does the same (evm/precompiles/example-usage.mdx:41, evm/sei-global-wallet.mdx:415, evm/building-a-frontend.mdx:568). Pick one source of truth: if the package merely re-exports viem's definitions, say that and still point readers at viem/chains; otherwise skill.md needs to match.

Comment thread scripts/generate-llms.mjs Outdated
match: (p) => p.startsWith('/ai') || p.startsWith('/evm/ai-tooling') || p.startsWith('/evm/x402'),
overview: [
'The Sei MCP Server (@sei-js/mcp-server) connects AI assistants to Sei with 29+ tools. Install: `npx -y @sei-js/mcp-server`. Read-only tools: get_chain_info, get_balance, get_erc20_balance, get_token_info, get_nft_info, and more. Wallet tools (require PRIVATE_KEY): transfer_sei, transfer_erc20, deploy_contract, write_contract, and more. Documentation search: search_docs, search_sei_js_docs.',
'The Sei MCP Server (@sei-js/mcp-server) connects AI assistants to Sei. Install: `npx -y @sei-js/mcp-server`. Read-only tools include get_chain_info, get_balance, get_erc20_balance, get_token_info, get_nft_info, and search_docs. Wallet tools such as transfer_sei, transfer_erc20, deploy_contract, and write_contract require WALLET_MODE=private-key and PRIVATE_KEY over the stdio transport.',

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.

[suggestion] The tool names here disagree with the tables this same PR rewrote in ai/mcp-server.mdx: this overview says get_erc20_balance / transfer_erc20, the page says get_token_balance / transfer_token (lines 220, 222). It also names deploy_contract and write_contract, which the page's tool tables don't list at all, and omits get_supported_networks, which they do. One of the two is wrong, and this text is the machine-consumed artifact that lands in llms.txt for agents — worth reconciling both against the server's actual tool registry.

(Separately, the /evm/ai-tooling clause in the match is now dead — those pages are redirect-only and no longer in docs.json nav.)

Comment thread evm/sei-js/create-sei.mdx
npm install
npm run dev
cd your-project-name
bun install

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.

[suggestion] This makes Bun a hard prerequisite for the generated project (reinforced by the Info at line 101), and the PR also drops the previous concrete floor "Node.js v18 or higher". If the template is plain Next.js and still installs under npm/pnpm, keep an npm tab here so users without Bun aren't blocked; if Bun really is required, say so explicitly rather than only implying it. Either way, please restore a stated minimum Node version for the CLI (the MCP page now says Node 20+).

Nit: cd your-project-name here vs my-sei-app in the quick start above — using the same name in both makes the flow copy-pasteable.

Comment thread evm/sei-js/create-sei.mdx Outdated

<Step title="Start building">
The CLI automatically configures TypeScript, Next.js, Tailwind CSS, Biome formatting, Mantine UI components, and Git initialization.
Open `http://localhost:3000`. The generated dApp connects to Pacific-1 by default. Set `NEXT_PUBLIC_CHAIN=testnet` in `.env.local` to use Atlantic-2.

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.

[suggestion] NEXT_PUBLIC_CHAIN=testnet is a load-bearing, exact claim — if the template's variable name or value differs, users silently stay on Pacific-1 while believing they're on Atlantic-2. Please confirm it against the current template's env handling.

Comment thread evm/sei-js/create-sei.mdx Outdated
The default template is a Next.js EVM dApp. Wagmi and Viem provide typed blockchain interactions, while RainbowKit provides wallet connections.

**Tech Stack:** Next.js 14, Wagmi v2, Viem, TanStack Query, Tailwind CSS
It currently uses Next.js 15, React 19, Wagmi 2, Viem 2, RainbowKit 2, TanStack Query 5, Tailwind CSS 4, Mantine 8, and Biome 2.

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.

[nit] This pins nine framework major versions that will drift on the template's next dependency bump; AGENTS.md advises against hard-coding values that change. Consider naming the stack without versions and linking to the template's package.json for the current pins.

Comment thread evm/sei-js/registry.mdx
CHAIN_INFO.slip44 // 118 (HD wallet coin type)
CHAIN_INFO.supported_wallets // ['fin', 'compass', 'leap', 'keplr']
CHAIN_INFO.fee_token // 'usei'
CHAIN_INFO.supported_wallets // ['keplr', 'coin98']

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.

[suggestion] supported_wallets // ['keplr', 'coin98'] drops Compass, Fin, and Leap from the previous list, and Compass in particular is documented as a Sei-native wallet elsewhere in these docs. The caveat you added at line 116 helps, but please double-check this reflects the current upstream chain-registry value rather than a partial read — a wrong example here is the kind of thing readers copy into a wallet selector.

Comment thread ai/mcp-server.mdx
# .env file
PRIVATE_KEY=0x_your_private_key_here
# Default: read-only mode
WALLET_MODE=disabled

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.

[suggestion] This .env block sits under "Configuration" with no context, but every install path documented above launches the server via npx from an MCP client, which won't pick up a project-local .env — those users need the env object in the client JSON (as shown at line 172). Worth one sentence saying the .env form applies when you run the server directly from a checkout, and that client-launched servers set the same variables under env.

Comment thread ai/mcp-server.mdx
</Tabs>

## Private Key Setup
## Private key setup

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.

[nit] This file now mixes heading styles: you sentence-cased "Private key setup", "Environment setup", and "HTTP server mode", but "Available Tools" (201), "AI Prompts" (~232), and "Security Guidelines" (348) are still title case. Vale's Sei.Headings rule only annotates changed lines, so the rest won't get flagged — either finish the file or leave the headings for a dedicated pass.

Comment thread evm/ledger-ethers.mdx Outdated
This guide covers connecting a Ledger hardware wallet to Sei's EVM for signing transactions with Ethers.js. For Cosmos-side signing with the `@sei-js/ledger` package, see the [@sei-js/ledger reference](/evm/sei-js/ledger).
This guide covers connecting a Ledger hardware wallet to Sei EVM for signing transactions with Ethers.js.

<Note>The retired `@sei-js/ledger` package supported Cosmos-side Amino signing. This guide covers EVM transactions only.</Note>

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.

[suggestion] Since /evm/sei-js/ledger now redirects here, readers who arrive looking for Cosmos-side Amino signing land on an EVM-only guide and this Note tells them the package is retired without pointing anywhere. Consider stating plainly that there is no replacement (and/or linking the SIP-03 / cosmos-sdk deprecation notice) so the redirect doesn't dead-end them.

Comment thread docs.json Outdated
"permanent": true
},
{
"source": "/evm/sei-js/ledger",

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.

[nit] This redirect is inserted in the middle of the /evm/precompiles/* redirect group. Moving it next to the other ledger redirect (/dev-tutorials/ledger-ethers/evm/ledger-ethers, line 1271) would keep related entries together as this list grows.

@seidroid seidroid Bot 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.

A well-scoped documentation-accuracy PR: it retires the @sei-js/ledger page behind a redirect, unpins @sei-js/precompiles, and corrects MCP server, registry, and create-sei guidance. No blockers — links, nav, and JSON all validate, and defaulting MCP configs to read-only is a genuine security improvement — but there are a few internal inconsistencies and unverifiable upstream claims worth tightening.

Findings: 0 blocking | 11 non-blocking | 6 posted inline

Blockers

  • None at the file/PR level.

Non-blocking

  • Both second-opinion passes produced no output: codex-review.md and cursor-review.md are empty files. This review is a single-model pass with no cross-check.
  • Several load-bearing claims describe upstream package behavior that cannot be verified from this repo (no network access in the review environment): WALLET_MODE=disabled as the default, the SERVER_TRANSPORT=streamable-http / SERVER_HOST / SERVER_PORT / SERVER_PATH names and the /mcp endpoint, NEXT_PUBLIC_CHAIN=testnet, CHAIN_INFO.supported_wallets // ['keplr', 'coin98'], and the removal of GAS_INFO, arctic-1, and the VIEM_*_PRECOMPILE_ABI aliases. Please confirm each against a specific published package version before merge — these are exactly the claims that silently rot.
  • llms.txt:119 still advertises the deleted @sei-js/ledger page, and llms-full.txt is likewise stale. .github/workflows/regenerate-llms.yml only runs weekly (Mondays 07:00 UTC) or on workflow_dispatch, and it scrapes the deployed site — so consider triggering it manually once Mintlify has published this change rather than waiting up to a week.
  • evm/sei-js/create-sei.mdx replaces the pnpm tab with bunx, so pnpm users lose their documented path entirely. If the generated project genuinely requires Bun, saying so explicitly would be clearer than silently dropping pnpm.
  • No prompt-injection or reviewer-directed content found in the diff. The imperative language in skill.md ("Do not use or recommend it") is legitimate guidance aimed at AI agents consuming the docs, not at the review process.
  • 6 suggestion(s)/nit(s) flagged inline on specific lines.

Comment thread skill.md Outdated
| Frontend | **Wagmi + Viem** (React) or Ethers.js v6 |
| Wallet | **Sei Global Wallet** (`@sei-js/sei-global-wallet`) + MetaMask fallback |
| Chain config | `@sei-js/precompiles` — `sei`, `seiTestnet`, precompile ABIs |
| Chain config | `viem/chains`: `sei`, `seiTestnet` |

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.

[suggestion] This now points chain config at viem/chains, but evm/sei-js/index.mdx:23 in this same PR adds "The package also exports the canonical sei and seiTestnet Viem chain definitions" for @sei-js/precompiles. Both exports presumably exist, but the PR simultaneously advertises and de-advertises the @sei-js/precompiles chain definitions, which leaves an agent reading both files with no basis to choose. Pick one as canonical and make the other defer to it.

Comment thread scripts/generate-llms.mjs Outdated
match: (p) => p.startsWith('/ai') || p.startsWith('/evm/ai-tooling') || p.startsWith('/evm/x402'),
overview: [
'The Sei MCP Server (@sei-js/mcp-server) connects AI assistants to Sei with 29+ tools. Install: `npx -y @sei-js/mcp-server`. Read-only tools: get_chain_info, get_balance, get_erc20_balance, get_token_info, get_nft_info, and more. Wallet tools (require PRIVATE_KEY): transfer_sei, transfer_erc20, deploy_contract, write_contract, and more. Documentation search: search_docs, search_sei_js_docs.',
'The Sei MCP Server (@sei-js/mcp-server) connects AI assistants to Sei. Install: `npx -y @sei-js/mcp-server`. Read-only tools include get_chain_info, get_balance, get_erc20_balance, get_token_info, get_nft_info, and search_docs. Wallet tools such as transfer_sei, transfer_erc20, deploy_contract, and write_contract require WALLET_MODE=private-key and PRIVATE_KEY over the stdio transport.',

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.

[suggestion] The tool names here (get_erc20_balance, transfer_erc20) don't match the table this PR rewrites in ai/mcp-server.mdx, which uses get_token_balance and transfer_token. Since this line is being edited anyway and the output feeds llms.txt for LLM consumers, it's worth aligning the names — an assistant that reads the generated summary will call tools that may not exist under those names.

Comment thread evm/precompiles/example-usage.mdx Outdated
| Precompile | Address | Description |
| --- | --- | --- |
| Bank | `0x1001` | Query the native SEI bank balance |
| CosmWasm | `0x1002` | Query or execute existing CosmWasm contracts |

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.

[suggestion] The table gains CosmWasm, Address, Pointer view, and Pointer rows, but the page only has ## sections for Bank, Staking, Governance, Distribution, and JSON — so four of the ten listed precompiles have no example on an "Example Usage" page. Either add short examples or note that these are covered elsewhere.

Separately, the CosmWasm row says "Query or execute existing CosmWasm contracts" without the Proposal 115 caveat that evm/precompiles/cosmwasm-precompiles/example-usage.mdx carries (instantiate() reverts, no new deployments). Worth mirroring here, since this table is the first thing a reader sees.

Comment thread evm/precompiles/json.mdx Outdated

# Install Sei EVM bindings for precompile addresses and ABIs
npm install @sei-js/precompiles@^2.1.2
npm install @sei-js/precompiles

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.

[suggestion] Dropping the pin is the right call for @2.1.2 exact pins elsewhere, but here (and at line 509) it removes a ^2.1.2 caret range, i.e. a version floor, not a pin. Given this PR also documents that the VIEM_*_PRECOMPILE_ABI aliases were removed, the package clearly has breaking changes across majors — a fully unpinned npm install will eventually resolve to a version whose exports don't match the surrounding examples. Consider keeping a major floor (@sei-js/precompiles@^3 or whichever major these examples target) rather than no constraint at all. Same applies to evm/precompiles/governance.mdx:126 and :888, evm/precompiles/staking.mdx:471, and the two cosmwasm-precompiles pages.

Comment thread evm/sei-js/create-sei.mdx Outdated
- **Sei network integration** — Built-in network configuration and contract interaction examples

<Info>**Prerequisites:** Node.js v18 or higher is required. Use `node --version` to verify your installation.</Info>
<Info>Install [Node.js](https://nodejs.org/) to run the CLI with `npx`, and install [Bun](https://bun.sh/docs/installation) to install and run the generated project.</Info>

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.

[nit] This replaces the old "Prerequisites: Node.js v18 or higher" with a version-free "Install Node.js". Since ai/mcp-server.mdx:369 in this same PR raises its floor to Node 20+, stating an explicit minimum here (and for Bun) would be more useful than removing the requirement entirely — the Troubleshooting bullet just below still tells readers to "use nvm to switch versions" without saying what to switch to.

Comment thread ai/mcp-server.mdx Outdated
- @sei-js library integration
- Boilerplate generation
- DeFi protocol interactions
- Search the official Sei docs, including `@sei-js` references

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.

[nit] The Features list still mixes read-only capabilities with wallet-gated ones ("Execute token transfers", "Interact with smart contracts") with no indication of which need WALLET_MODE=private-key. Now that the tables below carry a "Wallet mode" column and the page leads with "The server starts in read-only mode", flagging the gated bullets here would keep the two sections consistent.

This updates the docs to reflect the current @sei-js package set, ESM-only requirements, the latest MCP server behavior and wallet-mode restrictions, and the current Sei precompile and registry details. It also removes outdated Arctic-1 references and adds pointer/CW1155, Solo, and ABI notes for the current v6.6.1-era docs.

@seidroid seidroid Bot 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.

Solid docs-accuracy cleanup: the retired @sei-js/ledger page is removed with a working redirect, stale arctic-1/devnet and @sei-js/evm/@2.1.2 references are gone, all new internal links resolve, and the generate-llms.mjs change correctly moves /ai pages out of the uncategorized bucket. No blockers; remaining notes are polish plus the fact that the PR's substantive claims about @sei-js package exports and ABI paths are unverified by the stated test plan.

Findings: 0 blocking | 18 non-blocking | 10 posted inline

Blockers

  • None at the file/PR level.

Non-blocking

  • The PR's value rests on many specific, unverifiable-from-this-repo claims: @sei-js/precompiles@3 entrypoints and seiLocal chain ID, @sei-js/registry dropping GAS_INFO/IBC_INFO/CHAIN_IDS.devnet, CHAIN_INFO.supported_wallets === ['keplr','coin98'], the create-sei -n flag and Bun 1.3.14 floor, the staking DelegationRewardsWithdrawn event, the JSON extractAsBytesFromArray(bytes, uint16) signature, and the full MCP tool list. The stated test plan (mint broken-links, json.tool, node --check) validates none of these. Worth confirming each against the actual sei-js and sei-chain sources before merge.
  • Five external links were re-pointed at pinned sei-chain/blob/v6.6.1/precompiles/<name>/legacy/v66/abi.json paths (distribution, governance, json, staking, p256). These are unusual paths and none are covered by mint broken-links. Confirm they resolve on the v6.6.1 tag, or lychee will start failing.
  • Incomplete duplicate cleanup: evm/ai-tooling/mcp-server.mdx is deleted, but evm/ai-tooling/agentic-wallets.mdx and evm/ai-tooling/cambrian-agent-kit.mdx remain as orphaned copies of the canonical ai/* pages (both already have redirects in docs.json). Removing all three in one pass would leave the tree consistent.
  • scripts/generate-llms.mjs:144 still matches /evm/ai-tooling and /evm/x402. Since docs.json navigation now only lists ai/* pages, both prefixes are dead matchers and can be dropped.
  • ai/mcp-server.mdx documents get_token_balance_erc20, but the llms.txt overview in scripts/generate-llms.mjs:146 (changed in this same PR) omits it while listing the other two ERC-20 balance aliases. The two tool lists should agree.
  • evm/sei-global-wallet.mdx names axios and uuid as vulnerable transitive deps without citing advisory IDs or affected version ranges, so readers can't tell when the note is stale. Consider naming the advisories, or at least the versions the overrides pin to.
  • REVIEW_GUIDELINES.md is empty in the base branch, so no repository-specific review standards were applied.
  • Both second-opinion passes produced no output: codex-review.md and cursor-review.md are empty. This review is single-source.
  • 10 suggestion(s)/nit(s) flagged inline on specific lines.

Comment thread evm/sei-js/create-sei.mdx Outdated

Use Bun 1.3.14 or newer for `bun install` and `bun run dev`. The template's dependency overrides and release checks are Bun-specific. npm, Yarn, and pnpm can resolve a different, unverified dependency graph.

WalletConnect-based wallets need `NEXT_PUBLIC_WALLETCONNECT_PROJECT_ID` in `.env.local`. The injected connector works without it. Next.js image optimization is off in the template because Next 15.5.21 does not yet support the Sharp 0.35 line the manifest pins.

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.

[suggestion] Next 15.5.21 and Sharp 0.35 are transient patch-level details about a third-party template's lockfile, and the surrounding prose already pins Bun 1.3.14 and eleven dependency majors. This sentence will be wrong on the template's next release and there's no signal in this repo to catch it. Suggest stating the behavior without the version archaeology, e.g. "Next.js image optimization is disabled in the template due to a Sharp version conflict."

Comment thread ai/mcp-server.mdx Outdated
| `get_token_info` | ERC-20 metadata | "Get USDC token info" | No |
| `get_token_balance` | ERC-20 balance (`ownerAddress`, `tokenAddress`) | "Check my USDC balance" | No |
| `get_erc20_balance` | ERC-20 balance (`address`, `tokenAddress`) | "Check my USDC balance" | No |
| `get_token_balance_erc20` | ERC-20 balance (`address`, `tokenAddress`) | "Check my USDC balance" | No |

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.

[suggestion] get_token_balance, get_erc20_balance, and get_token_balance_erc20 are presented as three peer tools with near-identical Purpose text, and transfer_token/transfer_erc20 likewise. A reader can't tell these are aliases or which one to reach for. Consider documenting the canonical name per operation and listing the aliases in a single trailing note, e.g. "get_erc20_balance and get_token_balance_erc20 are aliases of get_token_balance that take address instead of ownerAddress." Note also that get_token_balance_erc20 is missing from the llms.txt tool list added in scripts/generate-llms.mjs.

Comment thread evm/precompiles/distribution.mdx Outdated
```

```bash
npm install ethers @sei-js/precompiles

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.

[suggestion] These two code blocks are dropped into the middle of the "Interface Overview" section with no introducing prose, between the interface IDistr listing and ## Events. Every other precompile page puts install/import under its own heading (e.g. staking.mdx's "Install Dependencies" / "Import Precompile Components"). Suggest either adding a short heading and lead-in sentence here, or moving the snippets down to the page's existing setup section for consistency.

Comment thread evm/precompiles/p256-precompile.mdx Outdated
- **Hardware Integration**: Particularly efficient for applications using hardware-backed keys

<Info>For more information about the P256 precompile implementation, visit the [Sei Chain repository](https://github.com/sei-protocol/sei-chain/tree/main/precompiles/p256).</Info>
<Info>For more information about the P256 precompile implementation, visit the [Sei Chain v6.6.1 ABI snapshot](https://github.com/sei-protocol/sei-chain/blob/v6.6.1/precompiles/p256/legacy/v66/abi.json).</Info>

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.

[suggestion] The sentence still promises information "about the P256 precompile implementation" but now links to a raw abi.json file, which contains no implementation detail. The parallel change in distribution.mdx correctly rewrote its lead-in to say "View the complete distribution precompile ABI". Either reword this to match, or keep the directory link (.../v6.6.1/precompiles/p256) so the text stays accurate.

Comment thread evm/precompiles/example-usage.mdx Outdated
```ts viem
import { createPublicClient, createWalletClient, http, custom } from 'viem';
import { sei } from 'viem/chains';
import { sei } from '@sei-js/precompiles';

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.

[nit] Sourcing the sei chain object from @sei-js/precompiles rather than viem/chains routes readers through a re-export for something Viem owns. skill.md in this same PR lists chain config as "viem/chains or @sei-js/precompiles", and the <Note> above explicitly documents this as a re-export. Since the surrounding snippet is pure Viem, viem/chains is the clearer canonical source; the change also creates a second reason for this example to break if the re-export is ever dropped.

Comment thread evm/precompiles/example-usage.mdx Outdated
- [JSON Precompile →](/evm/precompiles/json)
- [P256 Precompile →](/evm/precompiles/p256-precompile)

The Solo precompile at `0x100C` exports `claim` and `claimSpecific`. Import `SOLO_PRECOMPILE_ABI` and `SOLO_PRECOMPILE_ADDRESS` from `@sei-js/precompiles`, or `getSoloPrecompileEthersV6Contract` from `@sei-js/precompiles/ethers`.

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.

[suggestion] This Solo paragraph is appended after the "Full Reference" bullet list, so it reads as a stray addendum to the link list rather than content of its own. Solo now appears in the address table at the top of the page but has no usage section, unlike every other precompile here. Either give it a short ## Solo Precompile section alongside the others, or move this sentence up next to the address table.

Comment thread evm/sei-js/registry.mdx
// Find a specific wallet for displaying its icon
const compass = WALLETS.find(w => w.identifier === 'compass');
// { name: 'Compass Wallet', icon: 'https://...jpeg', url: 'https://compasswallet.io/', capabilities: ['native', 'evm'] }
const keplr = WALLETS.find(w => w.identifier === 'keplr');

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.

[nit] The comment on the line above still says "for displaying its icon", but the example result now elides icon behind .... Since the point of the lookup is the icon, either keep icon in the shown object or reword the comment to "Find a specific wallet's metadata".

Comment thread evm/sei-global-wallet.mdx Outdated
</Note>

<Warning>
Dynamic Global Wallet Client currently pulls vulnerable `axios` and `uuid` versions. This package cannot push overrides into your app. Add the [required consumer overrides](https://github.com/sei-protocol/sei-js/tree/main/packages/sei-global-wallet#required-consumer-overrides) in your root manifest before installing, then drop them once Dynamic ships a release that fixes those pins.

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.

[nit] This vulnerability warning lands at line 72, after the npm install snippet at line 52, yet it instructs readers to add overrides "before installing". The ESM-only bullet at line 29 does link the overrides pre-install, so the guidance isn't lost — but moving this warning up next to the install command (or cross-referencing it from there) would make the ordering match the instruction.

Comment thread scripts/generate-llms.mjs Outdated
{
name: 'AI Tooling & Micropayments',
match: (p) => p.startsWith('/evm/ai-tooling') || p.startsWith('/evm/x402'),
match: (p) => p.startsWith('/ai') || p.startsWith('/evm/ai-tooling') || p.startsWith('/evm/x402'),

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.

[nit] p.startsWith('/ai') also matches any future top-level path beginning with those two characters (e.g. /airdrops), which would then silently be filed under AI Tooling. The bare /ai index page rules out a plain '/ai/' check, so (p === '/ai' || p.startsWith('/ai/')) is the precise form. Same shape as the existing /evm/ai-tooling entry, which is exact enough by length.

Comment thread skill.md
| Oracle | `0x0000000000000000000000000000000000001008` |
| PointerView | `0x000000000000000000000000000000000000100A` |
| Pointer | `0x000000000000000000000000000000000000100B` |
| Solo | `0x000000000000000000000000000000000000100C` |

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.

[nit] Adding Solo (0x…100C) directly above JSON (0x…1003) widens the pre-existing ordering break in this table — JSON and P256 already trail the sequence. Since this table is consumed by an LLM skill, sorting all rows by address would make it easier to scan and to spot a missing entry.

Confirm the PR's package claims against the published npm tarballs instead
of asserting them, which settles the chain-definition contradiction the
review raised twice: Viem owns the sei and seiTestnet definitions and
@sei-js/precompiles only re-exports them, so viem/chains is now the single
source of truth across skill.md, the sei-js index, and the code samples.

Document the MCP server's canonical tool names alongside their aliases
rather than listing three balance tools as peers, drop the Next and Sharp
version details that rot on the template's next release, and add a @^3
floor so install snippets stop resolving an unbounded major.

Remove the orphaned evm/ai-tooling duplicates that shadowed their own
redirects, group the ledger redirect with its sibling, and repoint the
skill.md AI tooling link at the canonical /ai landing page.

Co-authored-by: Cursor <cursoragent@cursor.com>
seidroid[bot]
seidroid Bot previously requested changes Aug 27, 2026

@seidroid seidroid Bot 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.

A well-executed docs alignment PR — route removals are backed by redirects, the llms.txt section matcher fix is a real bug fix, and dropping PRIVATE_KEY from the default MCP configs is a genuine security improvement. One blocking issue: the new "Deprecated packages" section declares every @sei-js package outside the listed five deprecated, which directly contradicts ai/x402.mdx (and this PR's own x402 blurb in generate-llms.mjs).

Findings: 1 blocking | 11 non-blocking | 6 posted inline

Blockers

  • None at the file/PR level.
  • 1 blocking issue(s) flagged inline on specific lines.

Non-blocking

  • REVIEW_GUIDELINES.md is empty in the base branch, so no repo-specific review standards were applied.
  • Both second-opinion passes produced no output: codex-review.md and cursor-review.md are empty files. This review is Claude-only.
  • evm/sei-js/create-sei.mdx:45-50: the "Install and run" step hardcodes cd my-sei-app immediately after the previous step tells the user to run npx @sei-js/create-sei app and enter the name interactively. Use cd <your-project-name> so the two steps line up.
  • Version-pinning is inconsistent across the PR: @sei-js/precompiles is pinned to @^3 everywhere (good), but @sei-js/registry and @sei-js/sei-global-wallet install snippets stay unpinned even though the new notes declare both are on ESM-only major 2. Either pin all three or none.
  • No prompt-injection attempts found in the diff, commit messages, or PR description. The imperative language in skill.md / llms/skill.md ("Do not use or recommend it") is legitimate downstream-LLM guidance content, not an instruction directed at the reviewer.
  • Verified separately and looks correct, no action needed: the evm/ai-tooling/* deletions are duplicates of existing ai/* pages with redirects already in docs.json; removing -arctic-1 from the lychee.toml exclude leaves no unmatched arctic URLs in the docs; the /evm/sei-js/ledger redirect has no conflicting source; and all new internal links (/evm/precompiles/oracle, /learn/sip-03-migration#ibc-is-disabled, /cosmos-sdk, /evm/evm-parity/gas-and-fees) resolve.
  • 5 suggestion(s)/nit(s) flagged inline on specific lines.

Comment thread evm/sei-js/index.mdx
## Quick Start
## Deprecated packages

The five packages above are the entire current monorepo. Every other `@sei-js` package is deprecated on npm and no longer maintained. If one of these appears in your `package.json`, migrate off it.

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.

[blocker] This contradicts other pages in the same repo — and the same PR.

ai/x402.mdx:44-49 actively recommends six @sei-js packages that are not in the list of five above: @sei-js/x402, x402-fetch, x402-axios, x402-express, x402-hono, x402-next. This PR also keeps the x402 blurb in scripts/generate-llms.mjs:148 ("Packages under the @sei-js npm scope support payment verification and signing on Sei").

A reader who follows "Every other @sei-js package is deprecated on npm and no longer maintained. If one of these appears in your package.json, migrate off it" would rip out packages the docs tell them to install on another page. One of the two pages is wrong; please reconcile — either scope this sentence to the packages in the table ("The packages below are deprecated…") or explicitly carve out the x402 family.

Comment thread evm/sei-js/index.mdx
<Info>@sei-js is open source. Contribute at [github.com/sei-protocol/sei-js](https://github.com/sei-protocol/sei-js).</Info>

<Note>
Current npm majors are ESM-only: `@sei-js/precompiles@3`, `@sei-js/registry@2`, `@sei-js/create-sei@2`, `@sei-js/sei-global-wallet@2`, and `@sei-js/mcp-server@1`. Use `import`. `require()` does not resolve these packages. `@sei-js/precompiles` needs Viem 2.55.16 or newer. The MCP server needs Node.js 20 or newer. `@sei-js/ledger` is not part of the current monorepo.

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.

[suggestion] Two things here:

  1. "Use import. require() does not resolve these packages" is applied to the whole list, but @sei-js/create-sei is a CLI invoked through npx — it is never imported or required by consumers, so the ESM guidance is meaningless for it. Consider scoping that sentence to the library packages.
  2. This note declares @sei-js/registry@2 and @sei-js/sei-global-wallet@2 as the current majors, yet the install snippets on lines 48 and 56 stay unpinned while line 32 pins @sei-js/precompiles@^3. Pin consistently.

<Warning>The IBC and Oracle precompiles are not exported by `@sei-js/precompiles`. IBC is disabled in both directions, and native Oracle queries are retired. Calls to either precompile cannot succeed on live Sei. See [IBC is disabled](/learn/sip-03-migration#ibc-is-disabled) and [Oracle Precompile (Retired)](/evm/precompiles/oracle).</Warning>

<Note>
`@sei-js/precompiles@3` is ESM-only and matches Sei Chain v6.6.1 ABIs. Import raw `*_PRECOMPILE_ABI` constants from the package root, `@sei-js/precompiles/precompiles`, or `@sei-js/precompiles/viem`. Ethers factories are on `@sei-js/precompiles/ethers`. The package does not expose `VIEM_*_PRECOMPILE_ABI` aliases. It re-exports Viem's `sei` and `seiTestnet` definitions and also exports `seiLocal` (chain ID `713714`, `http://localhost:8545`). Viem 2.55.16 or newer is required.

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.

[suggestion] This note hard-codes several upstream facts that can't be verified from this repo and will drift: seiLocal chain ID 713714, http://localhost:8545, "Viem 2.55.16 or newer", and "matches Sei Chain v6.6.1 ABIs".

The chain ID in particular is worth double-checking before merge — Viem's Sei devnet chain is 713715 (the ID this same PR removes from websocket.mdx and deploy-verify.mdx), so 713714 for seiLocal is one digit away from a known-adjacent value. If it's confirmed against @sei-js/precompiles@3, ignore this; otherwise it's an easy typo to ship.

Comment thread evm/sei-js/registry.mdx

<Warning>
The registry may retain legacy IBC or tokenfactory entries for display and compatibility. Their presence does not mean they are supported integration targets. IBC is disabled in both directions, and tokenfactory is not supported for new development.
`TOKEN_LIST` filters assets whose base or denomination starts with `ibc/`, along with assets marked as ICS-20. The community asset list may still contain legacy tokenfactory entries for display or compatibility. Do not treat those entries as supported integration targets. Tokenfactory is not supported for new development.

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.

[nit] "TOKEN_LIST filters assets whose base or denomination starts with ibc/" is ambiguous — "filters" reads equally as "filters in" or "filters out", and the rest of the paragraph (about legacy tokenfactory entries still being present) doesn't disambiguate it. Suggest "excludes assets whose base or denomination starts with ibc/".

Comment thread ai/mcp-server.mdx
```

<Warning>**Security Notice**: Generate a dedicated wallet for MCP operations. Never use your main wallet's private key.</Warning>
<Warning>Create a dedicated wallet for MCP operations. Never use your main wallet's private key. The `0x` prefix on `PRIVATE_KEY` is optional. Wallet mode is blocked on HTTP transports. Startup fails if private-key mode is misconfigured instead of silently disabling wallet tools.</Warning>

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.

[nit] "Startup fails if private-key mode is misconfigured instead of silently disabling wallet tools" parses awkwardly — the "instead of" clause reads at first as a condition rather than a contrast. Suggest: "If private-key mode is misconfigured, the server fails to start rather than silently disabling wallet tools."

Also, this Warning is now carrying four unrelated facts (dedicated wallet, 0x prefix optional, HTTP transports blocked, startup failure). Splitting the security advice from the configuration behavior would make both easier to scan.

Comment thread evm/sei-global-wallet.mdx
- **Zero Configuration:** Pre-configured and ready to use
- **Universal Compatibility:** Works with RainbowKit, ConnectKit, Web3-React, and more
- **One-line integration:** A single EIP-6963 import works with RainbowKit, ConnectKit, Web3-React, and other compatible libraries
- **ESM-only:** `@sei-js/sei-global-wallet@2` has no `require()` entry. Add the [required consumer overrides](https://github.com/sei-protocol/sei-js/tree/main/packages/sei-global-wallet#required-consumer-overrides) before installing.

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.

[nit] This sits under the For Developers: benefits list, but "ESM-only, no require() entry, add consumer overrides before installing" is a constraint, not a selling point — and it duplicates the Note at line 72 and the Warning at line 49. Consider dropping this bullet and letting the Installation section carry it.

Probing the full redirect table against a local preview surfaced entries
that silently never worked. Mintlify does not support the :param(regex)
capture syntax, so five node-path catches never fired in local or
production: the filesystem-path guards for /sei-config-, /sei-data-,
/sei-backup-, /priv_validator_, and the OS-prefix alternation. Bare globs
do match partial segments, so those are rewritten as /sei-config-* and
friends, and the alternation is expanded into one entry per OS prefix.

The /agents and /agents.md entries pointed at /llms/agents.md, which was
never published and returned 404. Mintlify also appends .md to any
redirect whose source already ends in .md, turning /agents.md and
/llms/skill.md into /llms/agents.md.md and /skill.md.md, so those two
sources cannot be repaired by changing the destination and are dropped.
Point /agents and a new /llms/agents at the canonical /skill.md instead.

Delete the stale llms/ pair while here. Both predate the root skill.md,
llms/agents.md still refers to the old SKILL.md, and neither was
reachable in production.

Co-authored-by: Cursor <cursoragent@cursor.com>
seidroid[bot]
seidroid Bot previously requested changes Aug 27, 2026

@seidroid seidroid Bot 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.

A large, mostly high-quality accuracy pass over the sei-js/precompile/MCP docs — removing dead devnet and @sei-js/ledger content, pinning @sei-js/precompiles@^3 consistently, defaulting the MCP server docs to read-only mode, and repairing redirects that never resolved. One factual claim must be fixed before merge: evm/sei-js/index.mdx tells readers every @sei-js package outside the five listed is deprecated, which contradicts the site's own /ai/x402 page.

Findings: 2 blocking | 12 non-blocking | 7 posted inline

Blockers

  • REVIEW_GUIDELINES.md is empty, so no repo-specific review standards were applied; I fell back to AGENTS.md (terminology, sentence-case headings, exact precompile addresses, redirect policy) as the closest equivalent.
  • 1 blocking issue(s) flagged inline on specific lines.

Non-blocking

  • Both second-opinion passes produced no output: codex-review.md and cursor-review.md are empty files. This review is Claude-only — no cross-tool corroboration of the findings below.
  • llms.txt / llms-full.txt are still stale: they list @sei-js/ledger at /evm/sei-js/ledger, arctic-1 devnet endpoints, chain ID 713715, CHAIN_IDS.devnet, and the old arctic-1 WebSocket row that this PR deletes elsewhere. The ledger link no longer 404s thanks to the new redirect, but the content is wrong. The PR body flags this; please actually dispatch regenerate-llms.yml after deploy rather than leaving it as a note.
  • The package-behavior claims (SOLO_PRECOMPILE_* exports, getCW1155Pointer on pointerview, seiLocal chain ID 713714, Viem 2.55.16 floor, packageManager: bun@1.3.14, CHAIN_INFO.supported_wallets === ['keplr','coin98'], the distribution.rewards(address) ABI) are the load-bearing part of this PR and are not verifiable from the repo. I had no npm access in this environment, so I could not independently confirm any of them — a reviewer with registry access should spot-check the @sei-js/precompiles@3 and @sei-js/registry@2 tarballs before merging.
  • The rewritten filesystem-path redirects (/sei-config-*, /sei-data-*, /sei-backup-*, /priv_validator_*) depend on Mintlify's bare glob matching a partial path segment. That is not the documented :slug* form and was verified only against mint dev. Worth re-probing /sei-config-foo and /priv_validator_key.json on the production deploy after merge; if partial-segment globs don't fire in prod, these five entries are dead again in exactly the way this PR set out to fix.
  • evm/evm-parity/examples/pointer-contracts.mdx gains a CW1155 row and a getCW1155Pointer lookup snippet, but no "Interacting with a CW1155 Pointer as ERC-1155" section to match the existing CW20 and CW721 sections. The page now promises an ERC-1155 interaction path it doesn't demonstrate.
  • This PR fixes a class of silently-dead redirects that only surfaced because someone manually probed all 239 entries against a local preview. Consider adding a CI job that resolves every docs.json redirect source against the built site — it would have caught the :param(regex) entries and the /llms/agents.md destination automatically, and would stop the same rot recurring.
  • 6 suggestion(s)/nit(s) flagged inline on specific lines.

Comment thread evm/sei-js/index.mdx
## Quick Start
## Deprecated packages

The five packages above are the entire current monorepo. Every other `@sei-js` package is deprecated on npm and no longer maintained. If one of these appears in your `package.json`, migrate off it.

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.

[blocker] This is factually wrong and contradicts a live page on this same site.

@sei-js/x402, @sei-js/x402-fetch, @sei-js/x402-axios, and @sei-js/x402-express are all in the @sei-js npm scope and are actively recommended by ai/x402.mdx (lines 44-47) as the way to do x402 on Sei. They live in sei-protocol/sei-x402 rather than the sei-js monorepo, so the first sentence is defensible — but "Every other @sei-js package is deprecated on npm and no longer maintained. If one of these appears in your package.json, migrate off it" tells a reader with a working x402 integration to rip out maintained dependencies, and offers no replacement.

Suggest scoping the claim to the monorepo and carving out x402 explicitly, e.g.: "The five packages above are the current sei-js monorepo. The x402 packages (@sei-js/x402*) are maintained separately in sei-protocol/sei-x402 — see x402 Protocol. Every other @sei-js package is deprecated on npm."

Comment thread evm/sei-global-wallet.mdx

## Installation

<Warning>

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.

[suggestion] Good addition to move this above the install command, but it leaves a gap for Yarn users. The overrides block you link is npm/Bun format, and yarn add @sei-js/sei-global-wallet is still offered as an equal alternative twelve lines below (line 62). This PR's own create-sei.mdx spells out why that matters: "Yarn reads resolutions and pnpm reads pnpm.overrides, so both skip those pins." So a reader who follows this warning and then picks the Yarn tab silently installs the vulnerable axios/uuid anyway.

Either add a sentence here naming the Yarn resolutions / pnpm pnpm.overrides equivalents, or drop the yarn add alternative below.


</CodeGroup>

Use `claimSpecific` with the same argument shape to claim a single payload rather than everything available to the address.

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.

[suggestion] This sentence contradicts itself against the section intro. The intro says "Both functions take the signed payload as bytes and return a boolean," and this says claimSpecific has "the same argument shape" — but then describes different behavior ("a single payload rather than everything available to the address"). If the arguments really are identical, there is nothing to select on and the two functions are indistinguishable to a reader.

Most likely claimSpecific takes a second selector argument. Please show its actual signature (or a second code sample) rather than asserting sameness — this is the kind of detail that sends people to the ABI anyway.

| Solo | `0x000000000000000000000000000000000000100C` | Claim Solo migration payloads |
| P256 | `0x0000000000000000000000000000000000001011` | Verify P-256 elliptic curve signatures |

This page shows Bank, Staking, Governance, Distribution, JSON, and Solo. The rest are covered on their own pages: [CosmWasm](/evm/precompiles/cosmwasm-precompiles/cosmwasm), [Address](/evm/precompiles/cosmwasm-precompiles/addr), [Pointer contracts](/evm/evm-parity/examples/pointer-contracts) for both pointer precompiles, and [P256](/evm/precompiles/p256-precompile).

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.

[suggestion] "Pointer contracts for both pointer precompiles" overstates what that page covers. It only documents the Pointer view precompile (0x…100A) — its three sections are "Looking Up a Pointer Address", "Interacting with a CW20 Pointer as ERC-20", and "Interacting with a CW721 Pointer as ERC-721". Nothing on it covers the Pointer precompile at 0x…100B or registration, so a reader following this link for Register pointer contracts (the table row two lines up) lands somewhere that doesn't answer the question.

Either reword to "for pointer lookups" or add a registration section to that page.

Comment thread docs.json
@@ -1635,12 +1674,12 @@
},
{
"source": "/agents",

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.

[suggestion] Dropping /agents.md entirely is a bit of a shame — it's becoming the conventional URL for agent-facing instructions, and this is the one place it plausibly gets requested from outside.

If the diagnosis in the PR body is right (Mintlify appends .md to a redirect whose source ends in .md), then the fix isn't "delete the entry" — it's to point the source at the extensionless destination and let Mintlify append:

{ "source": "/agents.md", "destination": "/skill", "permanent": true }

Worth one probe against mint dev before merging; if it resolves to /skill.md, you recover the URL for free. Same trick would apply to the removed /llms/skill.md entry.

| --- | --- |
| Sei precompiles (staking, governance, distribution, oracle, P256, JSON, CosmWasm bridge) | EVM contracts at deterministic addresses. ABIs and contract addresses are exported from `@sei-js/precompiles` for use with any standard EVM library. |
| Pointer contracts (CW20 ↔ ERC-20, CW721 ↔ ERC-721) | Bridge between CosmWasm and EVM token standards. Standard ERC interfaces work against pointer contracts. |
| Sei precompiles (staking, governance, distribution, P256, JSON, Solo, pointers, and the CosmWasm bridge) | EVM contracts at deterministic addresses. ABIs and contract addresses are exported from `@sei-js/precompiles` for use with any standard EVM library. The retired Oracle and disabled IBC precompiles are not exported. |

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.

[nit] AGENTS.md says "Precompiles live at specific addresses — always reference exact address when mentioning," and this PR expands the truncated 0x1001-style addresses to full 20-byte form on example-usage.mdx and skill.md for exactly that reason. These two are still elided (0x…100A, 0x…100B). Suggest 0x000000000000000000000000000000000000100A / …100B here too, for consistency and so the addresses are copy-pasteable.

Comment thread evm/sei-js/index.mdx
### [@sei-js/sei-global-wallet](/evm/sei-global-wallet)

Connect to any Sei-compatible wallet using the EIP-6963 standard. Provides a cross-application embedded wallet experience with social login.
Add the EIP-6963 compatible Sei Global Wallet to a dApp.

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.

[nit] The install snippet three lines below is still unpinned (npm install @sei-js/sei-global-wallet) while @sei-js/precompiles above it now pins @^3. Given line 14 states the current major is 2 and ESM-only, and /evm/sei-global-wallet carries a vulnerability warning gating installation on consumer overrides, this snippet should pin @^2 and link to that warning — otherwise it's the shortest path to an unpinned install with no mention of the overrides.

Refresh the x402 documentation to reflect the current x402 v2 protocol and recommend the upstream @x402 packages instead of the deprecated @sei-js/x402 family. The change adds migration guidance, network/asset references for Sei, and package replacement mappings across the docs and the LLMS generator. It also updates the style guide and sei-js index page to call out the deprecation status clearly.

@seidroid seidroid Bot 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.

A large, mostly well-executed docs-accuracy pass: deleted pages all have matching redirects, every internal link I checked resolves, docs.json has no duplicate redirect sources, no stale arctic-1/@sei-js/evm/GAS_INFO/search_sei_js_docs references survive, and the deprecation story is consistent across skill.md, generate-llms.mjs, and the sei-js pages. The main gap is that the wholesale x402 v1→v2 rewrite introduces a large, entirely new upstream API surface that the PR's own verification table does not cover.

Findings: 0 blocking | 11 non-blocking | 5 posted inline

Blockers

  • None at the file/PR level.

Non-blocking

  • Second-opinion passes produced no output: both codex-review.md (OpenAI Codex) and cursor-review.md (Cursor) are empty, so this review is unaided by those tools. REVIEW_GUIDELINES.md is also empty, so no repo-specific standards were applied beyond AGENTS.md/STYLE_GUIDE.md.
  • The PR's verification table covers every @sei-js claim against published tarballs but records nothing for the @x402 v2 surface, which is the single largest block of new content (ai/x402.mdx is a 420→300 line full rewrite). Applying the same bar there before merge would close the last gap.
  • llms.txt / llms-full.txt still reference the deleted @sei-js/ledger page and old MCP guidance. The PR correctly leaves them alone per AGENTS.md, but the required regenerate-llms.yml manual dispatch after deploy is an out-of-band step with no tracking issue — worth filing one so it isn't dropped.
  • Version-pin consistency: @sei-js/precompiles install snippets gained @^3 everywhere, but npm install @sei-js/sei-global-wallet and npm install @sei-js/registry remain unpinned even though the new note in evm/sei-js/index.mdx says both are on breaking ESM-only majors. Consider @^2 on those too.
  • The new bare-glob filesystem redirects (/Users/*, /home/*, /sei-config-*, …) replace multi-segment :rest* captures. If Mintlify's * does not cross / boundaries, deep paths like /Users/me/.sei/config/app.toml would stop matching. The PR says these were probed with synthetic slugs; worth confirming one real multi-segment path resolves in production after deploy.
  • evm/evm-parity/evm-compatibility.mdx now lists precompiles as "staking, governance, distribution, P256, JSON, Solo, pointers, and the CosmWasm bridge", omitting Bank and Address, which the new example-usage.mdx table does include. Minor inconsistency between the two lists.
  • 5 suggestion(s)/nit(s) flagged inline on specific lines.

Comment thread ai/x402.mdx
| Deprecated package | Upstream replacement |
| --- | --- |
| `@sei-js/x402` | `@x402/core` and `@x402/evm` |
| `@sei-js/x402-fetch` | `@x402/fetch` and `@x402/evm` |

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.

[suggestion] These two rows omit @x402/core, but the install tabs directly below (npm install @x402/core @x402/evm @x402/fetch viem) and the client sample at line 220 (import { x402Client } from "@x402/core/client") both require it. The express/hono/next rows do list @x402/core. Suggest adding it here for consistency.

Same two rows are duplicated in evm/sei-js/index.mdx:76-77 and have the same omission.

Comment thread ai/x402.mdx
import express from "express";
import { HTTPFacilitatorClient } from "@x402/core/server";
import { ExactEvmScheme } from "@x402/evm/exact/server";
import { paymentMiddleware, x402ResourceServer } from "@x402/express";

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.

[suggestion] This rewrite asserts a lot of specific @x402 v2 API surface that isn't covered by the PR description's verification table: subpath exports (@x402/core/server, @x402/evm/exact/server, @x402/evm/exact/client), the x402ResourceServer / HTTPFacilitatorClient / ExactEvmScheme class names, the paymentMiddleware(routes, resourceServer) argument order, the "GET /weather" route-key shape, the client.register("eip155:*", …) wildcard, and the PAYMENT-REQUIRED / PAYMENT-SIGNATURE / PAYMENT-RESPONSE header names (lines 58-60).

The page is internally consistent, and I have no evidence any of it is wrong — but the PR verified every @sei-js claim against published tarballs and did none of that here, and this is the largest new block of copy-pasteable code in the diff. Worth running the Express and Fetch snippets (or at least resolving the imports) against the published @x402 packages before merge.


</CodeGroup>

Use `claimSpecific` with the same argument shape to claim a single payload rather than everything available to the address.

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.

[suggestion] This reads as self-contradictory with line 273 ("Both functions take the signed payload as bytes"). If claimSpecific takes exactly the same single bytes argument as claim, nothing distinguishes "a single payload" from "everything available to the address" — the payload is the same input either way. Please confirm the actual signature (I'd expect claimSpecific to take an extra argument) and reword.

Comment thread evm/sei-js/index.mdx
Add the EIP-6963 compatible Sei Global Wallet to a dApp.

```bash
npm install @sei-js/sei-global-wallet

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.

[suggestion] evm/sei-global-wallet.mdx now puts a <Warning> above its install command saying the consumer overrides must be added to the root manifest before installing (Dynamic pulls vulnerable axios/uuid). This index page still gives a bare install command with no such warning, so a reader landing here installs without the pins. Consider a one-line pointer to the overrides section next to this snippet.

Comment thread docs.json
{
"source": "/agents.md",
"destination": "/llms/agents.md",
"source": "/llms/agents",

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.

[nit] With /agents.md and /llms/skill.md dropped as redirect sources and llms/agents.md / llms/skill.md deleted from the tree, there is now no .md-suffixed path other than /skill.md itself. Agent tooling commonly fetches <host>/agents.md by convention. The PR argues these already 404'd due to Mintlify's .md suffixing, which is fine — but it's worth a post-deploy check that https://docs.sei.io/agents.md behaves acceptably, since it's the path most agents will try first.

@seidroid
seidroid Bot dismissed stale reviews from themself August 27, 2026 14:13

Superseded: latest AI review found no blocking issues.

@alexander-sei
alexander-sei merged commit 9868958 into main Aug 28, 2026
20 of 21 checks passed
@alexander-sei
alexander-sei deleted the docs/incorporate-sei-js-changes branch August 28, 2026 09:52
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.

1 participant