Comprehensive reference documentation for Sei’s EVM JSON-RPC API endpoints, including standard Ethereum methods and Sei-specific extensions for developers.
Use this file to discover all available pages before exploring further.
Sei fully supports the standard Ethereum JSON-RPC API, so existing EVM tooling (ethers.js, viem, Hardhat, Foundry, etc.) works out of the box. This page covers every supported eth_* and debug_* method, plus the legacy sei_*/sei2_* extensions (now deprecated) for cross-VM address resolution and synthetic transactions.
Sei supports the Ethereum JSON-RPC API with some Sei-specific extensions to support cross-VM operations, synthetic transactions, and other advanced features.All endpoints follow the standard JSON-RPC format:
JSON-RPC Request/Response Format
Request Format
HTTP method: always “POST”
Header: accept: application/json
Header: content-type: application/json
Body (JSON):
id: an arbitrary string identifier
jsonrpc: always “2.0”
method: endpoint name (e.g. “eth_sendRawTransaction”)
params: an array that differs from endpoint to endpoint
Response Format
Body (JSON):
id: the same identifier in request
jsonrpc: always “2.0”
result: an object that differs from endpoint to endpoint
Sei supports all standard Ethereum JSON-RPC endpoints, organized into the following categories. Click on each category to view the available endpoints and their documentation.
Gets transaction by the block number and the index of the transaction in the
block
Parameters:
Type
Description
string
The block number, which can either be a hexadecimal number, or one of “safe”, “finalized”, “latest”, or “earliest”. Note that “safe”, “finalized”, and “latest” mean the same thing on Sei due to its instant finality.
Gets the number of transactions sent by the account
Parameters:
Type
Description
string
The address to look up.
string
The block number, which can either be a hexadecimal number, or one of “safe”, “finalized”, “latest”, or “earliest”. Note that “safe”, “finalized”, and “latest” mean the same thing on Sei due to its instant finality.
Result:
Type
Description
string
The hexadecimal form of the number of transactions.
Gets the balance in wei (i.e. 10^-12 usei) of the account
Parameters:
Type
Description
string
The address to look up.
string
The block number or hash, which can be one of 1. block hash, 2. hexadecimal block number, 3. one of safe, finalized, latest, pending, or earliest. Note that safe, finalized, and latest mean the same thing on Sei due to its instant finality.
The block number or hash, which can be one of 1. block hash, 2. hexadecimal block number, 3. one of safe, finalized, latest, pending, or earliest. Note that safe, finalized, and latest mean the same thing on Sei due to its instant finality.
The block number or hash, which can be one of 1. block hash, 2. hexadecimal block number, 3. one of safe, finalized, latest, pending, or earliest. Note that safe, finalized, and latest mean the same thing on Sei due to its instant finality.
Sei uses IAVL trees instead of Merkle Patricia Tries (MPT). The proof returned by this endpoint is an IAVL proof, not an MPT proof. Ethereum tooling that expects MPT proofs may not parse the response correctly.
Gets the IAVL proof of the given keys for an account.
Parameters:
Type
Description
string
The address to look up.
string[]
The hexadecimal form of the keys.
string
The block number or hash, which can be one of 1. block hash, 2. hexadecimal block number, 3. one of safe, finalized, latest, pending, or earliest. Note that safe, finalized, and latest mean the same thing on Sei due to its instant finality.
Result:
Type
Description
object
An object with data from the IAVL proof.
Object Schema:
{ address: // The requested address. hexValues: // An array of the hexdecimal form of the values at the given keys. storageProof: // An array of storage proofs.}
Note: The storage proofs in the return object follow this
format.
Gets the count of EVM transactions in a block by its number.
Parameters:
Type
Description
string
Block number (hexadecimal or safe, finalized, latest, pending, or earliest). Note that safe, finalized, and latest are equivalent on Sei due to instant finality.
Gets an array of EVM transaction receipts in a block by its number.
Parameters:
Type
Description
string
The block number or hash, which can be one of 1. block hash, 2. hexadecimal block number, 3. one of safe, finalized, latest, pending, or earliest. Note that safe, finalized, and latest mean the same thing on Sei due to its instant finality.
Sei extends the standard Ethereum JSON-RPC API with custom endpoints that enhance functionality for developers. These extensions enable better handling of cross-VM interactions, synthetic transactions, improved error reporting, and other Sei-specific features.
Deprecation Notice: All sei_* and sei2_* JSON-RPC methods are deprecated and scheduled for removal. Do not build new integrations on these endpoints. Use standard eth_* and debug_* methods instead.Access is controlled by the enabled_legacy_sei_apis setting under [evm] in app.toml. Only methods explicitly listed in this allowlist are available. Disabled methods return a standard JSON-RPC error (code -32601, data "legacy_sei_deprecated"). Allowed methods pass through unchanged, with an optional Sei-Legacy-RPC-Deprecation HTTP response header signaling deprecation.
The enabled_legacy_sei_apis setting in app.toml controls which sei_* and sei2_* methods are accessible on the EVM HTTP endpoint.Default allowlist (enabled on seid init):
To enable additional legacy methods, add them to this array. All other sei_* and sei2_* methods (including all sei2_* block methods) are disabled by default and must be explicitly enabled.
View all available legacy methods
sei_* methods:
Method
Description
sei_associate
Associate Sei and EVM addresses
sei_getSeiAddress
Get Sei address for an EVM address
sei_getEVMAddress
Get EVM address for a Sei address
sei_getCosmosTx
Get Cosmos transaction by EVM tx hash
sei_getEvmTx
Get EVM transaction by Cosmos tx hash
sei_getTransactionErrorByHash
Get error message for a failed transaction
sei_getVMError
Get VM error details for a transaction
sei_getBlockByHash
Get block by hash (includes synthetic txs)
sei_getBlockByNumber
Get block by number (includes synthetic txs)
sei_getBlockReceipts
Get block receipts (includes synthetic txs)
sei_getBlockTransactionCountByHash
Get tx count by block hash (includes synthetic txs)
sei_getBlockTransactionCountByNumber
Get tx count by block number (includes synthetic txs)
sei_getTransactionByBlockHashAndIndex
Get tx by block hash and index (includes synthetic txs)
sei_getTransactionByBlockNumberAndIndex
Get tx by block number and index (includes synthetic txs)
sei_getTransactionByHash
Get transaction by hash (includes synthetic txs)
sei_getTransactionCount
Get account transaction count
sei_getTransactionReceipt
Get transaction receipt (includes synthetic txs)
sei_getFilterLogs
Get filter logs (includes synthetic logs)
sei_getLogs
Get logs (includes synthetic logs)
sei_getFilterChanges
Get filter changes (includes synthetic events)
sei_newFilter
Create a new log filter
sei_newBlockFilter
Create a new block filter
sei_uninstallFilter
Remove a filter
sei_getBlockByHashExcludeTraceFail
Get block by hash excluding failed traces
sei_getBlockByNumberExcludeTraceFail
Get block by number excluding failed traces
sei_getTransactionReceiptExcludeTraceFail
Get receipt excluding failed traces
sei_traceBlockByHashExcludeTraceFail
Trace block by hash excluding failed traces
sei_traceBlockByNumberExcludeTraceFail
Trace block by number excluding failed traces
sei2_* methods (block queries with bank transfers included):
Method
Description
sei2_getBlockByHash
Get block by hash (includes bank transfers)
sei2_getBlockByNumber
Get block by number (includes bank transfers)
sei2_getBlockReceipts
Get block receipts (includes bank transfers)
sei2_getBlockTransactionCountByHash
Get tx count by block hash (includes bank transfers)
sei2_getBlockTransactionCountByNumber
Get tx count by block number (includes bank transfers)
sei2_getBlockByHashExcludeTraceFail
Get block by hash excluding failed traces (includes bank transfers)
sei2_getBlockByNumberExcludeTraceFail
Get block by number excluding failed traces (includes bank transfers)
These endpoints provide cross-VM address resolution and transaction lookup between the EVM and Cosmos environments. sei_getSeiAddress, sei_getEVMAddress, and sei_getCosmosTx are enabled by default.
Sends a transaction to establish association between the signer’s Sei address
and EVM address on-chain.
Parameters:
Type
Description
object
A custom object containing a string message and the v, r, s of the signed message.
Object Schema:
{ custom_message: // Any string message r: // The R-part of the signature over the Keccak256 hash of the custom message. s: // The S-part of the signature over the Keccak256 hash of the custom message. v: // The V-part of the signature over the Keccak256 hash of the custom message.}
Result:
Type
Description
string
The transaction hash of the association transaction.
When a sei_* or sei2_* method is called but not listed in enabled_legacy_sei_apis, the node returns:
{ "jsonrpc": "2.0", "id": 1, "error": { "code": -32601, "message": "sei_getBlockByNumber is not enabled on this node. The sei_* and sei2_* JSON-RPC surfaces are deprecated, scheduled for removal, and should not be used for new integrations - prefer standard eth_* (and debug_*) methods and official migration guidance. To allow this legacy method, add it to enabled_legacy_sei_apis under [evm] in app.toml.", "data": "legacy_sei_deprecated" }}