Skip to content
Open
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
1 change: 1 addition & 0 deletions docs.json
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,7 @@
"evm/evm-general",
"evm/evm-hardhat",
"evm/evm-foundry",
"evm/python-quickstart",
"evm/evm-wizard",
"evm/solidity-resources",
{
Expand Down
252 changes: 116 additions & 136 deletions evm/evm-hardhat.mdx

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion evm/evm-parity/examples/deploy-verify.mdx
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
---
title: 'Deploy and Verify'
description: 'Deploying and verifying smart contracts on Sei with viem, ethers, Foundry, and Hardhat'

Check warning on line 3 in evm/evm-parity/examples/deploy-verify.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/deploy-verify.mdx#L3

Did you really mean 'Sei'?

Check warning on line 3 in evm/evm-parity/examples/deploy-verify.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/deploy-verify.mdx#L3

Did you really mean 'viem'?

Check warning on line 3 in evm/evm-parity/examples/deploy-verify.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/deploy-verify.mdx#L3

Did you really mean 'ethers'?
---

# Deploy and Verify

Sei is EVM-compatible — standard deployment tooling works without modification. This page covers deploying a contract and verifying its source on the Sei block explorer.

Check warning on line 8 in evm/evm-parity/examples/deploy-verify.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/deploy-verify.mdx#L8

Did you really mean 'Sei'?

Check warning on line 8 in evm/evm-parity/examples/deploy-verify.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/deploy-verify.mdx#L8

Did you really mean 'Sei'?

For a deeper look at verification options (Remix, Sourcify UI, batch verification), see the [Verify Contracts](/evm/evm-verify-contracts) page.

Check warning on line 10 in evm/evm-parity/examples/deploy-verify.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/deploy-verify.mdx#L10

Did you really mean 'Sourcify'?

## Deploying with viem or ethers

Check warning on line 12 in evm/evm-parity/examples/deploy-verify.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/deploy-verify.mdx#L12

Did you really mean 'viem'?

Check warning on line 12 in evm/evm-parity/examples/deploy-verify.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/deploy-verify.mdx#L12

Did you really mean 'ethers'?

<CodeGroup>

```ts viem
import { createPublicClient, createWalletClient, http } from 'viem';
import { privateKeyToAccount } from 'viem/accounts';
import { sei } from '@sei-js/precompiles/viem';
import { sei } from 'viem/chains';

const account = privateKeyToAccount('0xYourPrivateKey');
const publicClient = createPublicClient({ chain: sei, transport: http() });
Expand Down Expand Up @@ -49,7 +49,7 @@

## Deploying with Foundry

Foundry works against Sei with the standard `--rpc-url` flag.

Check warning on line 52 in evm/evm-parity/examples/deploy-verify.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/deploy-verify.mdx#L52

Did you really mean 'Sei'?

```bash
forge create src/MyContract.sol:MyContract \
Expand All @@ -58,7 +58,7 @@
--constructor-args arg1 arg2
```

For testnet:

Check warning on line 61 in evm/evm-parity/examples/deploy-verify.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/deploy-verify.mdx#L61

Did you really mean 'testnet'?

```bash
forge create src/MyContract.sol:MyContract \
Expand All @@ -68,7 +68,7 @@

## Deploying with Hardhat

Add Sei networks to your `hardhat.config.ts`:

Check warning on line 71 in evm/evm-parity/examples/deploy-verify.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/deploy-verify.mdx#L71

Did you really mean 'Sei'?

```ts
import { HardhatUserConfig } from 'hardhat/config';
Expand Down Expand Up @@ -99,7 +99,7 @@

## Verifying Contracts

Sei's block explorer is [Seiscan](https://seiscan.io). The recommended verification method is [Sourcify](https://sourcify.dev/) — no API key required.

Check warning on line 102 in evm/evm-parity/examples/deploy-verify.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/deploy-verify.mdx#L102

Did you really mean 'Sei's'?

### Foundry

Expand All @@ -124,7 +124,7 @@
--chain-id 1329
```

For testnet, use `--chain-id 1328` and `--rpc-url https://evm-rpc-testnet.sei-apis.com`.

Check warning on line 127 in evm/evm-parity/examples/deploy-verify.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/deploy-verify.mdx#L127

Did you really mean 'testnet'?

### Hardhat

Expand All @@ -134,7 +134,7 @@
npm install --save-dev @nomicfoundation/hardhat-verify
```

Add it to `hardhat.config.ts` — no additional Sourcify config block is needed:

Check warning on line 137 in evm/evm-parity/examples/deploy-verify.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/deploy-verify.mdx#L137

Did you really mean 'Sourcify'?

```ts
import '@nomicfoundation/hardhat-verify';
Expand Down Expand Up @@ -171,6 +171,6 @@

| Network | Chain ID | RPC | Explorer |
| --- | --- | --- | --- |
| Mainnet | 1329 | `https://evm-rpc.sei-apis.com` | [seiscan.io](https://seiscan.io) |

Check warning on line 174 in evm/evm-parity/examples/deploy-verify.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/deploy-verify.mdx#L174

Did you really mean 'Mainnet'?
| Testnet | 1328 | `https://evm-rpc-testnet.sei-apis.com` | [testnet.seiscan.io](https://testnet.seiscan.io) |

Check warning on line 175 in evm/evm-parity/examples/deploy-verify.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/deploy-verify.mdx#L175

Did you really mean 'Testnet'?
| Devnet | 713715 | `https://evm-rpc-arctic-1.sei-apis.com` | — |

Check warning on line 176 in evm/evm-parity/examples/deploy-verify.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/deploy-verify.mdx#L176

Did you really mean 'Devnet'?
2 changes: 1 addition & 1 deletion evm/evm-parity/examples/erc1155.mdx
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
---
title: 'ERC-1155 Interaction'
description: 'Reading and writing ERC-1155 multi-token contracts on Sei with viem and ethers'

Check warning on line 3 in evm/evm-parity/examples/erc1155.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/erc1155.mdx#L3

Did you really mean 'Sei'?

Check warning on line 3 in evm/evm-parity/examples/erc1155.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/erc1155.mdx#L3

Did you really mean 'viem'?

Check warning on line 3 in evm/evm-parity/examples/erc1155.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/erc1155.mdx#L3

Did you really mean 'ethers'?
---

# ERC-1155 Interaction

ERC-1155 is the multi-token standard — a single contract can hold both fungible tokens (like gold coins in a game) and non-fungible tokens (like unique items), with efficient batch operations built in. Standard ERC-1155 contracts work on Sei without modification.

Check warning on line 8 in evm/evm-parity/examples/erc1155.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/erc1155.mdx#L8

Did you really mean 'Sei'?

## Setup

Expand All @@ -14,7 +14,7 @@
```ts viem
import { createPublicClient, createWalletClient, http, parseAbi } from 'viem';
import { privateKeyToAccount } from 'viem/accounts';
import { sei } from '@sei-js/precompiles/viem';
import { sei } from 'viem/chains';

const client = createPublicClient({ chain: sei, transport: http() });
const account = privateKeyToAccount('0xYourPrivateKey');
Expand Down
2 changes: 1 addition & 1 deletion evm/evm-parity/examples/erc20.mdx
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
---
title: 'ERC-20 Interaction'
description: 'Reading and writing ERC-20 tokens on Sei with viem and ethers'

Check warning on line 3 in evm/evm-parity/examples/erc20.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/erc20.mdx#L3

Did you really mean 'Sei'?

Check warning on line 3 in evm/evm-parity/examples/erc20.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/erc20.mdx#L3

Did you really mean 'viem'?

Check warning on line 3 in evm/evm-parity/examples/erc20.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/erc20.mdx#L3

Did you really mean 'ethers'?
---

# ERC-20 Interaction

Standard ERC-20 contracts work on Sei without modification. This page covers the common read and write operations using viem and ethers.

Check warning on line 8 in evm/evm-parity/examples/erc20.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/erc20.mdx#L8

Did you really mean 'Sei'?

Check warning on line 8 in evm/evm-parity/examples/erc20.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/erc20.mdx#L8

Did you really mean 'viem'?

Check warning on line 8 in evm/evm-parity/examples/erc20.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/erc20.mdx#L8

Did you really mean 'ethers'?

## Setup

Expand All @@ -14,7 +14,7 @@
```ts viem
import { createPublicClient, createWalletClient, http, parseAbi } from 'viem';
import { privateKeyToAccount } from 'viem/accounts';
import { sei } from '@sei-js/precompiles/viem';
import { sei } from 'viem/chains';

const client = createPublicClient({ chain: sei, transport: http() });
const account = privateKeyToAccount('0xYourPrivateKey');
Expand Down Expand Up @@ -227,4 +227,4 @@

## CosmWasm Token Compatibility

CW20 tokens on Sei have ERC-20 pointer contracts that expose the standard ERC-20 interface. You can use all of the patterns above against a CW20 pointer address. See [Pointer Contracts](/evm/evm-parity/examples/pointer-contracts) for how to look up the pointer address.

Check warning on line 230 in evm/evm-parity/examples/erc20.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/erc20.mdx#L230

Did you really mean 'Sei'?
2 changes: 1 addition & 1 deletion evm/evm-parity/examples/erc721.mdx
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
---
title: 'ERC-721 Interaction'
description: 'Reading and writing ERC-721 NFTs on Sei with viem and ethers'

Check warning on line 3 in evm/evm-parity/examples/erc721.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/erc721.mdx#L3

Did you really mean 'NFTs'?

Check warning on line 3 in evm/evm-parity/examples/erc721.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/erc721.mdx#L3

Did you really mean 'Sei'?

Check warning on line 3 in evm/evm-parity/examples/erc721.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/erc721.mdx#L3

Did you really mean 'viem'?

Check warning on line 3 in evm/evm-parity/examples/erc721.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/erc721.mdx#L3

Did you really mean 'ethers'?
---

# ERC-721 Interaction

Standard ERC-721 contracts work on Sei without modification. This page covers reading token ownership, transferring NFTs, and managing approvals.

Check warning on line 8 in evm/evm-parity/examples/erc721.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/erc721.mdx#L8

Did you really mean 'Sei'?

Check warning on line 8 in evm/evm-parity/examples/erc721.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/erc721.mdx#L8

Did you really mean 'NFTs'?

## Setup

Expand All @@ -14,7 +14,7 @@
```ts viem
import { createPublicClient, createWalletClient, http, parseAbi } from 'viem';
import { privateKeyToAccount } from 'viem/accounts';
import { sei } from '@sei-js/precompiles/viem';
import { sei } from 'viem/chains';

const client = createPublicClient({ chain: sei, transport: http() });
const account = privateKeyToAccount('0xYourPrivateKey');
Expand Down Expand Up @@ -221,4 +221,4 @@

## CosmWasm NFT Compatibility

CW721 tokens on Sei have ERC-721 pointer contracts that expose the standard ERC-721 interface. You can use all of the patterns above against a CW721 pointer address. See [Pointer Contracts](/evm/evm-parity/examples/pointer-contracts) for how to look up the pointer address.

Check warning on line 224 in evm/evm-parity/examples/erc721.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/erc721.mdx#L224

Did you really mean 'Sei'?
42 changes: 12 additions & 30 deletions evm/evm-parity/examples/ethers-quickstart.mdx
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
---
title: 'ethers v6 Quickstart'

Check warning on line 2 in evm/evm-parity/examples/ethers-quickstart.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/ethers-quickstart.mdx#L2

Did you really mean 'ethers'?
description: 'Using ethers v6 with Sei in a Node.js script or browser context'

Check warning on line 3 in evm/evm-parity/examples/ethers-quickstart.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/ethers-quickstart.mdx#L3

Did you really mean 'ethers'?

Check warning on line 3 in evm/evm-parity/examples/ethers-quickstart.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/ethers-quickstart.mdx#L3

Did you really mean 'Sei'?
---

# ethers v6 Quickstart

Check warning on line 6 in evm/evm-parity/examples/ethers-quickstart.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/ethers-quickstart.mdx#L6

Did you really mean 'ethers'?

This example covers ethers v6 with Sei. The patterns apply whether you are writing a Node.js script, a CLI tool, or a browser app.

Check warning on line 8 in evm/evm-parity/examples/ethers-quickstart.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/ethers-quickstart.mdx#L8

Did you really mean 'ethers'?

## Install

Expand All @@ -13,6 +13,12 @@
npm install ethers
```

These snippets are TypeScript. Run any of them with no separate build step using [`tsx`](https://www.npmjs.com/package/tsx) (Node 18+):

```bash
npx tsx script.ts
```

## Read-Only Provider

```ts
Expand All @@ -26,13 +32,16 @@
This is the first milestone — it needs no private key.

```ts
// Any valid Sei EVM address — swap in your own
const address = '0x0000000000000000000000000000000000000000';

const blockNumber = await provider.getBlockNumber(); // number
console.log('Block number:', blockNumber);

const balance = await provider.getBalance('0xYourAddress'); // bigint, wei
const balance = await provider.getBalance(address); // bigint, wei
console.log('Balance (SEI):', ethers.formatEther(balance));

const nonce = await provider.getTransactionCount('0xYourAddress'); // number
const nonce = await provider.getTransactionCount(address); // number
console.log('Nonce:', nonce);
```

Expand All @@ -44,7 +53,7 @@
Nonce: 7
```

The exact numbers are illustrative — your block number and balance will differ. `getBlockNumber()` and `getTransactionCount()` return a `number`, while `getBalance()` returns a `bigint` in wei (format it with `ethers.formatEther()`).

Check warning on line 56 in evm/evm-parity/examples/ethers-quickstart.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/ethers-quickstart.mdx#L56

Did you really mean 'wei'?

## Browser Provider

Expand All @@ -66,7 +75,7 @@

## Sending a Transaction

Next step — this requires a funded account; get testnet SEI from the [faucet](/learn/faucet).

Check warning on line 78 in evm/evm-parity/examples/ethers-quickstart.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/ethers-quickstart.mdx#L78

Did you really mean 'testnet'?

```ts
const tx = await wallet.sendTransaction({
Expand Down Expand Up @@ -119,36 +128,9 @@
contract.off('Transfer');
```

## Using Python (web3.py)

Sei is fully EVM-compatible, so any standard Ethereum client works — including Python's [web3.py](https://web3py.readthedocs.io).

```bash
pip install web3
```

```python
from web3 import Web3

w3 = Web3(Web3.HTTPProvider("https://evm-rpc.sei-apis.com"))

print("Connected:", w3.is_connected())
print("Latest block:", w3.eth.block_number)
print("Chain ID:", w3.eth.chain_id) # 1329
```

**You're done when you see:**

```text
Connected: True
Latest block: 148203117
Chain ID: 1329
```

The block number is illustrative; the chain ID is always `1329` on mainnet.

## Next Steps

- [Python quickstart (web3.py)](/evm/python-quickstart) — the same first steps in Python
- [ERC-20 interaction](/evm/evm-parity/examples/erc20) — full token read/write examples
- [ERC-721 interaction](/evm/evm-parity/examples/erc721) — NFT ownership, transfers, and approvals
- [Pointer contracts](/evm/evm-parity/examples/pointer-contracts) — interact with CosmWasm tokens via ERC interfaces
Expand Down
2 changes: 1 addition & 1 deletion evm/evm-parity/examples/multicall.mdx
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
---
title: 'Multicall'
description: 'Batch multiple contract reads into a single RPC call using Multicall3 on Sei'

Check warning on line 3 in evm/evm-parity/examples/multicall.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/multicall.mdx#L3

Did you really mean 'Multicall'?

Check warning on line 3 in evm/evm-parity/examples/multicall.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/multicall.mdx#L3

Did you really mean 'Sei'?
---

# Multicall

Check warning on line 6 in evm/evm-parity/examples/multicall.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/multicall.mdx#L6

Did you really mean 'Multicall'?

Multicall3 lets you batch multiple read calls into a single RPC round-trip, dramatically reducing latency for dashboards, portfolio pages, and any view that needs data from multiple contracts at once.

Multicall3 is deployed at `0xcA11bde05977b3631167028862bE2a173976CA11` on Sei mainnet and testnet — the same address as Ethereum.

Check warning on line 10 in evm/evm-parity/examples/multicall.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/multicall.mdx#L10

Did you really mean 'Sei'?

Check warning on line 10 in evm/evm-parity/examples/multicall.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/multicall.mdx#L10

Did you really mean 'mainnet'?

Check warning on line 10 in evm/evm-parity/examples/multicall.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/multicall.mdx#L10

Did you really mean 'testnet'?

Check warning on line 10 in evm/evm-parity/examples/multicall.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/multicall.mdx#L10

Did you really mean 'Ethereum'?

## Batching ERC-20 Reads with viem

Check warning on line 12 in evm/evm-parity/examples/multicall.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/multicall.mdx#L12

Did you really mean 'viem'?

viem's `multicall` action wraps Multicall3 automatically:

Check warning on line 14 in evm/evm-parity/examples/multicall.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/multicall.mdx#L14

Did you really mean 'viem's'?

```ts
import { createPublicClient, http, parseAbi } from 'viem';
import { sei } from '@sei-js/precompiles/viem';
import { sei } from 'viem/chains';

const client = createPublicClient({ chain: sei, transport: http() });

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

## Allowing Individual Call Failures

By default, a single failed call causes the entire batch to revert. Use `allowFailure: true` (the default in viem) to get partial results instead:

Check warning on line 60 in evm/evm-parity/examples/multicall.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/multicall.mdx#L60

Did you really mean 'viem'?

```ts
const results = await client.multicall({
Expand All @@ -77,9 +77,9 @@
});
```

## Batching with ethers

Check warning on line 80 in evm/evm-parity/examples/multicall.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/multicall.mdx#L80

Did you really mean 'ethers'?

ethers doesn't have a built-in multicall action, but you can call the Multicall3 contract directly:

Check warning on line 82 in evm/evm-parity/examples/multicall.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/multicall.mdx#L82

Did you really mean 'ethers'?

Check warning on line 82 in evm/evm-parity/examples/multicall.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/multicall.mdx#L82

Did you really mean 'multicall'?

```ts
import { ethers } from 'ethers';
Expand Down Expand Up @@ -116,7 +116,7 @@
});
```

## Wagmi

Check warning on line 119 in evm/evm-parity/examples/multicall.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/multicall.mdx#L119

Did you really mean 'Wagmi'?

In React apps, `useReadContracts` handles batching automatically:

Expand Down
2 changes: 1 addition & 1 deletion evm/evm-parity/examples/pointer-contracts.mdx
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
---
title: 'Pointer Contracts'
description: 'Looking up and interacting with pointer contracts that bridge CosmWasm and EVM tokens on Sei'

Check warning on line 3 in evm/evm-parity/examples/pointer-contracts.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/pointer-contracts.mdx#L3

Did you really mean 'Sei'?
---

# Pointer Contracts

Sei runs two token execution environments side by side — EVM and CosmWasm. Pointer contracts are automatically deployed EVM contracts that proxy a CosmWasm token, and vice versa.

Check warning on line 8 in evm/evm-parity/examples/pointer-contracts.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/pointer-contracts.mdx#L8

Did you really mean 'Sei'?

| Token | Pointer type | EVM interface |
| --- | --- | --- |
| CW20 (CosmWasm fungible token) | ERC-20 pointer | Standard ERC-20 |
| CW721 (CosmWasm NFT) | ERC-721 pointer | Standard ERC-721 |
| Native Sei token (bank module) | ERC-20 pointer | Standard ERC-20 |

Check warning on line 14 in evm/evm-parity/examples/pointer-contracts.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/pointer-contracts.mdx#L14

Did you really mean 'Sei'?

Once you have the pointer address, you interact with it using the standard ERC-20 or ERC-721 interface — no Sei-specific code needed.

Expand All @@ -19,13 +19,13 @@

## Looking Up a Pointer Address

The pointerview precompile resolves pointer addresses by CosmWasm contract address or native denom. Its ABI and address are exported from `@sei-js/precompiles`.

Check warning on line 22 in evm/evm-parity/examples/pointer-contracts.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/pointer-contracts.mdx#L22

Did you really mean 'pointerview'?

Check warning on line 22 in evm/evm-parity/examples/pointer-contracts.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/pointer-contracts.mdx#L22

Did you really mean 'precompile'?

<CodeGroup>

```ts viem
import { createPublicClient, http } from 'viem';
import { sei } from '@sei-js/precompiles/viem';
import { sei } from 'viem/chains';
import {
POINTERVIEW_PRECOMPILE_ABI,
POINTERVIEW_PRECOMPILE_ADDRESS,
Expand Down
2 changes: 1 addition & 1 deletion evm/evm-parity/examples/transaction-lifecycle.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: 'Transaction Lifecycle'
description: 'Send transactions, wait for receipts, and decode event logs on Sei'

Check warning on line 3 in evm/evm-parity/examples/transaction-lifecycle.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/transaction-lifecycle.mdx#L3

Did you really mean 'Sei'?
---

# Transaction Lifecycle
Expand All @@ -14,7 +14,7 @@
```ts viem
import { createWalletClient, http, parseEther } from 'viem';
import { privateKeyToAccount } from 'viem/accounts';
import { sei } from '@sei-js/precompiles/viem';
import { sei } from 'viem/chains';

const account = privateKeyToAccount('0xYourPrivateKey');
const walletClient = createWalletClient({ account, chain: sei, transport: http() });
Expand Down Expand Up @@ -136,7 +136,7 @@

## Checking for Revert

A receipt with `status: 'reverted'` (viem) or `status: 0` (ethers) means the transaction was included but the execution failed. The gas was still consumed.

Check warning on line 139 in evm/evm-parity/examples/transaction-lifecycle.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/transaction-lifecycle.mdx#L139

Did you really mean 'viem'?

Check warning on line 139 in evm/evm-parity/examples/transaction-lifecycle.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/transaction-lifecycle.mdx#L139

Did you really mean 'ethers'?

```ts viem
const receipt = await client.waitForTransactionReceipt({ hash });
Expand Down
48 changes: 15 additions & 33 deletions evm/evm-parity/examples/viem-quickstart.mdx
Original file line number Diff line number Diff line change
@@ -1,16 +1,22 @@
---
title: 'viem Quickstart'

Check warning on line 2 in evm/evm-parity/examples/viem-quickstart.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/viem-quickstart.mdx#L2

Did you really mean 'viem'?
description: 'Using viem with Sei in a Node.js script, CLI tool, or backend service'

Check warning on line 3 in evm/evm-parity/examples/viem-quickstart.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/viem-quickstart.mdx#L3

Did you really mean 'viem'?

Check warning on line 3 in evm/evm-parity/examples/viem-quickstart.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/viem-quickstart.mdx#L3

Did you really mean 'Sei'?
---

# viem Quickstart

Check warning on line 6 in evm/evm-parity/examples/viem-quickstart.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/viem-quickstart.mdx#L6

Did you really mean 'viem'?

This example shows how to use viem with Sei outside of a React context — in a Node.js script, CLI tool, or backend service. For React apps, see [wagmi](https://wagmi.sh) and the [frontend guide](/evm/building-a-frontend).

Check warning on line 8 in evm/evm-parity/examples/viem-quickstart.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/viem-quickstart.mdx#L8

Did you really mean 'viem'?

Check warning on line 8 in evm/evm-parity/examples/viem-quickstart.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/viem-quickstart.mdx#L8

Did you really mean 'Sei'?

## Install

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

These snippets are TypeScript. Run any of them with no separate build step using [`tsx`](https://www.npmjs.com/package/tsx) (Node 18+):

```bash
npx tsx script.ts
```

## Public Client
Expand All @@ -19,7 +25,7 @@

```ts
import { createPublicClient, http } from 'viem';
import { sei } from '@sei-js/precompiles/viem';
import { sei } from 'viem/chains';

const client = createPublicClient({
chain: sei,
Expand All @@ -43,13 +49,16 @@
```ts
import { formatEther } from 'viem';

// Any valid Sei EVM address — swap in your own
const address = '0x0000000000000000000000000000000000000000';

const blockNumber = await client.getBlockNumber(); // bigint
console.log('Block number:', blockNumber);

const balance = await client.getBalance({ address: '0xYourAddress' }); // bigint, wei
const balance = await client.getBalance({ address }); // bigint, wei
console.log('Balance (SEI):', formatEther(balance));

const nonce = await client.getTransactionCount({ address: '0xYourAddress' }); // number
const nonce = await client.getTransactionCount({ address }); // number
console.log('Nonce:', nonce);
```

Expand All @@ -70,7 +79,7 @@
```ts
import { createWalletClient, http } from 'viem';
import { privateKeyToAccount } from 'viem/accounts';
import { sei } from '@sei-js/precompiles/viem';
import { sei } from 'viem/chains';

const account = privateKeyToAccount('0xYourPrivateKey');

Expand All @@ -85,7 +94,7 @@

## Sending a Transaction

Next step — this requires a funded account; get testnet SEI from the [faucet](/learn/faucet).

Check warning on line 97 in evm/evm-parity/examples/viem-quickstart.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/viem-quickstart.mdx#L97

Did you really mean 'testnet'?

```ts
import { parseEther } from 'viem';
Expand Down Expand Up @@ -144,7 +153,7 @@

## Estimating Gas

Always use `estimateGas` rather than hard-coding values. SSTORE costs on Sei are governance-adjustable.

Check warning on line 156 in evm/evm-parity/examples/viem-quickstart.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/viem-quickstart.mdx#L156

Did you really mean 'Sei'?

```ts
const gas = await client.estimateGas({
Expand All @@ -154,36 +163,9 @@
});
```

## Using Python (web3.py)

Sei is fully EVM-compatible, so any standard Ethereum client works — including Python's [web3.py](https://web3py.readthedocs.io).

```bash
pip install web3
```

```python
from web3 import Web3

w3 = Web3(Web3.HTTPProvider("https://evm-rpc.sei-apis.com"))

print("Connected:", w3.is_connected())
print("Latest block:", w3.eth.block_number)
print("Chain ID:", w3.eth.chain_id) # 1329
```

**You're done when you see:**

```text
Connected: True
Latest block: 148203117
Chain ID: 1329
```

The block number is illustrative; the chain ID is always `1329` on mainnet.

## Next Steps

- [Python quickstart (web3.py)](/evm/python-quickstart) — the same first steps in Python
- [ERC-20 interaction](/evm/evm-parity/examples/erc20) — full token read/write examples
- [ERC-721 interaction](/evm/evm-parity/examples/erc721) — NFT ownership, transfers, and approvals
- [Pointer contracts](/evm/evm-parity/examples/pointer-contracts) — interact with CosmWasm tokens via ERC interfaces
Expand Down
4 changes: 2 additions & 2 deletions evm/evm-parity/examples/wagmi-react.mdx
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
---
title: 'Wagmi + React'

Check warning on line 2 in evm/evm-parity/examples/wagmi-react.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/wagmi-react.mdx#L2

Did you really mean 'Wagmi'?
description: 'Connect wallets, read chain state, and write transactions in a React app on Sei using Wagmi'

Check warning on line 3 in evm/evm-parity/examples/wagmi-react.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/wagmi-react.mdx#L3

Did you really mean 'Sei'?

Check warning on line 3 in evm/evm-parity/examples/wagmi-react.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/wagmi-react.mdx#L3

Did you really mean 'Wagmi'?
---

# Wagmi + React

Check warning on line 6 in evm/evm-parity/examples/wagmi-react.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/wagmi-react.mdx#L6

Did you really mean 'Wagmi'?

[Wagmi](https://wagmi.sh) is the standard React library for EVM wallet connections and contract interactions. This page covers the essential patterns for a Sei frontend: configuration, wallet connect/disconnect, reading balances, and writing to contracts.

Check warning on line 8 in evm/evm-parity/examples/wagmi-react.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/wagmi-react.mdx#L8

Did you really mean 'Sei'?

For Node.js scripts and backend services, see the [viem Quickstart](/evm/evm-parity/examples/viem-quickstart) instead.

Expand All @@ -17,13 +17,13 @@

## Configuration

Configure Wagmi with the Sei chain and your preferred wallet connectors:

Check warning on line 20 in evm/evm-parity/examples/wagmi-react.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/wagmi-react.mdx#L20

Did you really mean 'Wagmi'?

Check warning on line 20 in evm/evm-parity/examples/wagmi-react.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/wagmi-react.mdx#L20

Did you really mean 'Sei'?

```ts
// wagmi.config.ts
import { createConfig, http } from 'wagmi';
import { injected, walletConnect } from 'wagmi/connectors';
import { sei, seiTestnet } from '@sei-js/precompiles/viem';
import { sei, seiTestnet } from 'viem/chains';

export const config = createConfig({
chains: [sei, seiTestnet],
Expand Down Expand Up @@ -183,7 +183,7 @@

```tsx
import { useChainId, useSwitchChain } from 'wagmi';
import { sei, seiTestnet } from '@sei-js/precompiles/viem';
import { sei, seiTestnet } from 'viem/chains';

export function NetworkSwitcher() {
const chainId = useChainId();
Expand Down
2 changes: 1 addition & 1 deletion evm/evm-parity/finality.mdx
Original file line number Diff line number Diff line change
@@ -1,29 +1,29 @@
---
title: 'Finality and Block Tags'
description: 'How Sei instant finality affects block tag behavior and pending state'

Check warning on line 3 in evm/evm-parity/finality.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/finality.mdx#L3

Did you really mean 'Sei'?
---

# Finality and Block Tags

Sei uses Twin Turbo Consensus, which provides instant finality. Every committed block is final immediately — there is no period where a block could be reorganized away.

Check warning on line 8 in evm/evm-parity/finality.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/finality.mdx#L8

Did you really mean 'Sei'?

This changes how block tags behave compared to Ethereum.

Check warning on line 10 in evm/evm-parity/finality.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/finality.mdx#L10

Did you really mean 'Ethereum'?

## Block Tags

On Ethereum, `latest`, `safe`, and `finalized` refer to different points in the chain:

Check warning on line 14 in evm/evm-parity/finality.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/finality.mdx#L14

Did you really mean 'Ethereum'?

- `latest` — the most recent block, possibly not yet safe
- `safe` — a block unlikely to be reorganized
- `finalized` — a block that is permanently committed

On Sei, all three tags resolve to the same block. There is no reorg risk at any point after a block is committed, so the distinction does not exist.

Check warning on line 20 in evm/evm-parity/finality.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/finality.mdx#L20

Did you really mean 'Sei'?

<CodeGroup>

```ts viem
import { createPublicClient, http } from 'viem';
import { sei } from '@sei-js/precompiles/viem';
import { sei } from 'viem/chains';

const client = createPublicClient({ chain: sei, transport: http() });

Expand Down Expand Up @@ -66,9 +66,9 @@

## Pending State

Sei does not expose Ethereum-style pending state. Do not rely on:

Check warning on line 69 in evm/evm-parity/finality.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/finality.mdx#L69

Did you really mean 'Sei'?

- Reading pending transactions from the mempool

Check warning on line 71 in evm/evm-parity/finality.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/finality.mdx#L71

Did you really mean 'mempool'?
- `eth_getBlockByNumber` with `'pending'`
- Pending nonce differing from the confirmed nonce

Expand All @@ -76,9 +76,9 @@

## Practical Impact

| Pattern | On Ethereum | On Sei |

Check warning on line 79 in evm/evm-parity/finality.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/finality.mdx#L79

Did you really mean 'Ethereum'?

Check warning on line 79 in evm/evm-parity/finality.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/finality.mdx#L79

Did you really mean 'Sei'?
| --- | --- | --- |
| Wait for `finalized` tag | Waits ~13 minutes | Returns immediately |
| Check `safe` vs `latest` | Different blocks | Same block |
| Read pending mempool | Supported | Not reliable |

Check warning on line 83 in evm/evm-parity/finality.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/finality.mdx#L83

Did you really mean 'mempool'?
| Confirmation count | Meaningful | 1 is sufficient |
2 changes: 1 addition & 1 deletion evm/evm-parity/gas-and-fees.mdx
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
---
title: 'Gas and Fees'
description: 'Sei gas price floor, EIP-1559 fee model differences, and SSTORE cost'

Check warning on line 3 in evm/evm-parity/gas-and-fees.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/gas-and-fees.mdx#L3

Did you really mean 'Sei'?
---

# Gas and Fees

Sei supports both legacy and EIP-1559 transactions, but the fee model differs from Ethereum in three ways that affect how you estimate and set gas.

Check warning on line 8 in evm/evm-parity/gas-and-fees.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/gas-and-fees.mdx#L8

Did you really mean 'Sei'?

Check warning on line 8 in evm/evm-parity/gas-and-fees.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/gas-and-fees.mdx#L8

Did you really mean 'Ethereum'?

## Legacy Gas Price Floor

Legacy transactions (type 0) on Sei must meet a minimum gas price set by on-chain governance. This floor can change via governance proposals — do not hard-code a specific value.

Check warning on line 12 in evm/evm-parity/gas-and-fees.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/gas-and-fees.mdx#L12

Did you really mean 'Sei'?

Use `eth_gasPrice` to read the current minimum:

Expand All @@ -17,7 +17,7 @@

```ts viem
import { createPublicClient, http } from 'viem';
import { sei } from '@sei-js/precompiles/viem';
import { sei } from 'viem/chains';

const client = createPublicClient({ chain: sei, transport: http() });
const gasPrice = await client.getGasPrice();
Expand All @@ -35,7 +35,7 @@

## EIP-1559 Fee Model

Sei supports EIP-1559 transactions (type 2), but does not burn the base fee. Fees go entirely to validators rather than being partially burned as on Ethereum.

Check warning on line 38 in evm/evm-parity/gas-and-fees.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/gas-and-fees.mdx#L38

Did you really mean 'Sei'?

Check warning on line 38 in evm/evm-parity/gas-and-fees.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/gas-and-fees.mdx#L38

Did you really mean 'validators'?

Check warning on line 38 in evm/evm-parity/gas-and-fees.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/gas-and-fees.mdx#L38

Did you really mean 'Ethereum'?

This does not affect how you construct or send transactions — `maxFeePerGas` and `maxPriorityFeePerGas` work as expected. It is relevant only if your application models token supply or displays fee-burn information to users.

Expand Down Expand Up @@ -84,9 +84,9 @@

## Summary

| Behavior | Ethereum | Sei |

Check warning on line 87 in evm/evm-parity/gas-and-fees.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/gas-and-fees.mdx#L87

Did you really mean 'Ethereum'?

Check warning on line 87 in evm/evm-parity/gas-and-fees.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/gas-and-fees.mdx#L87

Did you really mean 'Sei'?
| --- | --- | --- |
| Legacy gas floor | Protocol minimum | Governance-set, can change |
| Base fee | Burned | Paid to validators |

Check warning on line 90 in evm/evm-parity/gas-and-fees.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/gas-and-fees.mdx#L90

Did you really mean 'validators'?
| SSTORE cost | Fixed by EIP | Governance-adjustable |
| `estimateGas` | Always correct to use | Required — do not hard-code storage costs |
2 changes: 1 addition & 1 deletion evm/evm-parity/signing.mdx
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
---
title: 'Signing'
description: 'Wallet signing method support and EIP-712 typed data on Sei'

Check warning on line 3 in evm/evm-parity/signing.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/signing.mdx#L3

Did you really mean 'Sei'?
---

# Signing

Signing on Sei works through standard EVM libraries and wallet standards. The methods available depend on which wallet the user has connected.

Check warning on line 8 in evm/evm-parity/signing.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/signing.mdx#L8

Did you really mean 'Sei'?

## Wallet Signing Support

| Method | Standard | Sei Global Wallet | MetaMask | WalletConnect wallets |

Check warning on line 12 in evm/evm-parity/signing.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/signing.mdx#L12

Did you really mean 'Sei'?
| --- | --- | --- | --- | --- |
| `personal_sign` | EIP-191 | Supported | Supported | Wallet-dependent |
| `eth_signTypedData_v4` | EIP-712 | Supported | Supported | Wallet-dependent |
Expand All @@ -24,7 +24,7 @@

```ts viem
import { createWalletClient, custom } from 'viem';
import { sei } from '@sei-js/precompiles/viem';
import { sei } from 'viem/chains';

const client = createWalletClient({
chain: sei,
Expand Down Expand Up @@ -138,7 +138,7 @@

## EIP-1271 Contract Signatures

Smart contract wallets on Sei can validate signatures via EIP-1271 (`isValidSignature`). Use viem's `verifyMessage` with a contract address — it automatically uses EIP-1271 when the address is a contract.

Check warning on line 141 in evm/evm-parity/signing.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/signing.mdx#L141

Did you really mean 'Sei'?

Check warning on line 141 in evm/evm-parity/signing.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/signing.mdx#L141

Did you really mean 'viem's'?

```ts viem
const valid = await verifyMessage({
Expand Down
2 changes: 1 addition & 1 deletion evm/evm-parity/state-proofs.mdx
Original file line number Diff line number Diff line change
@@ -1,29 +1,29 @@
---
title: 'State Proofs'
description: 'How eth_getProof differs on Sei due to IAVL tree storage'

Check warning on line 3 in evm/evm-parity/state-proofs.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/state-proofs.mdx#L3

Did you really mean 'eth_getProof'?

Check warning on line 3 in evm/evm-parity/state-proofs.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/state-proofs.mdx#L3

Did you really mean 'Sei'?
---

# State Proofs

Sei supports `eth_getProof` but returns a different proof format from Ethereum. If your application verifies proofs on-chain or off-chain, you need to account for this difference.

Check warning on line 8 in evm/evm-parity/state-proofs.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/state-proofs.mdx#L8

Did you really mean 'Sei'?

Check warning on line 8 in evm/evm-parity/state-proofs.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/state-proofs.mdx#L8

Did you really mean 'Ethereum'?

## The Difference

Ethereum stores state in a Merkle Patricia Trie (MPT) and `eth_getProof` returns MPT inclusion proofs. Sei stores state in an IAVL tree and returns IAVL proofs instead.

Check warning on line 12 in evm/evm-parity/state-proofs.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/state-proofs.mdx#L12

Did you really mean 'Ethereum'?

Check warning on line 12 in evm/evm-parity/state-proofs.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/state-proofs.mdx#L12

Did you really mean 'Merkle'?

Check warning on line 12 in evm/evm-parity/state-proofs.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/state-proofs.mdx#L12

Did you really mean 'Trie'?

Check warning on line 12 in evm/evm-parity/state-proofs.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/state-proofs.mdx#L12

Did you really mean 'Sei'?

The RPC method exists and responds correctly, but the proof data structure is not compatible with Ethereum MPT proof verifiers.

Check warning on line 14 in evm/evm-parity/state-proofs.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/state-proofs.mdx#L14

Did you really mean 'Ethereum'?

## What This Affects

Most applications do not call `eth_getProof` directly. It is primarily used by:

- Light clients verifying state without trusting an RPC node
- Cross-chain bridges proving inclusion of state on Sei

Check warning on line 21 in evm/evm-parity/state-proofs.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/state-proofs.mdx#L21

Did you really mean 'Sei'?
- Applications verifying contract storage values trustlessly

Check warning on line 22 in evm/evm-parity/state-proofs.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/state-proofs.mdx#L22

Did you really mean 'trustlessly'?

If you are doing standard contract reads, event queries, or transaction lookups, this difference does not affect you.

Check warning on line 24 in evm/evm-parity/state-proofs.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/state-proofs.mdx#L24

Did you really mean 'lookups'?

## Calling eth_getProof

Check warning on line 26 in evm/evm-parity/state-proofs.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/state-proofs.mdx#L26

Did you really mean 'eth_getProof'?

The call works through standard libraries:

Expand All @@ -31,7 +31,7 @@

```ts viem
import { createPublicClient, http } from 'viem';
import { sei } from '@sei-js/precompiles/viem';
import { sei } from 'viem/chains';

const client = createPublicClient({ chain: sei, transport: http() });

Expand Down Expand Up @@ -62,6 +62,6 @@

## Verifying Proofs

To verify Sei state proofs, use an IAVL-compatible verifier. Standard Ethereum MPT verifier libraries (e.g. those used in Solidity or in Ethereum bridge contracts) will reject Sei proofs.

Check warning on line 65 in evm/evm-parity/state-proofs.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/state-proofs.mdx#L65

Did you really mean 'Sei'?

Check warning on line 65 in evm/evm-parity/state-proofs.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/state-proofs.mdx#L65

Did you really mean 'Ethereum'?

Check warning on line 65 in evm/evm-parity/state-proofs.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/state-proofs.mdx#L65

Did you really mean 'Ethereum'?

Check warning on line 65 in evm/evm-parity/state-proofs.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/state-proofs.mdx#L65

Did you really mean 'Sei'?

Refer to the [Sei RPC reference](/evm/reference) for the exact proof schema returned.
2 changes: 1 addition & 1 deletion evm/evm-parity/transaction-types.mdx
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
---
title: 'Transaction Types'
description: 'Which Ethereum transaction types are supported on Sei'

Check warning on line 3 in evm/evm-parity/transaction-types.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/transaction-types.mdx#L3

Did you really mean 'Ethereum'?

Check warning on line 3 in evm/evm-parity/transaction-types.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/transaction-types.mdx#L3

Did you really mean 'Sei'?
---

# Transaction Types

Sei supports most Ethereum transaction types. The one notable exception is blob transactions.

Check warning on line 8 in evm/evm-parity/transaction-types.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/transaction-types.mdx#L8

Did you really mean 'Sei'?

Check warning on line 8 in evm/evm-parity/transaction-types.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/transaction-types.mdx#L8

Did you really mean 'Ethereum'?

## Supported Types

| Type | EIP | Name | Sei support |

Check warning on line 12 in evm/evm-parity/transaction-types.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/transaction-types.mdx#L12

Did you really mean 'Sei'?
| --- | --- | --- | --- |
| 0 | — | Legacy | Supported — governance-set minimum gas price applies |
| 1 | EIP-2930 | Access list | Supported |
Expand All @@ -20,24 +20,24 @@

| Type | EIP | Name | Notes |
| --- | --- | --- | --- |
| 3 | EIP-4844 | Blob | Not supported — Sei runs Pectra without blob transactions |

Check warning on line 23 in evm/evm-parity/transaction-types.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/transaction-types.mdx#L23

Did you really mean 'Sei'?

Check warning on line 23 in evm/evm-parity/transaction-types.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/transaction-types.mdx#L23

Did you really mean 'Pectra'?

## Blob Transactions

Sei runs the Pectra hardfork without blob transaction support. Attempting to send a type 3 transaction will be rejected at the RPC level.

Check warning on line 27 in evm/evm-parity/transaction-types.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/transaction-types.mdx#L27

Did you really mean 'Sei'?

Check warning on line 27 in evm/evm-parity/transaction-types.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/transaction-types.mdx#L27

Did you really mean 'Pectra'?

Check warning on line 27 in evm/evm-parity/transaction-types.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/transaction-types.mdx#L27

Did you really mean 'hardfork'?

If you are porting code from Ethereum that uses blob transactions (e.g. rollup data availability), that path does not apply to Sei.

Check warning on line 29 in evm/evm-parity/transaction-types.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/transaction-types.mdx#L29

Did you really mean 'Ethereum'?

Check warning on line 29 in evm/evm-parity/transaction-types.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/transaction-types.mdx#L29

Did you really mean 'rollup'?

## Sending Transactions

Standard library defaults work correctly. viem, wagmi, and ethers all default to type 2 (EIP-1559) transactions on chains that support it, which Sei does.

Check warning on line 33 in evm/evm-parity/transaction-types.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/transaction-types.mdx#L33

Did you really mean 'viem'?

Check warning on line 33 in evm/evm-parity/transaction-types.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/transaction-types.mdx#L33

Did you really mean 'wagmi'?

Check warning on line 33 in evm/evm-parity/transaction-types.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/transaction-types.mdx#L33

Did you really mean 'ethers'?

Check warning on line 33 in evm/evm-parity/transaction-types.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/transaction-types.mdx#L33

Did you really mean 'Sei'?

<CodeGroup>

```ts viem
import { createWalletClient, http, parseEther } from 'viem';
import { privateKeyToAccount } from 'viem/accounts';
import { sei } from '@sei-js/precompiles/viem';
import { sei } from 'viem/chains';

const account = privateKeyToAccount('0xYourPrivateKey');
const client = createWalletClient({ account, chain: sei, transport: http() });
Expand Down
2 changes: 1 addition & 1 deletion evm/evm-parity/websocket.mdx
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
---
title: 'WebSocket Connections'
description: 'Connecting to Sei via WebSocket for real-time block and event subscriptions'

Check warning on line 3 in evm/evm-parity/websocket.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/websocket.mdx#L3

Did you really mean 'Sei'?
---

# WebSocket Connections

Sei supports `eth_subscribe` over WebSocket. You can subscribe to new blocks, event logs, and pending transactions using standard library WebSocket transports.

Check warning on line 8 in evm/evm-parity/websocket.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/websocket.mdx#L8

Did you really mean 'Sei'?

## Endpoints

| Network | WebSocket endpoint |
| --- | --- |
| Mainnet | `wss://evm-ws.sei-apis.com` |

Check warning on line 14 in evm/evm-parity/websocket.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/websocket.mdx#L14

Did you really mean 'Mainnet'?
| Testnet | `wss://evm-ws-testnet.sei-apis.com` |

Check warning on line 15 in evm/evm-parity/websocket.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/websocket.mdx#L15

Did you really mean 'Testnet'?
| Devnet | `wss://evm-ws-arctic-1.sei-apis.com` |

Check warning on line 16 in evm/evm-parity/websocket.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/websocket.mdx#L16

Did you really mean 'Devnet'?

## Connecting

Expand All @@ -21,7 +21,7 @@

```ts viem
import { createPublicClient, webSocket } from 'viem';
import { sei } from '@sei-js/precompiles/viem';
import { sei } from 'viem/chains';

const client = createPublicClient({
chain: sei,
Expand Down Expand Up @@ -112,5 +112,5 @@

## Notes

- Sei's instant finality means every block emitted over WebSocket is already final — no need to wait for additional confirmations before acting on an event.

Check warning on line 115 in evm/evm-parity/websocket.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/websocket.mdx#L115

Did you really mean 'Sei's'?
- Pending transaction subscriptions (`newPendingTransactions`) are supported at the RPC level but Sei does not guarantee Ethereum-style pending state visibility.

Check warning on line 116 in evm/evm-parity/websocket.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/websocket.mdx#L116

Did you really mean 'Sei'?
5 changes: 5 additions & 0 deletions evm/networks.mdx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: "Sei EVM Networks"

Check warning on line 2 in evm/networks.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/networks.mdx#L2

Did you really mean 'Sei'?
sidebarTitle: 'Network Information'
description: "Discover network information for Sei EVM across all environments including mainnet and testnet. Access RPC endpoints, chain IDs, and blockchain explorers."

Check warning on line 4 in evm/networks.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/networks.mdx#L4

Did you really mean 'Sei'?

Check warning on line 4 in evm/networks.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/networks.mdx#L4

Did you really mean 'mainnet'?

Check warning on line 4 in evm/networks.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/networks.mdx#L4

Did you really mean 'testnet'?

Check warning on line 4 in evm/networks.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/networks.mdx#L4

Did you really mean 'blockchain'?
keywords: ["sei evm", "network information", "chain ids", "rpc endpoints", "blockchain explorers"]
---

Expand All @@ -11,3 +11,8 @@
loading="lazy"
title="Sei EVM chain information"
/>

The panel above is interactive. For plain-text endpoints you can copy directly — plus additional provider options — see:

- [Chains & endpoints](/learn/dev-chains) — RPC URLs and chain IDs in plain text
- [RPC providers](/learn/rpc-providers) — additional public and commercial RPC endpoints
2 changes: 1 addition & 1 deletion evm/precompiles/example-usage.mdx
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
---
title: 'Precompile Example Usage'

Check warning on line 2 in evm/precompiles/example-usage.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/example-usage.mdx#L2

Did you really mean 'Precompile'?
sidebarTitle: 'Example Usage'
description: "Learn how to interact with Sei's precompiles through viem and ethers, covering all available precompiles with quick examples and common patterns for seamless integration between EVM and Sei-native functionality."

Check warning on line 4 in evm/precompiles/example-usage.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/example-usage.mdx#L4

Did you really mean 'Sei's'?

Check warning on line 4 in evm/precompiles/example-usage.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/example-usage.mdx#L4

Did you really mean 'precompiles'?

Check warning on line 4 in evm/precompiles/example-usage.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/example-usage.mdx#L4

Did you really mean 'viem'?

Check warning on line 4 in evm/precompiles/example-usage.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/example-usage.mdx#L4

Did you really mean 'ethers'?

Check warning on line 4 in evm/precompiles/example-usage.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/example-usage.mdx#L4

Did you really mean 'precompiles'?
keywords: ['precompile usage', 'viem', 'ethers.js', 'sei precompiles', 'evm integration', 'quick start guide']
---

Sei precompiles are special smart contracts deployed at fixed addresses that expose native Sei functionality to EVM applications. They can be called like any standard smart contract using viem, ethers, or wagmi.

Check warning on line 8 in evm/precompiles/example-usage.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/example-usage.mdx#L8

Did you really mean 'Sei'?

Check warning on line 8 in evm/precompiles/example-usage.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/example-usage.mdx#L8

Did you really mean 'precompiles'?

Check warning on line 8 in evm/precompiles/example-usage.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/example-usage.mdx#L8

Did you really mean 'Sei'?

Check warning on line 8 in evm/precompiles/example-usage.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/example-usage.mdx#L8

Did you really mean 'viem'?

Check warning on line 8 in evm/precompiles/example-usage.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/example-usage.mdx#L8

Did you really mean 'ethers'?

Check warning on line 8 in evm/precompiles/example-usage.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/example-usage.mdx#L8

Did you really mean 'wagmi'?

<Info>
**Available Precompiles:**

| Precompile | Address | Description |
| --- | --- | --- |
| Bank | `0x1001` | Query native denom balances (usei, factory tokens) |

Check warning on line 15 in evm/precompiles/example-usage.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/example-usage.mdx#L15

Did you really mean 'usei'?
| JSON | `0x1003` | Parse JSON data within contracts |
| Staking | `0x1005` | Delegation and staking operations |
| Governance | `0x1006` | Proposal voting |
Expand All @@ -30,7 +30,7 @@

```ts viem
import { createPublicClient, createWalletClient, http, custom } from 'viem';
import { sei } from '@sei-js/precompiles/viem';
import { sei } from 'viem/chains';

// Read-only
const client = createPublicClient({ chain: sei, transport: http() });
Expand All @@ -54,9 +54,9 @@

</CodeGroup>

## Bank Precompile

Check warning on line 57 in evm/precompiles/example-usage.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/example-usage.mdx#L57

Did you really mean 'Precompile'?

`eth_getBalance` only returns the EVM-side SEI balance. The Bank precompile lets you query any native denom — including factory tokens — from any address:

Check warning on line 59 in evm/precompiles/example-usage.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/example-usage.mdx#L59

Did you really mean 'precompile'?

<CodeGroup>

Expand Down Expand Up @@ -92,9 +92,9 @@

</CodeGroup>

## Staking Precompile

Check warning on line 95 in evm/precompiles/example-usage.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/example-usage.mdx#L95

Did you really mean 'Precompile'?

Delegate, undelegate, and query staking state:

Check warning on line 97 in evm/precompiles/example-usage.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/example-usage.mdx#L97

Did you really mean 'undelegate'?

<CodeGroup>

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

</CodeGroup>

## Governance Precompile

Check warning on line 152 in evm/precompiles/example-usage.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/example-usage.mdx#L152

Did you really mean 'Precompile'?

Vote on an active governance proposal:

Expand Down Expand Up @@ -179,9 +179,9 @@

</CodeGroup>

## Distribution Precompile

Check warning on line 182 in evm/precompiles/example-usage.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/example-usage.mdx#L182

Did you really mean 'Precompile'?

Claim staking rewards from a validator:

Check warning on line 184 in evm/precompiles/example-usage.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/example-usage.mdx#L184

Did you really mean 'validator'?

<CodeGroup>

Expand Down Expand Up @@ -211,9 +211,9 @@

</CodeGroup>

## JSON Precompile

Check warning on line 214 in evm/precompiles/example-usage.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/example-usage.mdx#L214

Did you really mean 'Precompile'?

Parse JSON data within EVM contracts or dApps — useful for processing oracle responses, NFT metadata, and structured payloads:

Check warning on line 216 in evm/precompiles/example-usage.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/example-usage.mdx#L216

Did you really mean 'dApps'?

<CodeGroup>

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

### Error Handling

Wrap precompile calls in try/catch and check for specific error codes:

Check warning on line 268 in evm/precompiles/example-usage.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/example-usage.mdx#L268

Did you really mean 'precompile'?

```ts
try {
Expand All @@ -285,7 +285,7 @@

### Batch Read Operations

Fetch multiple precompile values in parallel:

Check warning on line 288 in evm/precompiles/example-usage.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/example-usage.mdx#L288

Did you really mean 'precompile'?

```ts
const [delegation1, delegation2, rewards] = await Promise.all([
Expand All @@ -297,7 +297,7 @@

### Gas Limits

Precompile calls that write state need enough gas. Use `estimateGas` rather than hard-coding:

Check warning on line 300 in evm/precompiles/example-usage.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/example-usage.mdx#L300

Did you really mean 'Precompile'?

```ts viem
const gas = await client.estimateGas({
Expand Down Expand Up @@ -355,7 +355,7 @@

## Next Steps

For full ABI reference and all available functions on each precompile:

Check warning on line 358 in evm/precompiles/example-usage.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/example-usage.mdx#L358

Did you really mean 'precompile'?

- [Staking Precompile →](/evm/precompiles/staking)
- [Governance Precompile →](/evm/precompiles/governance)
Expand Down
Loading
Loading