Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions .github/styles/Sei/ClickHere.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
extends: existence
message: "Avoid '%s' as link text — use descriptive link text (STYLE_GUIDE.md)."
link: https://github.com/sei-protocol/sei-docs/blob/main/STYLE_GUIDE.md
level: warning
ignorecase: true
# STYLE_GUIDE.md: links should be descriptive — "click here" / "[here]" tell
# the reader nothing about where they're going.
tokens:
- 'click here'
- '\[here\]\('
- '\[this link\]\('
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Vale existence tokens can't match raw markdown syntax

Low Severity

The tokens '\[here\]\(' and '\[this link\]\(' attempt to match raw markdown link syntax like [here](url). However, Vale's existence extension operates on the processed text scope by default, not raw markup. Vale strips markdown syntax before matching, so the brackets and parentheses in these patterns will never appear in the text being checked, making both tokens effectively dead. The first token 'click here' works fine since it's plain text. To catch standalone [here](…) links, a scope: raw directive or a different rule extension would be needed.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit fc0ec5d. Configure here.

41 changes: 41 additions & 0 deletions .github/styles/Sei/Headings.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
extends: capitalization
message: "Use sentence case for headings: '%s'."
link: https://github.com/sei-protocol/sei-docs/blob/main/AGENTS.md
level: warning
scope: heading
# AGENTS.md: "Sentence case for headings." Only the first word and proper nouns
# are capitalized. Proper nouns below are exempt so they may appear mid-heading.
match: $sentence
exceptions:
- Sei
- Sei Giga
- Sei EVM
- Sei Network
- SeiDB
- EVM
- CosmWasm
- Cosmos
- Ethereum
- Solidity
- Hardhat
- Foundry
- MetaMask
- Compass
- Rabby
- Ledger
- Twin Turbo Consensus
- Autobahn
- Pectra
- RPC
- API
- CLI
- SDK
- NFT
- IBC
- VRF
- JSON
- RocksDB
- StateSync
- IPv4
- IPv6
- I
18 changes: 18 additions & 0 deletions .github/styles/Sei/Qualifiers.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
extends: existence
message: "'%s' is often unnecessary qualifying language — consider removing it."
link: https://github.com/sei-protocol/sei-docs/blob/main/STYLE_GUIDE.md
level: suggestion
ignorecase: true
# STYLE_GUIDE.md: "Avoid qualifying language, which is quite often completely
# unnecessary." Suggestion-level — informational, never blocks a PR.
tokens:
- very
- really
- quite
- simply
- completely
- totally
- basically
- essentially
- obviously
- of course
18 changes: 18 additions & 0 deletions .github/styles/Sei/Terminology.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
extends: substitution
message: "Use '%s' instead of '%s' (Sei terminology)."
link: https://github.com/sei-protocol/sei-docs/blob/main/AGENTS.md
level: warning
ignorecase: false
action:
name: replace
# observed (wrong) form : preferred form. Patterns are written so the correct
# spelling never matches itself.
swap:
'the Sei blockchain': Sei
'Sei [Cc]hain': Sei
'gas fees?': gas
'\bCW\b': CosmWasm
'[Cc]osmwasm': CosmWasm
'[Mm]etamask': MetaMask
'Sei-?[Jj][Ss]': sei-js
'seijs': sei-js
39 changes: 39 additions & 0 deletions .github/styles/config/vocabularies/Sei/accept.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
Sei
seid
sei-js
SeiDB
Sei Giga
CosmWasm
Cosmos
Tendermint
CometBFT
Autobahn
Pectra
Mintlify
MetaMask
Compass
Rabby
Hardhat
Foundry
Solidity
wagmi
viem
ethers
RainbowKit
Ankr
DRPC
Nirvana
Takara
Citrex
Symphony
DragonSwap
Cambrian
precompile
precompiles
mempool
calldata
multicall
statesync
gigagas
dApp
dApps
47 changes: 47 additions & 0 deletions .github/workflows/external-links.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
name: External link check

# Scheduled check for external link rot (dead third-party URLs) with lychee —
# the free, no-AI complement to the existing link-check workflow (which runs
# `mint broken-links` for internal links). Config lives in lychee.toml. On
# failure it opens/updates a tracking issue instead of blocking any PR.
#
# Triggers:
# - workflow_dispatch (manual)
# - schedule (weekly, Mondays 09:00 UTC)

on:
workflow_dispatch:
schedule:
- cron: '0 9 * * 1'

permissions:
contents: read
issues: write

defaults:
run:
shell: bash

jobs:
lychee:
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- uses: actions/checkout@v4

- name: Check external links
id: lychee
uses: lycheeverse/lychee-action@v2
with:
args: "--config lychee.toml --no-progress '**/*.md' '**/*.mdx'"
fail: false
format: markdown
output: ./lychee-report.md

- name: Open or update tracking issue on broken links
if: steps.lychee.outputs.exit_code != 0
uses: peter-evans/create-issue-from-file@v5
with:
title: 🔗 Broken external links detected
content-filepath: ./lychee-report.md
labels: broken-links, automated
37 changes: 37 additions & 0 deletions .github/workflows/prose-style.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
name: Prose style

# Advisory prose/style linting on PRs — the free, no-AI replacement for
# Mintlify's "Apply style guide" workflow and the grammar half of "Fix grammar
# & typos". Rules live in .github/styles/Sei (derived from AGENTS.md and
# STYLE_GUIDE.md). Annotations are posted on *changed lines only* and never
# fail the build, so the existing heading backlog doesn't create noise.

on:
pull_request:

permissions:
contents: read
checks: write
pull-requests: read

defaults:
run:
shell: bash

jobs:
vale:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Vale
uses: errata-ai/vale-action@v2
with:
version: 3.14.2
reporter: github-pr-check
filter_mode: added
fail_on_error: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
28 changes: 28 additions & 0 deletions .github/workflows/seo-audit.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: SEO audit

# Deterministic SEO + page-structure audit on every PR — the free, no-AI
# replacement for Mintlify's "Audit SEO metadata" workflow. Walks docs.json so
# it only checks published pages. Fails only on missing title/description
# (regressions); length/heading issues are warnings. See scripts/audit-seo.mjs.

on:
pull_request:
workflow_dispatch:

defaults:
run:
shell: bash

jobs:
audit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Set up Node
uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'

- name: Audit SEO metadata and structure
run: node scripts/audit-seo.mjs
24 changes: 24 additions & 0 deletions .github/workflows/spelling.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
name: Spelling

# Deterministic spell-check on every PR — the free, no-AI replacement for the
# spelling half of Mintlify's "Fix grammar & typos" workflow. Config + the
# allowlist of protocol terms live in _typos.toml.

on:
pull_request:
workflow_dispatch:

defaults:
run:
shell: bash

jobs:
typos:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Check spelling
uses: crate-ci/typos@master
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Unpinned GitHub Action uses mutable branch reference

Medium Severity

crate-ci/typos@master is pinned to a mutable branch, not a specific commit SHA or release tag. Any push to the upstream master branch — including a supply-chain compromise — would automatically execute in this repo's CI. The crate-ci/typos docs themselves recommend pinning to a version tag (e.g., @v1.45.0). The PR description acknowledges this but defers the fix, leaving the window open.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit fc0ec5d. Configure here.

with:
config: _typos.toml
31 changes: 31 additions & 0 deletions .vale.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# Vale configuration — https://vale.sh
# Free, deterministic prose/style linting in CI: the no-AI replacement for
# Mintlify's "Apply style guide" workflow and the grammar half of "Fix grammar
# & typos". Rules in .github/styles/Sei are derived from AGENTS.md and
# STYLE_GUIDE.md. Spelling is handled by `typos` (see _typos.toml), so Vale's
# own spell-checker is disabled here to avoid double-reporting.

StylesPath = .github/styles
MinAlertLevel = suggestion

Vocab = Sei

# Lint MDX as Markdown.
[formats]
mdx = md

[*.{md,mdx}]
# Only the Sei style. typos owns spelling, and Vale's built-in Repetition rule
# false-positives on fenced code nested inside MDX/JSX components (e.g. a `bash`
# block inside <Accordion>), so we don't enable the bundled `Vale` style.
BasedOnStyles = Sei

# Skip MDX/JSX so Vale lints prose, not markup:
# - {expression} braces (e.g. cols={2}, {/* comments */})
# - import / export statements at the top of MDX files
TokenIgnores = (\{[^}]*\})
BlockIgnores = (?m)^(?:import|export) .*$

# Deprecated section (SIP-3) — don't lint it.
[cosmos-sdk/**]
BasedOnStyles = ''
39 changes: 39 additions & 0 deletions _typos.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# typos configuration — https://github.com/crate-ci/typos
# Free, deterministic spell-checking in CI: the no-AI replacement for the
# spelling half of Mintlify's "Fix grammar & typos" workflow.
#
# typos only flags *known* misspellings (not every unknown word), so the
# false-positive surface is small — the [default.extend-words] list below
# allowlists the few protocol terms it would otherwise "correct".

[files]
extend-exclude = [
"llms.txt",
"llms-full.txt",
"*.lock",
"package-lock.json",
"pnpm-lock.yaml",
"yarn.lock",
"assets/**",
"logo/**",
"favicons/**",
"*.svg",
"*.min.js",
"cosmos-sdk/**",
"google*.html", # Google Search Console site-verification tokens
]

[default]
# Don't treat hex addresses / hashes as words to be spell-checked.
extend-ignore-re = ['0x[0-9a-fA-F]{6,}']

[default.extend-identifiers]
# "UPnP" is a real protocol name; typos splits it and flags the "Pn".
# It appears in the auto-generated config block in node/node-operators.mdx.
UPnP = "UPnP"

[default.extend-words]
# Allowlist (word = same word). Populated from a real `typos` run over the repo.
# "maxiumum" is an upstream typo in CometBFT's config.toml comments, inlined by
# scripts/sync-default-configs.mjs — fixing it here would be reverted on re-sync.
maxiumum = "maxiumum"
2 changes: 1 addition & 1 deletion evm/evm-verify-contracts.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
---
Verify your deployed contract using flattened source code, JSON input, Sourcify and more. Verifying your deployed contract ensures transparency and trust by making the source code publicly available and verifiable.

## Benefits of Verification

Check warning on line 8 in evm/evm-verify-contracts.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-verify-contracts.mdx#L8

Use sentence case for headings: 'Benefits of Verification'.

- **Transparency**: Publicly available source code.
- **Trust**: Community can verify the contract's functionality.
Expand Down Expand Up @@ -126,7 +126,7 @@
npx hardhat ignition deploy ignition/modules/Counter.ts --network sei_testnet
```

#### 4. Verify with Sourcify

Check warning on line 129 in evm/evm-verify-contracts.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-verify-contracts.mdx#L129

Use sentence case for headings: '4. Verify with Sourcify'.

```bash
npx hardhat verify sourcify --network sei_testnet <CONTRACT_ADDRESS>
Expand All @@ -140,7 +140,7 @@

Running `npx hardhat verify` without a subtask will attempt verification on all enabled providers (Etherscan, Blockscout, and Sourcify) simultaneously.

### Verify via Sourcify UI

Check warning on line 143 in evm/evm-verify-contracts.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-verify-contracts.mdx#L143

Use sentence case for headings: 'Verify via Sourcify UI'.

You can also verify contracts directly through the [Sourcify web interface](https://verify.sourcify.dev/):

Expand All @@ -151,11 +151,11 @@
5. Click **Verify**


## Remix Contract Verification Plugin

Check warning on line 154 in evm/evm-verify-contracts.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-verify-contracts.mdx#L154

Use sentence case for headings: 'Remix Contract Verification Plugin'.

Remix IDE offers an automated contract verification solution through its Contract Verification plugin, which integrates with both Sourcify and Etherscan verification services.

### Setup and Configuration

Check warning on line 158 in evm/evm-verify-contracts.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-verify-contracts.mdx#L158

Use sentence case for headings: 'Setup and Configuration'.

1. **Activate the Plugin**: In Remix IDE, navigate to the Plugin Manager and activate the **Contract Verification** plugin.

Expand All @@ -173,17 +173,17 @@
- **API Key**: Obtain from [seiscan.io](https://seiscan.io)
- **URL**: `https://seiscan.io`

### Deploy and Verify

Check warning on line 176 in evm/evm-verify-contracts.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-verify-contracts.mdx#L176

Use sentence case for headings: 'Deploy and Verify'.

Once configured, deploy your contract through Remix as usual. The Contract Verification plugin will automatically verify your contract upon successful deployment, submitting to both Sourcify and Seiscan simultaneously.

Verification status will be displayed in the plugin interface, and your verified contract will be publicly viewable on Seiscan explorer.

## Verify via 0xngmi Etherscan Verification (third‑party)

Check warning on line 182 in evm/evm-verify-contracts.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-verify-contracts.mdx#L182

Use sentence case for headings: 'Verify via 0xngmi Etherscan Verification (third‑party)'.

You can batch‑verify a contract that is already verified on another chain using the community tool [Etherscan Verification by 0xngmi](https://etherscan-verification.0xngmi.com/). This copies the verified source from a "source chain" and submits it to [Seiscan](https://seiscan.io), as long as the bytecode and compiler settings match.

<Warning>Prerequsite: The contract is already verified on at least one supported chain (same compiler version, optimization runs, constructor args, and library addresses as on Sei).</Warning>
<Warning>Prerequisite: The contract is already verified on at least one supported chain (same compiler version, optimization runs, constructor args, and library addresses as on Sei).</Warning>

Steps:

Expand Down
2 changes: 1 addition & 1 deletion evm/reference.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
---
Sei fully supports the standard Ethereum JSON-RPC API, so existing EVM tooling (ethers.js, viem, Hardhat, Foundry, etc.) works out of the box. This page covers every supported `eth_*` and `debug_*` method, plus the legacy `sei_*`/`sei2_*` extensions (now deprecated) for cross-VM address resolution and synthetic transactions.

## Table of Contents

Check warning on line 9 in evm/reference.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/reference.mdx#L9

Use sentence case for headings: 'Table of Contents'.

- [Overview](#overview)
- [Standard Ethereum Endpoints](#standard-ethereum-endpoints)
Expand Down Expand Up @@ -50,11 +50,11 @@

</Accordion>

## Standard Ethereum Endpoints

Check warning on line 53 in evm/reference.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/reference.mdx#L53

Use sentence case for headings: 'Standard Ethereum Endpoints'.

Sei supports all standard Ethereum JSON-RPC endpoints, organized into the following categories. Click on each category to view the available endpoints and their documentation.

### Send Transactions

Check warning on line 57 in evm/reference.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/reference.mdx#L57

Use sentence case for headings: 'Send Transactions'.

These endpoints allow you to send transactions to the Sei network.

Expand All @@ -77,7 +77,7 @@

</Accordion>

### Transaction Lookup

Check warning on line 80 in evm/reference.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/reference.mdx#L80

Use sentence case for headings: 'Transaction Lookup'.

These endpoints allow you to find transaction details.

Expand Down Expand Up @@ -134,7 +134,7 @@
| :------- | :---------------------------------------------------------------------------------------------------------- |
| `object` | The [transaction details](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_gettransactionbyhash). |

#### eth_getTransactionByHash

Check warning on line 137 in evm/reference.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/reference.mdx#L137

Use sentence case for headings: 'eth_getTransactionByHash'.

Gets transaction by the transaction hash.

Expand Down Expand Up @@ -174,7 +174,7 @@
| :------- | :-------------------------------------------------- |
| `string` | The hexadecimal form of the number of transactions. |

#### eth_getBalance

Check warning on line 177 in evm/reference.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/reference.mdx#L177

Use sentence case for headings: 'eth_getBalance'.

Gets the balance in wei (i.e. 10^-12 usei) of the account

Expand All @@ -191,7 +191,7 @@
| :------- | :--------------------------------------- |
| `string` | The hexadecimal form of the wei balance. |

#### eth_getCode

Check warning on line 194 in evm/reference.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/reference.mdx#L194

Use sentence case for headings: 'eth_getCode'.

Gets EVM code stored at the account address

Expand All @@ -208,7 +208,7 @@
| :------- | :--------------------------------------- |
| `string` | The hexadecimal form of the code binary. |

#### eth_getStorageAt

Check warning on line 211 in evm/reference.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/reference.mdx#L211

Use sentence case for headings: 'eth_getStorageAt'.

Gets value at given key of the account

Expand All @@ -226,7 +226,7 @@
| :------- | :----------------------------------------- |
| `string` | The hexadecimal form of the storage value. |

#### eth_getProof

Check warning on line 229 in evm/reference.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/reference.mdx#L229

Use sentence case for headings: 'eth_getProof'.

<Warning>
Sei uses IAVL trees instead of Merkle Patricia Tries (MPT). The proof returned by this endpoint is an IAVL proof, not an MPT proof. Ethereum tooling that expects MPT proofs may not parse the response correctly.
Expand All @@ -253,7 +253,7 @@
```json
{
address: // The requested address.
hexValues: // An array of the hexdecimal form of the values at the given keys.
hexValues: // An array of the hexadecimal form of the values at the given keys.
storageProof: // An array of storage proofs.
}
```
Expand Down Expand Up @@ -286,7 +286,7 @@

---

#### eth_getBlockTransactionCountByHash

Check warning on line 289 in evm/reference.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/reference.mdx#L289

Use sentence case for headings: 'eth_getBlockTransactionCountByHash'.

Gets the count of EVM transactions in a block by its hash.

Expand All @@ -304,7 +304,7 @@

---

#### eth_getBlockByHash

Check warning on line 307 in evm/reference.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/reference.mdx#L307

Use sentence case for headings: 'eth_getBlockByHash'.

Gets block metadata and, optionally, its EVM transactions by block hash.

Expand All @@ -323,7 +323,7 @@

---

#### eth_getBlockByNumber

Check warning on line 326 in evm/reference.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/reference.mdx#L326

Use sentence case for headings: 'eth_getBlockByNumber'.

Gets block metadata and, optionally, its EVM transactions by block number.

Expand All @@ -342,7 +342,7 @@

---

#### eth_getBlockReceipts

Check warning on line 345 in evm/reference.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/reference.mdx#L345

Use sentence case for headings: 'eth_getBlockReceipts'.

Gets an array of EVM transaction receipts in a block by its number.

Expand Down Expand Up @@ -397,7 +397,7 @@

---

#### eth_coinbase

Check warning on line 400 in evm/reference.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/reference.mdx#L400

Use sentence case for headings: 'eth_coinbase'.

Gets the fee-collector (coinbase) address.

Expand All @@ -413,7 +413,7 @@

---

#### eth_feeHistory

Check warning on line 416 in evm/reference.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/reference.mdx#L416

Use sentence case for headings: 'eth_feeHistory'.

Gets fee history over a block range.

Expand All @@ -433,7 +433,7 @@

---

#### eth_gasPrice

Check warning on line 436 in evm/reference.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/reference.mdx#L436

Use sentence case for headings: 'eth_gasPrice'.

Gets the 50th-percentile gas price in the most recent block.

Expand All @@ -449,7 +449,7 @@

---

#### net_version

Check warning on line 452 in evm/reference.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/reference.mdx#L452

Use sentence case for headings: 'net_version'.

Gets the chain ID. Alias for `eth_chainId`, but returns the chain ID as a decimal instead of hex.

Expand All @@ -463,7 +463,7 @@

---

#### web3_clientVersion

Check warning on line 466 in evm/reference.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/reference.mdx#L466

Use sentence case for headings: 'web3_clientVersion'.

Gets the RPC node's client version.

Expand All @@ -479,7 +479,7 @@

</Accordion>

### Filter Endpoints

Check warning on line 482 in evm/reference.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/reference.mdx#L482

Use sentence case for headings: 'Filter Endpoints'.

Endpoints for creating and managing event filters.

Expand Down Expand Up @@ -512,7 +512,7 @@

---

#### eth_newBlockFilter

Check warning on line 515 in evm/reference.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/reference.mdx#L515

Use sentence case for headings: 'eth_newBlockFilter'.

Creates a new block filter.

Expand All @@ -528,7 +528,7 @@

---

#### eth_getFilterChanges

Check warning on line 531 in evm/reference.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/reference.mdx#L531

Use sentence case for headings: 'eth_getFilterChanges'.

Fetches updates since the last poll for a filter.

Expand All @@ -547,7 +547,7 @@

---

#### eth_getFilterLogs

Check warning on line 550 in evm/reference.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/reference.mdx#L550

Use sentence case for headings: 'eth_getFilterLogs'.

Retrieves all logs matching a log filter, including historical logs.

Expand All @@ -565,7 +565,7 @@

---

#### eth_getLogs

Check warning on line 568 in evm/reference.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/reference.mdx#L568

Use sentence case for headings: 'eth_getLogs'.

Fetches logs matching given filter criteria.

Expand All @@ -583,7 +583,7 @@

---

#### eth_uninstallFilter

Check warning on line 586 in evm/reference.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/reference.mdx#L586

Use sentence case for headings: 'eth_uninstallFilter'.

Removes a previously created filter.

Expand All @@ -601,7 +601,7 @@

</Accordion>

### Simulation & Debugging

Check warning on line 604 in evm/reference.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/reference.mdx#L604

Use sentence case for headings: 'Simulation & Debugging'.

<Accordion title="Simulation Endpoints">
Endpoints for simulating contract execution.
Expand All @@ -625,7 +625,7 @@

---

#### eth_call

Check warning on line 628 in evm/reference.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/reference.mdx#L628

Use sentence case for headings: 'eth_call'.

Executes a message call immediately without creating a transaction.

Expand Down Expand Up @@ -666,7 +666,7 @@

---

#### debug_traceBlockByNumber

Check warning on line 669 in evm/reference.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/reference.mdx#L669

Use sentence case for headings: 'debug_traceBlockByNumber'.

Traces all transactions in a block specified by number.

Expand All @@ -685,7 +685,7 @@

---

#### debug_traceBlockByHash

Check warning on line 688 in evm/reference.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/reference.mdx#L688

Use sentence case for headings: 'debug_traceBlockByHash'.

Traces all transactions in a block specified by hash.

Expand All @@ -703,7 +703,7 @@

</Accordion>

## Sei Custom Endpoints

Check warning on line 706 in evm/reference.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/reference.mdx#L706

Use sentence case for headings: 'Sei Custom Endpoints'.

Sei extends the standard Ethereum JSON-RPC API with custom endpoints that enhance functionality for developers. These extensions enable better handling of cross-VM interactions, synthetic transactions, improved error reporting, and other Sei-specific features.

Expand All @@ -713,7 +713,7 @@
Access is controlled by the `enabled_legacy_sei_apis` setting under `[evm]` in `app.toml`. Only methods explicitly listed in this allowlist are available. Disabled methods return a standard JSON-RPC error (code `-32601`, data `"legacy_sei_deprecated"`). Allowed methods pass through unchanged, with an optional `Sei-Legacy-RPC-Deprecation` HTTP response header signaling deprecation.
</Warning>

### Legacy API Configuration

Check warning on line 716 in evm/reference.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/reference.mdx#L716

Use sentence case for headings: 'Legacy API Configuration'.

The `enabled_legacy_sei_apis` setting in `app.toml` controls which `sei_*` and `sei2_*` methods are accessible on the EVM HTTP endpoint.

Expand Down Expand Up @@ -775,7 +775,7 @@

</Accordion>

### Address Resolution

Check warning on line 778 in evm/reference.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/reference.mdx#L778

Use sentence case for headings: 'Address Resolution'.

For resolving the EVM (`0x…`) ↔ Sei (`sei1…`) address pair, use the **`addr` precompile at `0x0000000000000000000000000000000000001004`** via a standard `eth_call`. The precompile is universally available on every Sei RPC, is not part of the deprecated `sei_*` namespace, and is the canonical resolution path going forward.

Expand Down Expand Up @@ -823,7 +823,7 @@

<Note>The legacy JSON-RPC helpers `sei_getSeiAddress` and `sei_getEVMAddress` historically served this role and are still enabled by default on nodes today, but they belong to the deprecated `sei_*` namespace and may be removed in a future release. New integrations should call the precompile.</Note>

### Cross-VM Transaction Lookup

Check warning on line 826 in evm/reference.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/reference.mdx#L826

Use sentence case for headings: 'Cross-VM Transaction Lookup'.

`sei_getCosmosTx` resolves the underlying Cosmos transaction hash for a given EVM transaction. It does not yet have a precompile equivalent and is enabled by default on Sei nodes.

Expand Down Expand Up @@ -858,7 +858,7 @@
</Accordion>


### Legacy Deprecation Error

Check warning on line 861 in evm/reference.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/reference.mdx#L861

Use sentence case for headings: 'Legacy Deprecation Error'.

When a `sei_*` or `sei2_*` method is called but not listed in `enabled_legacy_sei_apis`, the node returns:

Expand All @@ -874,7 +874,7 @@
}
```

### Deprecation HTTP Header

Check warning on line 877 in evm/reference.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/reference.mdx#L877

Use sentence case for headings: 'Deprecation HTTP Header'.

When an allowlisted `sei_*` or `sei2_*` method is successfully called, the response includes an optional HTTP header signaling deprecation:

Expand Down
Loading
Loading