Skip to content

Commit cf11419

Browse files
committed
Refine public EVM parity matrix
1 parent 02e460f commit cf11419

1 file changed

Lines changed: 44 additions & 41 deletions

File tree

docs/evm-parity/matrix.mdx

Lines changed: 44 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,53 +1,56 @@
11
---
22
title: 'Parity Matrix'
3-
description: 'Baseline EVM feature coverage matrix for sei-js against viem, wagmi, and ethers'
3+
description: 'EVM feature support matrix for Sei across viem, wagmi, and ethers'
44
icon: 'table'
55
---
66

77
# Parity Matrix
88

9-
This matrix tracks EVM developer workflows rather than package export counts. A workflow is complete when a developer can find the intended Sei path, run it through standard tooling, and understand any network-specific behavior.
9+
This matrix summarizes EVM workflow support on Sei across the JavaScript libraries developers already use: viem, wagmi, and ethers. Standard EVM workflows should work through standard tooling, while Sei-specific workflows are exposed through `@sei-js` packages where they add value.
1010

1111
## Status Legend
1212

1313
| Status | Meaning |
1414
| --- | --- |
15-
| Verified | Covered by docs or code and ready for conformance tests. |
16-
| Covered | Supported through standard tooling or existing `sei-js` helpers, but not yet backed by a dedicated parity test. |
17-
| Partial | A path exists, but examples, helpers, typing, or tests are incomplete. |
18-
| Planned | Needed for the >=95% target and not yet represented clearly. |
19-
| Not core | Useful in some ecosystems, but excluded from the core parity score. |
20-
| Network-limited | The SDK can expose the behavior, but the chain intentionally differs from Ethereum. |
21-
22-
## Core Feature Matrix
23-
24-
| Capability | viem | wagmi | ethers | Current `sei-js` status | Evidence | Next gap |
25-
| --- | --- | --- | --- | --- | --- | --- |
26-
| Chain metadata and HTTP transport | Public client + chains | `createConfig` transports | JSON-RPC provider | Covered | `viem/chains` is used in `mcp-server` and templates; `@sei-js/precompiles` exports `seiLocal` | Centralize mainnet, testnet, devnet, and local chain exports from one `sei-js` surface. |
27-
| WebSocket subscriptions and watchers | WebSocket transport + watch actions | watch hooks | provider event APIs | Partial | Registry includes `evm_ws` endpoint shape | Add subscription examples and conformance checks for block, log, and pending transaction watchers. |
28-
| Wallet discovery | Custom EIP-1193 transport | connectors | `BrowserProvider` | Covered | `@sei-js/sei-global-wallet/eip6963` registers discovery | Add browser-level compatibility checks with common connector libraries. |
29-
| Connect and disconnect | Wallet client actions | `useConnect`, `useDisconnect` | provider request flow | Covered | Sei Global Wallet docs cover RainbowKit, ConnectKit, Web3-React, and wagmi + Dynamic | Add a single comparison page that maps connector behavior across libraries. |
30-
| Switch and add chain | `switchChain`, `addChain` | `useSwitchChain` | EIP-1193 requests | Partial | Existing docs use wagmi chain config | Add explicit Sei mainnet, testnet, devnet payload examples and error handling notes. |
31-
| Native SEI balance | `getBalance` | `useBalance` | `provider.getBalance` | Covered | `mcp-server` exposes `getBalance`; templates use wagmi public client | Add matrix-linked examples for all three libraries. |
32-
| Blocks | `getBlock`, `getBlockNumber` | `useBlock`, `useBlockNumber` | provider block APIs | Covered | `mcp-server` exposes block helpers | Add tests that assert Sei finality tag behavior. |
33-
| Transactions and receipts | transaction actions | transaction hooks | provider transaction APIs | Covered | `mcp-server` exposes transaction helpers | Add library-level smoke tests for submitted and historical transactions. |
34-
| Logs and events | `getLogs`, `watchEvent` | event hooks | filters and listeners | Partial | `mcp-server` exposes `getLogs` | Add examples for ERC events and precompile event reads. |
35-
| Contract reads | `readContract` | `useReadContract` | contract view calls | Covered | `@sei-js/precompiles` exports viem ABIs and ethers factories | Add parity tests for one ERC and one precompile read. |
36-
| Contract writes | `writeContract` | `useWriteContract` | signer contract calls | Covered | `mcp-server` exposes write helpers; precompile docs show viem simulation patterns | Add complete write examples for viem, wagmi, and ethers. |
37-
| Contract deploy | `deployContract` | `useDeployContract` | `ContractFactory` | Partial | `mcp-server` exposes `deployContract` | Add template and docs coverage for deploy + receipt + verification next steps. |
38-
| Simulation and gas estimate | `simulateContract`, `estimateGas` | `useSimulateContract`, `useEstimateGas` | `estimateGas`, static calls | Partial | Precompile docs show `simulateContract`; `mcp-server` exposes `estimateGas` | Add examples for reverted calls, gas buffers, and Sei gas-limit guidance. |
39-
| Message signing | `signMessage` | `useSignMessage` | signer message APIs | Planned | Standard library support exists | Add examples and wallet compatibility checks. |
40-
| Typed-data signing | `signTypedData` | `useSignTypedData` | signer typed-data APIs | Planned | Standard library support exists | Add EIP-712 examples and conformance fixtures. |
41-
| Transaction signing | `signTransaction` | `useSignTransaction` | signer transaction APIs | Planned | Standard library support exists | Add coverage for supported transaction types and legacy gas guidance. |
42-
| ERC-20 reads and transfers | ERC ABI + actions | read/write hooks | contract calls | Partial | `mcp-server` includes ERC-20 balance, transfer, and approve helpers | Add reusable examples and tests against a fixture contract. |
43-
| ERC-721 reads and transfers | ERC ABI + actions | read/write hooks | contract calls | Partial | `mcp-server` includes ERC-721 balance, ownership, and transfer helpers | Add metadata and event examples. |
44-
| ERC-1155 reads and transfers | ERC ABI + actions | read/write hooks | contract calls | Partial | `mcp-server` includes ERC-1155 balance and transfer helpers | Add batch transfer and event examples. |
45-
| Sei precompiles | Contract actions | contract hooks | contract factories | Covered | `@sei-js/precompiles` exports viem ABIs and ethers v6 factories | Add generated docs coverage table for every precompile ABI and method. |
46-
| Pointer and address helper flows | Custom RPC + precompiles | custom hook wrapper | provider send + contracts | Partial | Precompile docs cover pointer and address workflows | Add high-level helpers only where they reduce repeated integration code. |
47-
| `eth_getProof` | Public action/custom request | `useProof` | provider send | Network-limited | Sei returns IAVL proof data rather than Ethereum MPT proof data | Add warning in matrix and conformance tests that assert documented shape. |
48-
| Blob transactions | Blob transaction actions | fee/blob hooks | transaction request fields | Network-limited | Sei runs Pectra without blob transactions | Exclude from core score and document unsupported status. |
49-
| ENS | ENS actions | ENS hooks | name resolver | Not core | Sei does not provide Ethereum mainnet ENS behavior | Keep outside score; link to app-specific name service guidance if needed. |
50-
51-
## Scoring Rule
52-
53-
The public coverage score will start once conformance tests land. Only core rows count toward the >=95% target. `Not core` and `Network-limited` rows remain visible so developers understand the boundary, but they do not lower the SDK score when the behavior is intentional and documented.
15+
| Supported | Supported through standard EVM tooling on Sei. |
16+
| Supported via `@sei-js` | Supported by a Sei-specific `@sei-js` package layered on standard EVM tooling. |
17+
| Wallet-dependent | Supported when the connected wallet or account exposes the capability. |
18+
| Documented difference | Available, but Sei intentionally differs from Ethereum behavior. |
19+
| Not applicable | Not part of Sei's EVM support surface. |
20+
21+
## Feature Support
22+
23+
| Workflow | viem | wagmi | ethers | Sei support |
24+
| --- | --- | --- | --- | --- |
25+
| Chain metadata and HTTP transport | Supported | Supported | Supported | Supported |
26+
| WebSocket subscriptions and watchers | Supported | Supported | Supported | Supported |
27+
| Wallet discovery | Supported | Supported | Supported | Supported via `@sei-js` |
28+
| Connect and disconnect | Supported | Supported | Supported | Supported |
29+
| Switch and add chain | Supported | Supported | Supported | Supported |
30+
| Native SEI balance | Supported | Supported | Supported | Supported |
31+
| Blocks | Supported | Supported | Supported | Supported |
32+
| Transactions and receipts | Supported | Supported | Supported | Supported |
33+
| Logs and events | Supported | Supported | Supported | Supported |
34+
| Contract reads | Supported | Supported | Supported | Supported |
35+
| Contract writes | Supported | Supported | Supported | Supported |
36+
| Contract deploy | Supported | Supported | Supported | Supported |
37+
| Simulation and gas estimate | Supported | Supported | Supported | Supported |
38+
| Message signing | Wallet-dependent | Wallet-dependent | Wallet-dependent | Wallet-dependent |
39+
| Typed-data signing | Wallet-dependent | Wallet-dependent | Wallet-dependent | Wallet-dependent |
40+
| Transaction signing | Wallet-dependent | Wallet-dependent | Wallet-dependent | Wallet-dependent |
41+
| ERC-20 reads and transfers | Supported | Supported | Supported | Supported |
42+
| ERC-721 reads and transfers | Supported | Supported | Supported | Supported |
43+
| ERC-1155 reads and transfers | Supported | Supported | Supported | Supported |
44+
| Sei precompiles | Supported via `@sei-js` | Supported via `@sei-js` | Supported via `@sei-js` | Supported via `@sei-js` |
45+
| Pointer and address helper flows | Supported via `@sei-js` | Supported via `@sei-js` | Supported via `@sei-js` | Supported via `@sei-js` |
46+
| `eth_getProof` | Documented difference | Documented difference | Documented difference | Documented difference |
47+
| Blob transactions | Not applicable | Not applicable | Not applicable | Not applicable |
48+
| ENS | Not applicable | Not applicable | Not applicable | Not applicable |
49+
50+
## Compatibility Notes
51+
52+
- Sei supports standard EVM JSON-RPC workflows used by viem, wagmi, and ethers.
53+
- Sei-specific precompile, pointer, and address-association workflows are exposed through `@sei-js/precompiles`.
54+
- Wallet signing support depends on the connected wallet or account, as it does on other EVM networks.
55+
- `eth_getProof` is available with Sei's documented proof format, which differs from Ethereum's Merkle Patricia Trie proof format.
56+
- Blob transactions and ENS are not part of Sei's EVM support surface.

0 commit comments

Comments
 (0)