Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
81 commits
Select commit Hold shift + click to select a range
8fff96c
docs: The Tendermint P2P config was overhauled: MaxOutboundConnection…
seidroid[bot] Aug 10, 2026
e71b901
docs: eth_getBlockByNumber now returns null (per Ethereum spec) for f…
seidroid[bot] Aug 10, 2026
55c961e
docs: The eth_getBlockTransactionCountByNumber and eth_getBlockTransa…
seidroid[bot] Aug 10, 2026
b076b1e
docs: Adds a new parallelized/profiled block trace path for debug_tra…
seidroid[bot] Aug 10, 2026
f509a64
docs: Three TOML config fields (sc-write-mode, sc-read-mode, sc-enabl…
seidroid[bot] Aug 10, 2026
e0df079
docs: The oracle module's default MinValidPerWindow parameter changed…
seidroid[bot] Aug 10, 2026
04fadd5
docs: Log messages now warn that IAVL will be deprecated soon and rec…
seidroid[bot] Aug 10, 2026
f0be2e4
docs: Legacy sei_*/sei2_* JSON-RPC HTTP gating now handles batch requ…
seidroid[bot] Aug 10, 2026
5fb5dce
docs: IAVL backend is fully removed and SeiDB state-commit is now man…
seidroid[bot] Aug 10, 2026
fb3c726
docs: Adds a new node config field `evm.enable_parallelized_block_tra…
seidroid[bot] Aug 10, 2026
7898626
docs: The mempool now tracks block-failed transactions and prevents i…
seidroid[bot] Aug 10, 2026
2c78f3a
docs: Adds a new `autobahn-config-file` node config field enabling th…
seidroid[bot] Aug 10, 2026
26ab32b
docs: Adds a new `disable-tx-index-lookup` config field to the receip…
seidroid[bot] Aug 10, 2026
9e0b5ea
docs: The ABCI peer filtering feature has been removed, deprecating t…
seidroid[bot] Aug 10, 2026
af3be99
docs: Adds a new `receipt-store.tx-index-backend` config field (defau…
seidroid[bot] Aug 10, 2026
0e00df2
docs: Adds a new `seid tendermint gen-autobahn-config` CLI command to…
seidroid[bot] Aug 10, 2026
094867c
docs: The `receipt-store.keep-recent` config field was removed; recei…
seidroid[bot] Aug 10, 2026
2745703
docs: Giga/Autobahn nodes now build blocks directly from the shared T…
seidroid[bot] Aug 10, 2026
f9b55f4
docs: The legacy sei_*/sei2_* JSON-RPC gateway now follows JSON-RPC 2…
seidroid[bot] Aug 10, 2026
44518f3
docs: Adds new state-store config fields (sc-write-mode, sc-read-mode…
seidroid[bot] Aug 10, 2026
289e52f
docs: Two new Prometheus metrics (proposer_priority_hash and proposer…
seidroid[bot] Aug 10, 2026
c264c22
docs: The autobahn config generator now defaults AllowEmptyBlocks to …
seidroid[bot] Aug 10, 2026
15a975a
docs: The EVM JSON-RPC methods eth_getFilterChanges and eth_getFilter…
seidroid[bot] Aug 10, 2026
9155a75
docs: Sei node data directory layout changed for new nodes—state/rece…
seidroid[bot] Aug 10, 2026
696184d
docs: When the parquet receipt store's pebble tx hash index is disabl…
seidroid[bot] Aug 10, 2026
cf3d370
docs: When GIGA_STORAGE=true, the receipt backend now defaults to par…
seidroid[bot] Aug 10, 2026
9b934f6
docs: Adds a new debug_traceTransactionProfile JSON-RPC method that r…
seidroid[bot] Aug 10, 2026
4755e77
docs: The /status RPC endpoint now returns a new SyncInfo field `last…
seidroid[bot] Aug 10, 2026
c30c988
docs: The Sei legacy JSON-RPC HTTP handler now treats requests with "…
seidroid[bot] Aug 10, 2026
6d391ee
docs: The v6.5 upgrade adds versioned copies of precompiles and retir…
seidroid[bot] Aug 10, 2026
4de6146
docs: Adds a new temporary consensus config field `stateless-leader-e…
seidroid[bot] Aug 10, 2026
e3c6efc
docs: The consensus config field 'stateless-leader-election' now defa…
seidroid[bot] Aug 10, 2026
df43180
docs: Adds a new `dump-flatkv` subcommand to the seidb tool and a `--…
seidroid[bot] Aug 10, 2026
53c5d9b
docs: The `stateless-leader-election` consensus config field is now d…
seidroid[bot] Aug 10, 2026
fd5327f
docs: The eth_feeHistory JSON-RPC endpoint now returns baseFeePerGas …
seidroid[bot] Aug 10, 2026
478fe3c
docs: Under Autobahn consensus, the Tendermint RPC endpoints /block, …
seidroid[bot] Aug 10, 2026
a21c927
docs: The Autobahn config field max_gas_per_block was removed; the pr…
seidroid[bot] Aug 10, 2026
422da2e
docs: The v6.5 release changelog references several developer-facing …
seidroid[bot] Aug 10, 2026
2046204
docs: Fixed EVM transaction receipts to report the correct EIP-1559 e…
seidroid[bot] Aug 10, 2026
1cea986
docs: Adds new OpenTelemetry-based EVM RPC metrics (evmrpc_request_la…
seidroid[bot] Aug 10, 2026
6430ab4
docs: FlatKV state DB adds a suite of OpenTelemetry metrics and intro…
seidroid[bot] Aug 10, 2026
d2efa59
docs: Introduces a new `mock_block_validation` build tag that produce…
seidroid[bot] Aug 10, 2026
72cade3
docs: Several advanced state-sync tuning knobs (backfill-blocks, back…
seidroid[bot] Aug 10, 2026
f4aa326
docs: New internal migration WriteModes (MemiavlOnly, FlatKVOnly, Tes…
seidroid[bot] Aug 10, 2026
f8897b6
docs: PebbleDB state store now uses a new descending-version MVCC enc…
seidroid[bot] Aug 10, 2026
3f212a5
docs: Adds a suite of new OpenTelemetry (Prometheus) metrics exposed …
seidroid[bot] Aug 10, 2026
4079ea8
docs: Adds two new seidb subcommands (import-flatkv-from-memiavl and …
seidroid[bot] Aug 10, 2026
8dfaa3d
docs: Out-of-process ABCI support was removed: the 'proxy-app' and 'a…
seidroid[bot] Aug 10, 2026
2d6ef74
docs: The sei_getTransactionReceiptExcludeTraceFail (and *ExcludeTrac…
seidroid[bot] Aug 10, 2026
66a71a9
docs: Under Autobahn consensus mode, eth_subscribe("newHeads") is now…
seidroid[bot] Aug 10, 2026
1712563
docs: The *ExcludeTraceFail EVM RPC endpoints (sei_getBlockBy{Number,…
seidroid[bot] Aug 10, 2026
b2c8845
docs: Added EVM RPC request proxying (sharding) so validators forward…
seidroid[bot] Aug 10, 2026
548fe9e
docs: The SeiDB state-commit config was overhauled: the sc-read-mode …
seidroid[bot] Aug 10, 2026
b58e981
docs: Distribution module now validates withdraw addresses against ba…
seidroid[bot] Aug 10, 2026
7de3bf3
docs: A new --persistent-state-dir flag was added to the tendermint g…
seidroid[bot] Aug 10, 2026
f31a55c
docs: eth_getTransactionReceipt now returns JSON null (instead of an …
seidroid[bot] Aug 10, 2026
8d86f9c
docs: The Tendermint mempool config changed TTLDuration/TTLNumBlocks …
seidroid[bot] Aug 10, 2026
e59bf32
docs: Adds a new seidb `migrate-evm-status` CLI subcommand, a new `sc…
seidroid[bot] Aug 10, 2026
2cb5a76
docs: Adds new OpenTelemetry metrics (histograms/counters) for module…
seidroid[bot] Aug 10, 2026
cc78e02
docs: The max block lookback guard now applies to all debug_trace* RP…
seidroid[bot] Aug 10, 2026
865ef13
docs: The eth_getTransactionByHash RPC now looks up pending transacti…
seidroid[bot] Aug 10, 2026
b117a5d
docs: The Autobahn (giga) autobahn config file drops the mempool_size…
seidroid[bot] Aug 10, 2026
0fa678b
docs: String length limits were added to numeric parsing functions (D…
seidroid[bot] Aug 10, 2026
9b7d096
docs: Adds a new mock_chain_validation build tag (and Docker images) …
seidroid[bot] Aug 10, 2026
7cded5e
docs: The Prometheus metrics namespace changed from 'sei-chain' to 's…
seidroid[bot] Aug 10, 2026
f1a9f10
docs: Adds support for booting a node directly in flatkv_only state-c…
seidroid[bot] Aug 10, 2026
05bf781
docs: A new RPC config field `timeout-write` was added to control the…
seidroid[bot] Aug 10, 2026
12ad528
docs: Two mempool config fields (pending-ttl-duration and pending-ttl…
seidroid[bot] Aug 10, 2026
d5945d9
docs: The eth_getProof JSON-RPC endpoint now requires hex-encoded sto…
seidroid[bot] Aug 10, 2026
e4b52b3
docs: The consensus validation metric label changed from `kind` to `v…
seidroid[bot] Aug 10, 2026
dc77bfc
docs: The parquet/DuckDB receipt store backend and its associated con…
seidroid[bot] Aug 10, 2026
afa4f3d
docs: Pagination now enforces hard caps on limit (MaxLimit=1000), off…
seidroid[bot] Aug 10, 2026
54f21cd
docs: EVM SetCode transactions (EIP-7702) with an empty authorization…
seidroid[bot] Aug 10, 2026
464a22f
docs: The EVM RPC methods eth_getBlockTransactionCountByNumber and et…
seidroid[bot] Aug 10, 2026
d0680db
docs: The Autobahn consensus protocol now enforces a maximum of 100 v…
seidroid[bot] Aug 10, 2026
3287f49
docs: A new consensus config field `unsafe-overrides-enabled` gates w…
seidroid[bot] Aug 10, 2026
090096c
docs: Adds a new RPC config field `timeout-read-header` to Tendermint…
seidroid[bot] Aug 10, 2026
a0070a7
docs: A new RPC config field `max-tx-search-results` caps the number …
seidroid[bot] Aug 10, 2026
1d3a6dd
docs: A new `seidb evm-logical-digest` CLI subcommand was added to co…
seidroid[bot] Aug 10, 2026
5f22976
docs: The Giga executor now loads the evmone shared library from a tr…
seidroid[bot] Aug 10, 2026
d67b006
docs: A new v6.6 upgrade version is registered across all EVM precomp…
seidroid[bot] Aug 10, 2026
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
2 changes: 1 addition & 1 deletion evm/evm-parity/evm-compatibility.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@
description: 'EVM feature support on Sei — what works, what differs from Ethereum, and what is not available'
---

# EVM Compatibility

Check warning on line 7 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L7

Use sentence case for headings: 'EVM Compatibility'.

This page documents Sei's EVM feature support. Each row shows whether a capability works as on standard Ethereum, behaves differently in a documented way, or is not available on Sei.

Standard EVM tooling — viem, wagmi, ethers, Foundry, Hardhat — works on Sei for all rows marked **Supported**. Where Sei differs from Ethereum, the difference is noted so you can account for it in your application.

## Status Legend

Check warning on line 13 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L13

Use sentence case for headings: 'Status Legend'.

| Status | Meaning |
| --- | --- |
Expand All @@ -29,7 +29,7 @@
| EIP-4844 blob transactions (type 3) | Not supported | Sei runs Pectra without blob transactions. [See Transaction Types.](/evm/evm-parity/transaction-types) |
| EIP-7702 set-code transactions (type 4) | Supported | |

## Account and State

Check warning on line 32 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L32

Use sentence case for headings: 'Account and State'.

| Feature | Sei status | Notes |
| --- | --- | --- |
Expand All @@ -37,9 +37,9 @@
| `eth_getTransactionCount` (nonce) | Supported | |
| `eth_getCode` | Supported | |
| `eth_getStorageAt` | Supported — differences | SSTORE cost is governance-adjustable; do not hard-code gas assumptions. [See Gas and Fees.](/evm/evm-parity/gas-and-fees) |
| `eth_getProof` | Supported — differences | Returns IAVL proof data rather than Ethereum Merkle Patricia Trie proofs. Proof verification logic must account for this. [See State Proofs.](/evm/evm-parity/state-proofs) |
| `eth_getProof` | Supported — differences | Returns IAVL proof data rather than Ethereum Merkle Patricia Trie proofs. Proof verification logic must account for this. Proofs resolve across supported store backends (classic IAVL, store/v2 memiavl, and other proof-capable queryable stores), so the method works across a broader range of node configurations. [See State Proofs.](/evm/evm-parity/state-proofs) |

## Blocks and Finality

Check warning on line 42 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L42

Use sentence case for headings: 'Blocks and Finality'.

| Feature | Sei status | Notes |
| --- | --- | --- |
Expand All @@ -48,7 +48,7 @@
| Finality tags (`latest`, `safe`, `finalized`) | Supported — differences | Sei has instant finality. All three tags refer to the same commitment level. [See Finality.](/evm/evm-parity/finality) |
| Pending block state | Supported — differences | Ethereum-style pending state visibility is not guaranteed. Do not rely on pending transaction ordering. [See Finality.](/evm/evm-parity/finality) |

## Logs, Filters, and Subscriptions

Check warning on line 51 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L51

Use sentence case for headings: 'Logs, Filters, and Subscriptions'.

| Feature | Sei status | Notes |
| --- | --- | --- |
Expand All @@ -56,7 +56,7 @@
| Filter lifecycle (`eth_newFilter`, `eth_getFilterChanges`, `eth_getFilterLogs`, `eth_uninstallFilter`) | Supported | |
| WebSocket subscriptions (`eth_subscribe`) | Supported | [See WebSocket Connections.](/evm/evm-parity/websocket) |

## Execution and Simulation

Check warning on line 59 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L59

Use sentence case for headings: 'Execution and Simulation'.

| Feature | Sei status | Notes |
| --- | --- | --- |
Expand All @@ -74,7 +74,7 @@
| EIP-712 typed data signing (`eth_signTypedData_v4`) | Supported | Depends on the connected wallet exposing the method. [See Signing.](/evm/evm-parity/signing) |
| EIP-1271 contract signature validation | Supported | [See Signing.](/evm/evm-parity/signing) |

## Token Standards

Check warning on line 77 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L77

Use sentence case for headings: 'Token Standards'.

| Feature | Sei status | Notes |
| --- | --- | --- |
Expand All @@ -82,19 +82,19 @@
| ERC-721 | Supported | |
| ERC-1155 | Supported | |

## Account Abstraction

Check warning on line 85 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L85

Use sentence case for headings: 'Account Abstraction'.

| Feature | Sei status | Notes |
| --- | --- | --- |
| ERC-4337 | Supported | Requires a compatible bundler. Sei EVM is ERC-4337 compatible. |

## Name Services

Check warning on line 91 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L91

Use sentence case for headings: 'Name Services'.

| Feature | Sei status | Notes |
| --- | --- | --- |
| ENS | Not supported | Sei does not run Ethereum mainnet ENS. Application-level name services can be deployed as contracts. |

## Sei Extensions

Check warning on line 97 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L97

Use sentence case for headings: 'Sei Extensions'.

These capabilities are Sei-specific and have no standard Ethereum equivalent. They are exposed through `@sei-js` packages layered on top of standard EVM tooling.

Expand All @@ -104,7 +104,7 @@
| Pointer contracts (CW20 ↔ ERC-20, CW721 ↔ ERC-721) | Bridge between CosmWasm and EVM token standards. Standard ERC interfaces work against pointer contracts. |
| Native address association (EVM ↔ Cosmos address) | Links an EVM address and a Cosmos address for the same account. Required before some Sei-native flows. |

## Unsupported RPC Methods

Check warning on line 107 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L107

Use sentence case for headings: 'Unsupported RPC Methods'.

The following JSON-RPC methods are either not available on Sei or will return errors:

Expand All @@ -115,7 +115,7 @@
| `eth_blobBaseFee` | Sei runs Pectra without blob transaction support. This method does not exist on Sei. |
| `engine_getBlobsV1` | Blob data availability endpoints are not supported. |

### Pending State

Check warning on line 118 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L118

Use sentence case for headings: 'Pending State'.

| Method | Behavior on Sei |
| --- | --- |
Expand All @@ -124,13 +124,13 @@
| `eth_newPendingTransactionFilter` | The filter can be created but will not reliably emit pending transactions. Use `eth_newBlockFilter` or WebSocket block subscriptions instead. |
| `eth_subscribe("newPendingTransactions")` | Supported at the RPC level but Sei does not guarantee Ethereum-style pending transaction visibility. Treat results as best-effort. |

### Proof Verification

Check warning on line 127 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L127

Use sentence case for headings: 'Proof Verification'.

| Method | Behavior on Sei |
| --- | --- |
| `eth_getProof` | Returns IAVL tree proofs, not Ethereum Merkle Patricia Trie proofs. The method itself works, but the proof format is incompatible with standard Ethereum MPT verifiers. [See State Proofs.](/evm/evm-parity/state-proofs) |

### Deprecated / Removed Opcodes

Check warning on line 133 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L133

Use sentence case for headings: 'Deprecated / Removed Opcodes'.

| Method | Reason |
| --- | --- |
Expand Down
8 changes: 8 additions & 0 deletions evm/evm-parity/gas-and-fees.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@
description: 'Sei gas price floor, EIP-1559 fee model differences, and SSTORE cost'
---

# Gas and Fees

Check warning on line 6 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#L6

Use sentence case for headings: '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.

## Legacy Gas Price Floor

Check warning on line 10 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#L10

Use sentence case for headings: '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.

Expand All @@ -33,7 +33,7 @@

</CodeGroup>

## EIP-1559 Fee Model

Check warning on line 36 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#L36

Use sentence case for headings: '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.

Expand All @@ -53,7 +53,15 @@

</CodeGroup>


### Effective Gas Price on Receipts

Check warning on line 57 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#L57

Use sentence case for headings: 'Effective Gas Price on Receipts'.

For dynamic-fee (type 2) transactions, the transaction receipt's `effectiveGasPrice` field reports the **actual price charged** — `min(baseFee + maxPriorityFeePerGas, maxFeePerGas)` — not the fee cap. This matches standard EIP-1559 semantics, so clients such as ethers and hardhat see the same `effectiveGasPrice` behavior they expect from Ethereum.

In practice, when your priority tip plus the base fee stays below `maxFeePerGas`, the receipt reports `baseFee + maxPriorityFeePerGas` rather than `maxFeePerGas`. Use the receipt's `effectiveGasPrice` (not `maxFeePerGas`) when computing what a transaction actually paid.


## SSTORE Cost

Check warning on line 64 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#L64

Use sentence case for headings: 'SSTORE Cost'.

The gas cost of `SSTORE` (writing to contract storage) is governance-adjustable on Sei. It is currently **72,000 gas** — the same on mainnet and testnet (see [Divergence from Ethereum](/evm/differences-with-ethereum#sstore-gas-cost)) — but treat that as the current value, not a constant: do not hard-code storage write estimates in your application.

Expand Down
7 changes: 7 additions & 0 deletions evm/evm-parity/state-proofs.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,17 @@
description: 'How eth_getProof differs on Sei due to IAVL tree storage'
---

# State Proofs

Check warning on line 6 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#L6

Use sentence case for headings: '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.

## The Difference

Check warning on line 10 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#L10

Use sentence case for headings: '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.

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

## What This Affects

Check warning on line 16 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#L16

Use sentence case for headings: 'What This Affects'.

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

Expand All @@ -23,8 +23,15 @@

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

## 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

Use sentence case for headings: 'Calling eth_getProof'.

### Storage key requirements

Before calling `eth_getProof`, note two requirements Sei enforces on the `storageKeys` argument:

- **Keys must be hex-encoded.** Each storage key must be a valid hex-encoded value (for example `0x0000000000000000000000000000000000000000000000000000000000000001`). Keys are decoded and left-padded to 32 bytes. A malformed, non-hex key is rejected with an `invalid storage key` error. Raw byte strings, which were previously accepted, no longer work.
- **At most 1024 keys per request.** A single proof request may include a maximum of 1024 storage keys. Requesting more returns a `too many storage keys` error. Split larger sets across multiple requests.

The call works through standard libraries:

<CodeGroup>
Expand Down Expand Up @@ -60,7 +67,7 @@

</CodeGroup>

## Verifying Proofs

Check warning on line 70 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#L70

Use sentence case for headings: '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.

Expand Down
7 changes: 7 additions & 0 deletions evm/evm-parity/transaction-types.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@
description: 'Which Ethereum transaction types are supported on Sei'
---

# Transaction Types

Check warning on line 6 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#L6

Use sentence case for headings: 'Transaction Types'.

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

## Supported Types

Check warning on line 10 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#L10

Use sentence case for headings: 'Supported Types'.

| Type | EIP | Name | Sei support |
| --- | --- | --- | --- |
Expand All @@ -16,19 +16,26 @@
| 2 | EIP-1559 | Fee market | Supported — base fee is not burned |
| 4 | EIP-7702 | Set code | Supported |


### Set Code (EIP-7702) Auth List Requirement

Check warning on line 20 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#L20

Use sentence case for headings: 'Set Code (EIP-7702) Auth List Requirement'.

Type 4 (EIP-7702) SetCode transactions must include a non-empty authorization list. A transaction with an empty or nil auth list is rejected during validation with the error `auth list cannot be empty`.

Each authorization entry must also carry a valid (non-nil) chain ID. If you are constructing SetCode transactions directly, ensure at least one authorization is present before submitting.

## Not Supported

Check warning on line 26 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#L26

Use sentence case for headings: 'Not Supported'.

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

## Blob Transactions

Check warning on line 32 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#L32

Use sentence case for headings: '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.

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

## Sending Transactions

Check warning on line 38 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#L38

Use sentence case for headings: '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.

Expand Down
17 changes: 17 additions & 0 deletions evm/evm-parity/websocket.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
description: 'Connecting to Sei via WebSocket for real-time block and event subscriptions'
---

# WebSocket Connections

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

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/websocket.mdx#L6

Use sentence case for headings: 'WebSocket Connections'.

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

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

</CodeGroup>

## Watching New Blocks

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

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/websocket.mdx#L40

Use sentence case for headings: 'Watching New Blocks'.

<CodeGroup>

Expand All @@ -63,7 +63,7 @@

</CodeGroup>

## Watching Contract Events

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

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/websocket.mdx#L66

Use sentence case for headings: 'Watching Contract Events'.

<CodeGroup>

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

</CodeGroup>

## Watching ERC-20 Transfers Across All Contracts

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

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/websocket.mdx#L98

Use sentence case for headings: 'Watching ERC-20 Transfers Across All Contracts'.

```ts viem
import { parseAbiItem } from 'viem';
Expand All @@ -114,3 +114,20 @@

- 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.
- Pending transaction subscriptions (`newPendingTransactions`) are supported at the RPC level but Sei does not guarantee Ethereum-style pending state visibility.



## `newHeads` Under Autobahn Consensus

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

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/websocket.mdx#L120

Use sentence case for headings: '******** Under Autobahn Consensus'.

When a node runs under Autobahn consensus, `eth_subscribe("newHeads")` notifications are delivered from an in-process notifier that publishes committed-block headers directly, rather than from the legacy consensus event bus. Subscribers still only observe headers for fully committed blocks, but the header payload differs from the legacy path in a few ways:

- **`parentHash`, `receiptsRoot`, and `transactionsRoot` are returned as zero hashes** (`0x0000…0000`). The Autobahn block-execution path does not build a Tendermint-style hash chain, so there is no meaningful value to surface for these fields.
- **`stateRoot`** is sourced from the finalized block's `AppHash` (the post-execution application hash), rather than from a pre-execution header field.
- **`hash`** is the Autobahn block-header hash — the same value reported as `blockHash` by `eth_getBlockByNumber` and the receipt APIs, keeping `newHeads` consistent with the rest of the EVM RPC surface.
- **`gasUsed`** is an approximation (summed from per-transaction results) to keep the notification cheap.

Because of these differences:

- Subscribers that chain-validate the head stream by linking `parentHash` values cannot rely on `newHeads` under Autobahn and need a different mechanism.
- If you need exact `gasUsed` or the omitted hash fields, fetch the block explicitly with `eth_getBlockByNumber`.

3 changes: 0 additions & 3 deletions evm/installing-seid-cli.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@

For more information see [here](https://pkg.go.dev/cmd/go#hdr-GOPATH_environment_variable).

## Command Overview

Check warning on line 52 in evm/installing-seid-cli.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/installing-seid-cli.mdx#L52

Use sentence case for headings: 'Command Overview'.

Seid supports all the commands you need to interact with the chain. To see a list of available commands and explanations of what they do, run seid:

Expand All @@ -65,7 +65,6 @@
add-wasm-genesis-message Wasm genesis subcommands
blocktest run EF blocktest
collect-gentxs Collect genesis txs and output a genesis.json file
compact Compact the application DB fully (only if it is a levelDB)
config Create or query an application CLI configuration file
debug Tool for helping with debugging your application
ethreplay replay EVM transactions
Expand All @@ -74,9 +73,7 @@
help Help about any command
init Initialize private validator, p2p, genesis, and application configuration files
keys Manage your application's keys
latest_version Prints the latest version of the app DB
migrate Migrate genesis to a specified target version
prune Prune app history states by keeping the recent heights and deleting old heights
query Querying subcommands
rollback rollback cosmos-sdk and tendermint state by one height
start Run the full node
Expand All @@ -97,7 +94,7 @@
Use "seid [command] --help" for more information about a command.
```

## Adding a Wallet

Check warning on line 97 in evm/installing-seid-cli.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/installing-seid-cli.mdx#L97

Use sentence case for headings: 'Adding a Wallet'.

You can create a new wallet using the seid keys command:

Expand Down Expand Up @@ -148,16 +145,16 @@
mnemonic: ""
```

## EVM Wallet Compatibility

Check warning on line 148 in evm/installing-seid-cli.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/installing-seid-cli.mdx#L148

Use sentence case for headings: 'EVM Wallet Compatibility'.

### Understanding Coin Types

Check warning on line 150 in evm/installing-seid-cli.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/installing-seid-cli.mdx#L150

Use sentence case for headings: 'Understanding Coin Types'.

Sei supports two coin types:

- Coin type 118 (default): Standard Cosmos address format
- Coin type 60: Ethereum-compatible address format for EVM wallets

### Creating an EVM-Compatible Wallet

Check warning on line 157 in evm/installing-seid-cli.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/installing-seid-cli.mdx#L157

Use sentence case for headings: 'Creating an EVM-Compatible Wallet'.

To create a new wallet that's compatible with EVM wallets like MetaMask:

Expand All @@ -184,7 +181,7 @@

<Info>`evm_address` is shown as empty here because it's only displayed after the key first broadcasts a transaction or is associated on-chain. The `0x` address is deterministically derived from the secp256k1 public key.</Info>

### Importing an Existing EVM Wallet

Check warning on line 184 in evm/installing-seid-cli.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/installing-seid-cli.mdx#L184

Use sentence case for headings: 'Importing an Existing EVM Wallet'.

To import an existing wallet from MetaMask or other EVM wallets:

Expand All @@ -210,7 +207,7 @@

<Info>Use coin type 60 when you want to use the same address across EVM-compatible chains or import from MetaMask. Use the default coin type 118 for standard Cosmos operations.</Info>

## Managing Wallets

Check warning on line 210 in evm/installing-seid-cli.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/installing-seid-cli.mdx#L210

Use sentence case for headings: 'Managing Wallets'.

To see your local wallets, you can run:

Expand Down Expand Up @@ -249,7 +246,7 @@

to see details about a specific wallet.

## Deleting Wallets

Check warning on line 249 in evm/installing-seid-cli.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/installing-seid-cli.mdx#L249

Use sentence case for headings: 'Deleting Wallets'.

To delete a wallet/key, you can use the following command:

Expand Down
4 changes: 4 additions & 0 deletions evm/precompiles/distribution.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

The distribution precompile provides EVM access to Cosmos SDK's distribution module. Smart contracts can manage staking rewards, validator commissions, and withdrawal addresses. This precompile is essential for DeFi applications that need to handle staking rewards programmatically.

## Key Features

Check warning on line 13 in evm/precompiles/distribution.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/distribution.mdx#L13

Use sentence case for headings: 'Key Features'.

- **Reward Management**: Withdraw delegation rewards from validators
- **Commission Handling**: Validators can withdraw earned commissions
Expand All @@ -18,7 +18,7 @@
- **Flexible Withdrawals**: Set custom withdrawal addresses
- **Comprehensive Queries**: Access detailed reward information

## Interface Overview

Check warning on line 21 in evm/precompiles/distribution.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/distribution.mdx#L21

Use sentence case for headings: 'Interface Overview'.

```solidity
interface IDistr {
Expand All @@ -43,7 +43,7 @@

The distribution precompile emits events for all state-changing operations, allowing off-chain services to track reward distributions and configuration changes.

### WithdrawAddressSet

Check warning on line 46 in evm/precompiles/distribution.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/distribution.mdx#L46

Use sentence case for headings: 'WithdrawAddressSet'.

Emitted when a delegator changes their reward withdrawal address.

Expand All @@ -65,7 +65,7 @@
});
```

### DelegationRewardsWithdrawn

Check warning on line 68 in evm/precompiles/distribution.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/distribution.mdx#L68

Use sentence case for headings: 'DelegationRewardsWithdrawn'.

Emitted when a delegator withdraws rewards from a single validator.

Expand All @@ -89,7 +89,7 @@
});
```

### MultipleDelegationRewardsWithdrawn

Check warning on line 92 in evm/precompiles/distribution.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/distribution.mdx#L92

Use sentence case for headings: 'MultipleDelegationRewardsWithdrawn'.

Emitted when a delegator withdraws rewards from multiple validators in a single transaction.

Expand All @@ -115,7 +115,7 @@
});
```

### ValidatorCommissionWithdrawn

Check warning on line 118 in evm/precompiles/distribution.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/distribution.mdx#L118

Use sentence case for headings: 'ValidatorCommissionWithdrawn'.

Emitted when a validator operator withdraws their earned commission.

Expand All @@ -140,9 +140,9 @@

<Info>**Event Amounts**: All event amounts use 6 decimal precision (usei), matching the actual withdrawn token amounts. This differs from the `rewards()` query which returns 18 decimal precision.</Info>

## Transaction Methods

Check warning on line 143 in evm/precompiles/distribution.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/distribution.mdx#L143

Use sentence case for headings: 'Transaction Methods'.

### setWithdrawAddress

Check warning on line 145 in evm/precompiles/distribution.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/distribution.mdx#L145

Use sentence case for headings: 'setWithdrawAddress'.

Sets the withdrawal address for staking rewards. By default, rewards are sent to the delegator's address, but this can be customized.

Expand All @@ -156,6 +156,10 @@

**Gas Cost**: ~30,000 gas

<Warning>**Recipient Validation**: The withdraw address must be allowed to receive external funds. The distribution module validates the recipient against the bank module's `CanSendTo` check, and the call reverts with `ErrInvalidRecipient` if it fails. In particular, an unassociated EVM-cast address (an EVM address that has no associated Sei account) is rejected, as are blocked module addresses. Ensure the target address is associated before setting it as a withdraw address.</Warning>

<Info>**Fallback on Invalid Stored Address**: If a previously set withdraw address later becomes unable to receive funds (for example, it becomes blocked or otherwise fails the `CanSendTo` check), the distribution module falls back to sending rewards to the delegator's own address rather than failing. Reward and commission withdrawals therefore always succeed even if the stored withdraw address is no longer valid.</Info>

**Example:**

```solidity
Expand All @@ -164,7 +168,7 @@
require(success, "Failed to set withdraw address");
```

### withdrawDelegationRewards

Check warning on line 171 in evm/precompiles/distribution.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/distribution.mdx#L171

Use sentence case for headings: 'withdrawDelegationRewards'.

Withdraws accumulated rewards from a specific validator.

Expand All @@ -186,7 +190,7 @@
require(success, "Failed to withdraw rewards");
```

### withdrawMultipleDelegationRewards

Check warning on line 193 in evm/precompiles/distribution.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/distribution.mdx#L193

Use sentence case for headings: 'withdrawMultipleDelegationRewards'.

Efficiently withdraws rewards from multiple validators in a single transaction.

Expand Down Expand Up @@ -214,7 +218,7 @@

<Info>**Batch Efficiency**: Using `withdrawMultipleDelegationRewards` is significantly more gas-efficient than multiple individual calls, especially when withdrawing from 3+ validators.</Info>

### withdrawValidatorCommission

Check warning on line 221 in evm/precompiles/distribution.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/distribution.mdx#L221

Use sentence case for headings: 'withdrawValidatorCommission'.

Allows validators to withdraw their earned commission. Only callable by the validator operator address.

Expand All @@ -236,9 +240,9 @@

<Warning>**Validator Only**: This method can only be called by the validator's operator address. The precompile automatically identifies the validator based on the caller's associated Sei address. If the caller is not a validator operator, the call will fail.</Warning>

## Query Methods

Check warning on line 243 in evm/precompiles/distribution.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/distribution.mdx#L243

Use sentence case for headings: 'Query Methods'.

### rewards

Check warning on line 245 in evm/precompiles/distribution.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/distribution.mdx#L245

Use sentence case for headings: 'rewards'.

Retrieves comprehensive reward information for a delegator across all validators.

Expand Down Expand Up @@ -307,7 +311,7 @@
}
```

## Understanding Decimal Precision

Check warning on line 314 in evm/precompiles/distribution.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/distribution.mdx#L314

Use sentence case for headings: 'Understanding Decimal Precision'.

The distribution precompile has **different decimal precision for queries vs actual withdrawals** due to how rewards are tracked in the Cosmos SDK:

Expand All @@ -319,13 +323,13 @@
| **withdrawValidatorCommission()** | Withdrawn amount (event) | 6 decimals (usei) | `amount / 1e6` |


### Why Different Precisions?

Check warning on line 326 in evm/precompiles/distribution.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/distribution.mdx#L326

Use sentence case for headings: 'Why Different Precisions?'.

1. **Pending Rewards (18 decimals)**: The Cosmos SDK tracks pending rewards using `DecCoins` (decimal coins) with 18 decimal precision for higher accuracy during reward accumulation.

2. **Withdrawn Rewards (6 decimals)**: When rewards are actually withdrawn, they are converted to `sdk.Coins` (usei) with 6 decimal precision to match Sei's native token units.

### Conversion Helper Functions

Check warning on line 332 in evm/precompiles/distribution.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/distribution.mdx#L332

Use sentence case for headings: 'Conversion Helper Functions'.

```typescript
// Convert pending rewards (18 decimals) to SEI
Expand All @@ -346,9 +350,9 @@

<Info>**Note**: When reconciling pending rewards with actual withdrawals, be aware of the 12-decimal difference (10^12 factor) between query results and withdrawal amounts.</Info>

## Practical Examples

Check warning on line 353 in evm/precompiles/distribution.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/distribution.mdx#L353

Use sentence case for headings: 'Practical Examples'.

### DeFi Yield Aggregator

Check warning on line 355 in evm/precompiles/distribution.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/distribution.mdx#L355

Use sentence case for headings: 'DeFi Yield Aggregator'.

```solidity
contract YieldAggregator {
Expand Down Expand Up @@ -380,7 +384,7 @@
}
```

### Validator Commission Manager

Check warning on line 387 in evm/precompiles/distribution.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/distribution.mdx#L387

Use sentence case for headings: 'Validator Commission Manager'.

```solidity
contract ValidatorManager {
Expand All @@ -403,7 +407,7 @@
}
```

## Error Handling

Check warning on line 410 in evm/precompiles/distribution.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/distribution.mdx#L410

Use sentence case for headings: 'Error Handling'.

Common error scenarios and how to handle them:

Expand Down Expand Up @@ -437,16 +441,16 @@
}
```

## Gas Optimization Tips

Check warning on line 444 in evm/precompiles/distribution.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/distribution.mdx#L444

Use sentence case for headings: 'Gas Optimization Tips'.

1. **Batch Operations**: Use `withdrawMultipleDelegationRewards` for multiple validators
2. **Check Before Withdraw**: Query rewards first to avoid unnecessary transactions
3. **Set Withdraw Address Once**: Avoid repeated `setWithdrawAddress` calls
4. **Commission Timing**: Withdraw validator commission when amounts are substantial

## Integration Patterns

Check warning on line 451 in evm/precompiles/distribution.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/distribution.mdx#L451

Use sentence case for headings: 'Integration Patterns'.

### Auto-Compounding Strategy

Check warning on line 453 in evm/precompiles/distribution.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/distribution.mdx#L453

Use sentence case for headings: 'Auto-Compounding Strategy'.

```solidity
// Automatically reinvest rewards back into staking
Expand All @@ -459,7 +463,7 @@
}
```

### Treasury Management

Check warning on line 466 in evm/precompiles/distribution.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/distribution.mdx#L466

Use sentence case for headings: 'Treasury Management'.

```solidity
// Route all rewards to a DAO treasury
Expand Down
4 changes: 4 additions & 0 deletions evm/precompiles/json.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

<Info>**What is a precompile?** A precompile is a special smart contract deployed at a fixed address by the Sei protocol itself, that exposes custom native chain logic to EVM-based applications. It acts like a regular contract from the EVM's perspective, but executes privileged, low-level logic efficiently.</Info>

## How Does the JSON Precompile Work?

Check warning on line 13 in evm/precompiles/json.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/json.mdx#L13

Use sentence case for headings: 'How Does the JSON Precompile Work?'.

The JSON precompile at address `0x0000000000000000000000000000000000001003` exposes functions like `extractAsBytes()`, `extractAsBytesList()`, and `extractAsUint256()`.

Expand All @@ -18,7 +18,7 @@
- **Native Execution:** JSON parsing is executed at the native level for maximum efficiency.
- **Seamless Bridge:** No need for complex workarounds or external libraries for JSON handling.

## Use Cases

Check warning on line 21 in evm/precompiles/json.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/json.mdx#L21

Use sentence case for headings: 'Use Cases'.

- **Oracle Integration:** Parse complex oracle responses containing multiple data points.
- **DeFi Applications:** Process structured price feeds and market data.
Expand All @@ -30,7 +30,7 @@

The JSON precompile exposes the following functions:

### Query Functions

Check warning on line 33 in evm/precompiles/json.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/json.mdx#L33

Use sentence case for headings: 'Query Functions'.

```solidity
/// Extracts data as bytes from the input using the specified key.
Expand Down Expand Up @@ -61,7 +61,7 @@
) external view returns (uint256 response);
```

## Using the Precompile

Check warning on line 64 in evm/precompiles/json.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/json.mdx#L64

Use sentence case for headings: 'Using the Precompile'.

### Setup

Expand All @@ -74,7 +74,7 @@
- **MetaMask** or compatible EVM wallet configured for Sei Mainnet
- **SEI tokens** for gas

#### Install Dependencies

Check warning on line 77 in evm/precompiles/json.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/json.mdx#L77

Use sentence case for headings: 'Install Dependencies'.

Install the required packages for interacting with Sei precompiles:

Expand All @@ -89,7 +89,7 @@
npm install dotenv
```

#### Import Precompile Components

Check warning on line 92 in evm/precompiles/json.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/json.mdx#L92

Use sentence case for headings: 'Import Precompile Components'.

```typescript
// Import JSON precompile address and ABI
Expand Down Expand Up @@ -118,11 +118,11 @@
const jsonPrecompile = new ethers.Contract(JSON_PRECOMPILE_ADDRESS, JSON_PRECOMPILE_ABI, signer);
```

## Data Type Handling

Check warning on line 121 in evm/precompiles/json.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/json.mdx#L121

Use sentence case for headings: 'Data Type Handling'.

The JSON precompile has specific limitations for different data types:

### Supported Data Types

Check warning on line 125 in evm/precompiles/json.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/json.mdx#L125

Use sentence case for headings: 'Supported Data Types'.

| Function | Supports | Limitations |
| --- | --- | --- |
Expand All @@ -131,7 +131,11 @@
| extractAsBytesList | Arrays of strings/objects | Each element returned as bytes |



<Warning>**Value Length Limit:** `extractAsUint256` rejects value strings longer than 100 characters. If the numeric string extracted for the given key exceeds 100 characters, the call fails with `value string too long`. Ensure the numeric values you pass stay within this limit.</Warning>


### Data Type Conversion Strategies

Check warning on line 138 in evm/precompiles/json.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/json.mdx#L138

Use sentence case for headings: 'Data Type Conversion Strategies'.

```typescript
// For decimal numbers - store as integers with known precision
Expand All @@ -151,7 +155,7 @@
const userObject = JSON.parse(userString);
```

## Error Handling Utilities

Check warning on line 158 in evm/precompiles/json.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/json.mdx#L158

Use sentence case for headings: 'Error Handling Utilities'.

Create comprehensive error handling for all extraction functions:

Expand Down Expand Up @@ -193,9 +197,9 @@
}
```

## Step-by-Step Guide: Using the JSON Precompile

Check warning on line 200 in evm/precompiles/json.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/json.mdx#L200

Use sentence case for headings: 'Step-by-Step Guide: Using the JSON Precompile'.

### Extract String Data

Check warning on line 202 in evm/precompiles/json.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/json.mdx#L202

Use sentence case for headings: 'Extract String Data'.

```typescript
// JSON data with string values
Expand All @@ -216,7 +220,7 @@
}
```

### Extract Numeric Data

Check warning on line 223 in evm/precompiles/json.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/json.mdx#L223

Use sentence case for headings: 'Extract Numeric Data'.

```typescript
// JSON data with numbers (integers only)
Expand All @@ -234,7 +238,7 @@
console.log('Rate:', actualRate);
```

### Extract Array Data

Check warning on line 241 in evm/precompiles/json.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/json.mdx#L241

Use sentence case for headings: 'Extract Array Data'.

```typescript
// JSON data with array
Expand All @@ -253,7 +257,7 @@
console.log('Mixed values:', valuesArray); // Output: [42, "test", 100]
```

### Extract Nested Data

Check warning on line 260 in evm/precompiles/json.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/json.mdx#L260

Use sentence case for headings: 'Extract Nested Data'.

<Warning>**Important:** The JSON precompile does not support dot notation for nested objects. Instead, extract the parent object and parse it manually.</Warning>

Expand Down Expand Up @@ -286,7 +290,7 @@
console.log('Wallet data:', walletData); // Output: { balance: 1000, currency: "SEI" }
```

## Complete Integration Example

Check warning on line 293 in evm/precompiles/json.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/json.mdx#L293

Use sentence case for headings: 'Complete Integration Example'.

Create a comprehensive JSON parsing application for mainnet:

Expand Down Expand Up @@ -489,7 +493,7 @@
main().catch(console.error);
```

### Running the Mainnet Example

Check warning on line 496 in evm/precompiles/json.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/json.mdx#L496

Use sentence case for headings: 'Running the Mainnet Example'.

1. **Create a new directory and initialize npm:**

Expand Down Expand Up @@ -526,7 +530,7 @@
node json-precompile-mainnet.js
```

### Expected Output

Check warning on line 533 in evm/precompiles/json.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/json.mdx#L533

Use sentence case for headings: 'Expected Output'.

```
🌐 Connecting to Sei Mainnet...
Expand Down Expand Up @@ -602,9 +606,9 @@
🎉 === JSON Precompile Demo Completed Successfully! ===
```

## Advanced Usage Examples

Check warning on line 609 in evm/precompiles/json.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/json.mdx#L609

Use sentence case for headings: 'Advanced Usage Examples'.

### Oracle Price Feed Integration

Check warning on line 611 in evm/precompiles/json.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/json.mdx#L611

Use sentence case for headings: 'Oracle Price Feed Integration'.

```typescript
// Advanced oracle integration with comprehensive error handling
Expand Down Expand Up @@ -656,9 +660,9 @@

## Troubleshooting

### Common Issues and Solutions

Check warning on line 663 in evm/precompiles/json.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/json.mdx#L663

Use sentence case for headings: 'Common Issues and Solutions'.

#### Key Not Found

Check warning on line 665 in evm/precompiles/json.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/json.mdx#L665

Use sentence case for headings: 'Key Not Found'.

```typescript
// Comprehensive error handling for missing keys
Expand All @@ -680,7 +684,7 @@
}
```

### Error Code Reference

Check warning on line 687 in evm/precompiles/json.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/json.mdx#L687

Use sentence case for headings: 'Error Code Reference'.

| Error | Cause | Solution |
| --- | --- | --- |
Expand All @@ -691,7 +695,7 @@
| `out of gas` | Insufficient gas for large JSON | Use `calculateGasLimit()` for dynamic estimation |


## Key Considerations and Tricks

Check warning on line 698 in evm/precompiles/json.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/json.mdx#L698

Use sentence case for headings: 'Key Considerations and Tricks'.

<Info>

Expand Down
2 changes: 1 addition & 1 deletion evm/precompiles/oracle.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,4 @@ keywords: ['oracle precompile', 'ethers.js', 'price feeds', 'exchange rates', 't
---
**Address:** `0x0000000000000000000000000000000000001008`

<Danger>**Deprecation Notice:** The native Sei Oracle is deprecated and will be shut off soon. We strongly recommend migrating to one of the third-party oracle providers, such as [Chainlink](/evm/oracles/chainlink), [Pyth](/evm/oracles/pyth-network), [Redstone](/evm/oracles/redstone), or [API3](/evm/oracles/api3).</Danger>
<Danger>**Retired as of v6.6:** The native Sei Oracle precompile has been retired. As of the v6.6 chain upgrade, both `getExchangeRates` and `getOracleTwaps` now revert with the error `oracle precompile is retired; oracle data queries are disabled` instead of returning data. Any contract that relies on on-chain oracle exchange rate or TWAP queries via this precompile will break after the upgrade. Migrate to one of the third-party oracle providers, such as [Chainlink](/evm/oracles/chainlink), [Pyth](/evm/oracles/pyth-network), [Redstone](/evm/oracles/redstone), or [API3](/evm/oracles/api3).</Danger>
Loading