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
3 changes: 3 additions & 0 deletions .github/workflows/validate-docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@ jobs:
- name: Validate docs.json is valid JSON
run: jq empty docs.json

- name: Validate snippet theme defaults
run: node scripts/check-snippet-theme-default.mjs

- name: Verify all referenced pages exist
run: |
set -euo pipefail
Expand Down
8 changes: 8 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Sei Docs — agent instructions

Check warning on line 1 in AGENTS.md

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

AGENTS.md#L1

Use sentence case for headings: 'Sei Docs — agent instructions'.

## About this project

Expand All @@ -18,7 +18,7 @@
- Precompiles live at specific addresses — always reference exact address when mentioning
- **Twin Turbo Consensus** and **parallelization engine** are proper nouns
- Prefer "dApp" over "app" when the context is blockchain
- Avoid "gas fees" — say "gas" or "transaction fees"

Check warning on line 21 in AGENTS.md

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

AGENTS.md#L21

Use 'gas' instead of 'gas fees' (Sei terminology).

## Style preferences

Expand All @@ -33,6 +33,14 @@
- Use `<Tabs>` / `<Tab>` for parallel code samples (hardhat vs. foundry, ethers vs. viem, etc.)
- Always give `<CodeGroup>` blocks explicit language tags

## Mintlify JSX styling

Check warning on line 36 in AGENTS.md

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

AGENTS.md#L36

Use sentence case for headings: 'Mintlify JSX styling'.

Check warning on line 36 in AGENTS.md

View workflow job for this annotation

GitHub Actions / vale

[vale] AGENTS.md#L36

[Sei.Headings] Use sentence case for headings: 'Mintlify JSX styling'.
Raw output
{"message": "[Sei.Headings] Use sentence case for headings: 'Mintlify JSX styling'.", "location": {"path": "AGENTS.md", "range": {"start": {"line": 36, "column": 4}}}, "severity": "WARNING"}

- In `snippets/*.jsx` and rendered JSX in `.mdx` pages, write Tailwind utility lists as literal attributes. Prefer `className="..."`; static string and template expressions without interpolation are also extractor-safe.
- Do not store utility lists in variables or assemble `className` dynamically. For conditional styling, use explicit JSX branches, inline styles, or a semantic data/class hook backed by `style.css`.
- A component may forward the exact `className` prop when it destructures `className` in its parameters and every caller supplies a literal utility list.
- Theme-aware snippets must seed hydration from `docs.json` `appearance.default` and synchronize the DOM theme in `useLayoutEffect`.
- Run `node scripts/check-snippet-theme-default.mjs` after editing a theme-aware snippet.

## Content boundaries

- Cosmos-SDK content is deprecated (see SIP-3) — keep the deprecation notice visible on `cosmos-sdk/index.mdx`
Expand All @@ -46,7 +54,7 @@

All legacy paths from the Nextra site are preserved in `docs.json` under `redirects`. When renaming or moving a page, always add a matching redirect entry so external links and search results continue to resolve.

## llms.txt / llms-full.txt

Check warning on line 57 in AGENTS.md

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

AGENTS.md#L57

Use sentence case for headings: 'llms.txt / llms-full.txt'.

`llms.txt` and `llms-full.txt` at the repo root are hand-curated overrides for Mintlify's auto-generated versions. The script `scripts/generate-llms.mjs` reads `docs.json`, fetches each page's `.md` from the deployed site, and re-emits both files using the curated config block at the top of the script (project name, intro, constraints, quick reference, section overviews, examples, resources). A scheduled GitHub Action (`.github/workflows/regenerate-llms.yml`) runs this weekly and opens a PR when anything changed; trigger it manually via `workflow_dispatch` after large content updates if you don't want to wait. Edit the config block at the top of the script to update wording; do not hand-edit the generated `.txt` files.

Expand Down
6 changes: 6 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,3 +30,9 @@
- **Lead with the goal**: Start instructions with what the user wants to accomplish
- **Use consistent terminology**: Don't alternate between synonyms for the same concept
- **Include examples**: Show, don't just tell

## JSX styling

Check warning on line 34 in CONTRIBUTING.md

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

CONTRIBUTING.md#L34

Use sentence case for headings: 'JSX styling'.

Check warning on line 34 in CONTRIBUTING.md

View workflow job for this annotation

GitHub Actions / vale

[vale] CONTRIBUTING.md#L34

[Sei.Headings] Use sentence case for headings: 'JSX styling'.
Raw output
{"message": "[Sei.Headings] Use sentence case for headings: 'JSX styling'.", "location": {"path": "CONTRIBUTING.md", "range": {"start": {"line": 34, "column": 4}}}, "severity": "WARNING"}

Mintlify only generates Tailwind utilities it can extract from JSX. In `snippets/*.jsx` and rendered JSX in `.mdx` pages, keep class lists in literal attributes. Prefer `className="..."`; static string and template expressions without interpolation are also safe. Do not keep utility lists in variables or assemble `className` dynamically. Use explicit JSX branches, inline styles, or a semantic hook in `style.css` for conditional styles.

For theme-aware snippets, run `node scripts/check-snippet-theme-default.mjs`.
4 changes: 3 additions & 1 deletion evm/in-app-swaps.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
description: 'Guide to integrating the Symphony swap widget into your Sei application for seamless token exchanges.'
keywords: ['swap widget', 'in-app swaps', 'token exchange', 'dex integration', 'symphony']
---
import { ThemeAwareIframe } from '/snippets/theme-aware-iframe.jsx';

Integrating in-app swap functionality into your Sei application enables users to exchange tokens directly within your platform, enhancing user experience and engagement.

## Overview
Expand All @@ -15,33 +17,33 @@
- **Revenue Opportunities**: Many providers offer fee-sharing mechanisms
- **Cross-Chain Support**: Some widgets enable bridging assets from other chains

## Symphony Swap Widget

Check warning on line 20 in evm/in-app-swaps.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/in-app-swaps.mdx#L20

Use sentence case for headings: 'Symphony Swap Widget'.

[Symphony](https://symph.ag) is a native DEX aggregator on Sei, offering the simplest integration via iframe embedding.

### Quick Start

Check warning on line 24 in evm/in-app-swaps.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/in-app-swaps.mdx#L24

Use sentence case for headings: 'Quick Start'.

```html
<iframe src="https://symph.ag/embed"></iframe>
```

### Live Demo

Check warning on line 30 in evm/in-app-swaps.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/in-app-swaps.mdx#L30

Use sentence case for headings: 'Live Demo'.

<div style={{ display: 'flex', justifyContent: 'center' }}>
<iframe src="https://symph.ag/embed" style={{ width: '100%', maxWidth: '420px', minWidth: '377px', minHeight: '680px', border: 'none', borderRadius: '12px' }} title="Symphony Swap Widget Demo" />
<ThemeAwareIframe src="https://symph.ag/embed" style={{ width: '100%', maxWidth: '420px', minWidth: '377px', minHeight: '680px', border: 'none', borderRadius: '12px' }} loading="lazy" title="Symphony Swap Widget Demo" />
</div>

### Size Requirements

Check warning on line 36 in evm/in-app-swaps.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/in-app-swaps.mdx#L36

Use sentence case for headings: 'Size Requirements'.

- **Minimum Width**: `377px`
- **Minimum Height**: `650px` (recommended to prevent wallet modal scrolling)
- **Optimal Height**: `680-685px`

### URL Parameters

Check warning on line 42 in evm/in-app-swaps.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/in-app-swaps.mdx#L42

Use sentence case for headings: 'URL Parameters'.

Customize the widget by appending query parameters:

#### Token Selection

Check warning on line 46 in evm/in-app-swaps.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/in-app-swaps.mdx#L46

Use sentence case for headings: 'Token Selection'.

| Parameter | Description | Example |
| ---------- | ----------------------------- | ----------------------------------------------------- |
Expand All @@ -65,7 +67,7 @@
| --------------- | ---------------------------- | --------------------------- |
| `notifications` | Show/hide notification cards | `true` (default) or `false` |

### Complete Example

Check warning on line 70 in evm/in-app-swaps.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/in-app-swaps.mdx#L70

Use sentence case for headings: 'Complete Example'.

<Tabs>
<Tab title="HTML">
Expand Down Expand Up @@ -121,7 +123,7 @@
</Tab>
</Tabs>

### Popular Sei Token Addresses (Mainnet)

Check warning on line 126 in evm/in-app-swaps.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/in-app-swaps.mdx#L126

Use sentence case for headings: 'Popular Sei Token Addresses (Mainnet)'.

| Token | Address |
| ------------- | ------------------------------------------------------------------------------------------------------------------------ |
Expand All @@ -131,9 +133,9 @@

---

## Best Practices

Check warning on line 136 in evm/in-app-swaps.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/in-app-swaps.mdx#L136

Use sentence case for headings: 'Best Practices'.

### Security Considerations

Check warning on line 138 in evm/in-app-swaps.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/in-app-swaps.mdx#L138

Use sentence case for headings: 'Security Considerations'.

<Warning>
**Security Checklist**
Expand All @@ -142,7 +144,7 @@
- ✅ Implement Content Security Policy (CSP) headers
</Warning>

### Performance Optimization

Check warning on line 147 in evm/in-app-swaps.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/in-app-swaps.mdx#L147

Use sentence case for headings: 'Performance Optimization'.

```tsx
// Lazy load swap widgets to improve initial page load
Expand All @@ -154,7 +156,7 @@
});
````

### Responsive Design

Check warning on line 159 in evm/in-app-swaps.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/in-app-swaps.mdx#L159

Use sentence case for headings: 'Responsive Design'.

```css
/* Ensure swap widgets are responsive */
Expand All @@ -179,7 +181,7 @@
}
```

### Error Handling

Check warning on line 184 in evm/in-app-swaps.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/in-app-swaps.mdx#L184

Use sentence case for headings: 'Error Handling'.

```tsx
import { useState } from 'react';
Expand All @@ -204,6 +206,6 @@

---

## Additional Resources

Check warning on line 209 in evm/in-app-swaps.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/in-app-swaps.mdx#L209

Use sentence case for headings: 'Additional Resources'.

- [Symphony Swap Widget Documentation](https://docs.symph.ag/widget/symphony-swap-widget)
18 changes: 9 additions & 9 deletions evm/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
keywords: ["sei evm", "ethereum virtual machine", "web3 development", "blockchain development", "fast evm"]
---

## Why Choose Sei EVM?

Check warning on line 8 in evm/index.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/index.mdx#L8

Use sentence case for headings: 'Why Choose Sei EVM?'.

| Feature | Sei EVM | Ethereum | Other Layer 1s |
| -------------------------- | ------------- | ---------------- | --------------- |
Expand All @@ -19,7 +19,7 @@
View detailed Ethereum comparison
</Card>

## Quick Start

Check warning on line 22 in evm/index.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/index.mdx#L22

Use sentence case for headings: 'Quick Start'.

<Steps>
<Step title="Add Sei to Wallet">
Expand All @@ -36,7 +36,7 @@
</Step>
</Steps>

## Ready-to-Deploy Examples

Check warning on line 39 in evm/index.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/index.mdx#L39

Use sentence case for headings: 'Ready-to-Deploy Examples'.

<CardGroup cols={3}>
<Card horizontal title="EVM Contract Wizard" icon="wand-magic-sparkles" href="/evm/evm-wizard">
Expand All @@ -50,7 +50,7 @@
</Card>
</CardGroup>

## Development Tools

Check warning on line 53 in evm/index.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/index.mdx#L53

Use sentence case for headings: 'Development Tools'.

<CardGroup cols={3}>
<Card horizontal title="Deploy with Hardhat" icon="terminal" href="/evm/evm-hardhat">
Expand All @@ -64,7 +64,7 @@
</Card>
</CardGroup>

## Use Cases

Check warning on line 67 in evm/index.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/index.mdx#L67

Use sentence case for headings: 'Use Cases'.

<CardGroup cols={3}>
<Card horizontal title="x402 Payments" icon="credit-card" href="/ai/x402">
Expand All @@ -78,7 +78,7 @@
</Card>
</CardGroup>

## RPC Endpoints

Check warning on line 81 in evm/index.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/index.mdx#L81

Use sentence case for headings: 'RPC Endpoints'.

Choose from official Sei Foundation endpoints or community-maintained alternatives. All endpoints support standard EVM JSON-RPC methods. Public endpoints have rate limits — for production apps, use a [dedicated RPC provider](/learn/rpc-providers) or [run your own node](/node).

Expand All @@ -86,19 +86,19 @@
<Tab title="Sei Mainnet">
| Endpoint | Provider | Type | Rate limit | Notes |
| --- | --- | --- | --- | --- |
| `https://evm-rpc.sei-apis.com` | Sei Foundation | <span style={{ backgroundColor: 'rgba(34,197,94,0.15)', color: '#16a34a', padding: '0.125rem 0.5rem', borderRadius: '9999px', fontSize: '0.75rem', fontWeight: 600 }}>public</span> | 10 req/s | Recommended for development |
| `https://evm-rpc-sei.stingray.plus` | Staketab | <span style={{ backgroundColor: 'rgba(34,197,94,0.15)', color: '#16a34a', padding: '0.125rem 0.5rem', borderRadius: '9999px', fontSize: '0.75rem', fontWeight: 600 }}>public</span> | — | Community maintained |
| `https://sei-evm-rpc.publicnode.com` | PublicNode | <span style={{ backgroundColor: 'rgba(34,197,94,0.15)', color: '#16a34a', padding: '0.125rem 0.5rem', borderRadius: '9999px', fontSize: '0.75rem', fontWeight: 600 }}>public</span> | 5 req/s | Community maintained |
| `https://seievm-rpc.polkachu.com` | Polkachu | <span style={{ backgroundColor: 'rgba(34,197,94,0.15)', color: '#16a34a', padding: '0.125rem 0.5rem', borderRadius: '9999px', fontSize: '0.75rem', fontWeight: 600 }}>public</span> | — | Community maintained |
| `https://jsonrpc.lavenderfive.com:443/sei` | LavenderFive | <span style={{ backgroundColor: 'rgba(34,197,94,0.15)', color: '#16a34a', padding: '0.125rem 0.5rem', borderRadius: '9999px', fontSize: '0.75rem', fontWeight: 600 }}>public</span> | — | Community maintained |
| `https://evm-rpc.sei-apis.com` | Sei Foundation | <span className="rounded-full px-2 py-0.5 text-xs font-semibold bg-green-500/15 text-green-800 dark:text-green-400">public</span> | 10 req/s | Recommended for 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] These badges move from inline styles (which render unconditionally) to Tailwind utilities, which is the opposite direction from this PR's central thesis that Mintlify's extractor is the fragile part. In MDX the classes are literal so extraction should work, and the dark-mode fix is a genuine improvement — just noting the trade: if the extractor ever misses MDX table cells the badges lose all styling (pill, padding, size), not just their colour, whereas the previous form could only be wrong about colour. Since the fix needed is only color, keeping the inline style and adding a dark: hook via a small semantic class in style.css would be strictly safer.

| `https://evm-rpc-sei.stingray.plus` | Staketab | <span className="rounded-full px-2 py-0.5 text-xs font-semibold bg-green-500/15 text-green-800 dark:text-green-400">public</span> | — | Community maintained |
| `https://sei-evm-rpc.publicnode.com` | PublicNode | <span className="rounded-full px-2 py-0.5 text-xs font-semibold bg-green-500/15 text-green-800 dark:text-green-400">public</span> | 5 req/s | Community maintained |
| `https://seievm-rpc.polkachu.com` | Polkachu | <span className="rounded-full px-2 py-0.5 text-xs font-semibold bg-green-500/15 text-green-800 dark:text-green-400">public</span> | — | Community maintained |
| `https://jsonrpc.lavenderfive.com:443/sei` | LavenderFive | <span className="rounded-full px-2 py-0.5 text-xs font-semibold bg-green-500/15 text-green-800 dark:text-green-400">public</span> | — | Community maintained |
</Tab>
<Tab title="Sei Testnet">
| Endpoint | Provider | Type | Rate limit | Notes |
| --- | --- | --- | --- | --- |
| `https://evm-rpc-testnet.sei-apis.com` | Sei Foundation | <span style={{ backgroundColor: 'rgba(34,197,94,0.15)', color: '#16a34a', padding: '0.125rem 0.5rem', borderRadius: '9999px', fontSize: '0.75rem', fontWeight: 600 }}>public</span> | 20 req/s | Recommended for testing |
| `https://evm-rpc-testnet-sei.stingray.plus` | Staketab | <span style={{ backgroundColor: 'rgba(34,197,94,0.15)', color: '#16a34a', padding: '0.125rem 0.5rem', borderRadius: '9999px', fontSize: '0.75rem', fontWeight: 600 }}>public</span> | — | Community maintained |
| `https://seievm-testnet-rpc.polkachu.com` | Polkachu | <span style={{ backgroundColor: 'rgba(34,197,94,0.15)', color: '#16a34a', padding: '0.125rem 0.5rem', borderRadius: '9999px', fontSize: '0.75rem', fontWeight: 600 }}>public</span> | — | Community maintained |
| `https://sei-testnet.drpc.org` | dRPC | <span style={{ backgroundColor: 'rgba(34,197,94,0.15)', color: '#16a34a', padding: '0.125rem 0.5rem', borderRadius: '9999px', fontSize: '0.75rem', fontWeight: 600 }}>public</span> | — | Community maintained |
| `https://evm-rpc-testnet.sei-apis.com` | Sei Foundation | <span className="rounded-full px-2 py-0.5 text-xs font-semibold bg-green-500/15 text-green-800 dark:text-green-400">public</span> | 20 req/s | Recommended for testing |
| `https://evm-rpc-testnet-sei.stingray.plus` | Staketab | <span className="rounded-full px-2 py-0.5 text-xs font-semibold bg-green-500/15 text-green-800 dark:text-green-400">public</span> | — | Community maintained |
| `https://seievm-testnet-rpc.polkachu.com` | Polkachu | <span className="rounded-full px-2 py-0.5 text-xs font-semibold bg-green-500/15 text-green-800 dark:text-green-400">public</span> | — | Community maintained |
| `https://sei-testnet.drpc.org` | dRPC | <span className="rounded-full px-2 py-0.5 text-xs font-semibold bg-green-500/15 text-green-800 dark:text-green-400">public</span> | — | Community maintained |
</Tab>
</Tabs>

Expand Down
Loading
Loading