Implementation Status: While Cosmos EVM responds to all standard Ethereum RPC methods for compatibility, many are stub implementations that return empty or null responses. This page indicates the actual implementation status of each method.Legend:
- Y - Functional
- Stub - Returns success but with null/empty/zero values for compatibility
- N - Not Implemented - Returns error or not available
This documentation lists all Ethereum JSON-RPC methods and their implementation status in Cosmos EVM. For the official Ethereum JSON-RPC specification, see the Ethereum Execution APIs repository.
Namespace Configuration: By default, only the
eth
, net
, and web3
namespaces are enabled. To enable additional namespaces like personal
, txpool
, debug
, or miner
, you must configure them in your node’s JSON-RPC API settings. Methods marked as “Requires config” are implemented but need their namespace to be explicitly enabled.Non-Implemented Namespaces
The following namespaces are not implemented in Cosmos EVM but may be present in the interactive explorer for testing against other networks:debug - Debugging and Tracing (Partially Implemented)
debug - Debugging and Tracing (Partially Implemented)
The
debug
namespace provides debugging and tracing tools for development. Some tracing and profiling methods are implemented in Cosmos EVM. Many methods require the Profiling config to be enabled.admin - Node Administration (Not Applicable)
admin - Node Administration (Not Applicable)
The
admin
namespace handles node administration and peer management. Cosmos nodes use different administration mechanisms through the Cosmos SDK CLI and configuration files.miner - Mining Operations (Not Applicable)
miner - Mining Operations (Not Applicable)
The
miner
namespace controls Proof of Work mining operations. Cosmos EVM uses ‘CometBFT’ Byzantine Fault Tolerant consensus instead of mining.engine - Post-Merge Engine API (Not Applicable)
engine - Post-Merge Engine API (Not Applicable)
The
engine
namespace implements Ethereum’s post-merge Engine API for communication with the consensus layer. Cosmos EVM uses ‘CometBFT’ consensus instead of the beacon chain.clique - Proof of Authority (Not Applicable)
clique - Proof of Authority (Not Applicable)
les - Light Client Protocol (Not Supported)
les - Light Client Protocol (Not Supported)
The
les
namespace implements the Light Ethereum Subprotocol. Cosmos has a different light client architecture through IBC.Endpoints
Method | Namespace | Status | Public | Notes |
---|---|---|---|---|
web3_clientVersion | Web3 | Y | Y | |
web3_sha3 | Web3 | Y | Y | |
net_version | Net | Y | Y | |
net_peerCount | Net | Stub | Y | Returns “0x0” |
net_listening | Net | Stub | Y | Returns true |
eth_protocolVersion | Eth | Y | Y | |
eth_syncing | Eth | Stub | Y | Returns false |
eth_gasPrice | Eth | Stub | Y | Returns “0x0” |
eth_accounts | Eth | Y | Y | |
eth_blockNumber | Eth | Y | Y | |
eth_getBalance | Eth | Y | Y | |
eth_getStorageAt | Eth | Y | Y | |
eth_getTransactionCount | Eth | Y | Y | |
eth_getBlockTransactionCountByNumber | Eth | Stub | Y | Returns “0x0” |
eth_getBlockTransactionCountByHash | Eth | Stub | Y | Returns “0x0” |
eth_getCode | Eth | Stub | Y | Returns “0x” |
eth_sign | Eth | Y | N | |
eth_sendTransaction | Eth | N | N | Not implemented |
eth_sendRawTransaction | Eth | Y | Y | |
eth_call | Eth | Stub | Y | Returns “0x” |
eth_estimateGas | Eth | Y | Y | |
eth_getBlockByNumber | Eth | Y | Y | |
eth_getBlockByHash | Eth | Y | Y | |
eth_getTransactionByHash | Eth | Stub | Y | Returns null |
eth_getTransactionByBlockHashAndIndex | Eth | Stub | Y | Returns null |
eth_getTransactionReceipt | Eth | Stub | Y | Returns null |
eth_newFilter | Eth | Y | Y | |
eth_newBlockFilter | Eth | Y | Y | |
eth_newPendingTransactionFilter | Eth | Y | Y | |
eth_uninstallFilter | Eth | Stub | Y | Returns true |
eth_getFilterChanges | Eth | Stub | Y | Returns empty array |
eth_getFilterLogs | Eth | Stub | Y | Returns empty array |
eth_getLogs | Eth | Stub | Y | Returns [] |
eth_getTransactionByBlockNumberAndIndex | Eth | Stub | Y | Returns null |
eth_getWork | Eth | N | Y | Not implemented |
eth_submitWork | Eth | N | Y | Not implemented |
eth_submitHashrate | Eth | N | Y | Not implemented |
eth_getCompilers | Eth | N | N | Not implemented |
eth_compileLLL | Eth | N | N | Not implemented |
eth_compileSolidity | Eth | N | N | Not implemented |
eth_compileSerpent | Eth | N | N | Not implemented |
eth_signTransaction | Eth | N | N | Not implemented |
eth_mining | Eth | Y | Y | Deprecated - always false |
eth_coinbase | Eth | Y | Y | Deprecated in geth |
eth_hashrate | Eth | Y | Y | Deprecated - always 0 |
eth_getUncleCountByBlockHash | Eth | Stub | Y | Always “0x0” |
eth_getUncleCountByBlockNumber | Eth | Stub | Y | Always “0x0” |
eth_getUncleByBlockHashAndIndex | Eth | Stub | Y | Always null |
eth_getUncleByBlockNumberAndIndex | Eth | Stub | Y | Always null |
eth_getProof | Eth | Y | Y | |
eth_feeHistory | Eth | Y | Y | EIP-1559 |
eth_maxPriorityFeePerGas | Eth | Stub | Y | Returns “0x0” |
eth_chainId | Eth | Y | Y | |
eth_getBlockReceipts | Eth | Stub | Y | Returns empty array |
eth_resend | Eth | N | Y | Requires nonce param |
eth_createAccessList | Eth | Stub | Y | Returns partial data |
eth_blobBaseFee | Eth | N | Y | EIP-4844 not implemented |
eth_fillTransaction | Eth | N | Y | Not implemented |
eth_signTypedData | Eth | N | N | Requires domain param |
eth_signTypedData_v3 | Eth | N | N | Not implemented |
eth_signTypedData_v4 | Eth | N | N | Not implemented |
eth_pendingTransactions | Eth | N | Y | Not implemented |
eth_getPendingTransactions | Eth | Y | Y | Deprecated in geth |
eth_getHeaderByHash | Eth | Y | Y | |
eth_getHeaderByNumber | Eth | Y | Y | |
eth_simulateV1 | Eth | N | Y | Geth-specific, not implemented |
eth_getRawTransactionByHash | Eth | N | Y | Not implemented |
eth_getRawTransactionByBlockNumberAndIndex | Eth | N | Y | Not implemented |
eth_getRawTransactionByBlockHashAndIndex | Eth | N | Y | Not implemented |
eth_subscribe | Websocket | Y | Y | WebSocket only |
eth_unsubscribe | Websocket | Y | Y | WebSocket only |
personal_importRawKey | Personal | N | N | Requires valid hex key |
personal_listAccounts | Personal | Y | N | Requires config |
personal_lockAccount | Personal | Stub | N | Always false |
personal_newAccount | Personal | Y | N | Requires config |
personal_unlockAccount | Personal | Stub | N | Always false |
personal_sendTransaction | Personal | N | N | Not implemented |
personal_sign | Personal | Y | N | Requires config |
personal_ecRecover | Personal | N | N | Requires 65-byte sig |
personal_initializeWallet | Personal | N | N | Not implemented |
personal_unpair | Personal | N | N | Not implemented |
personal_listWallets | Personal | Stub | N | Returns null |
personal_signTransaction | Personal | N | N | Not implemented |
personal_signAndSendTransaction | Personal | N | N | Not implemented |
personal_openWallet | Personal | N | N | Not implemented |
personal_deriveAccount | Personal | N | N | Not implemented |
db_putString | DB | N | N | Deprecated |
db_getString | DB | N | N | Deprecated |
db_putHex | DB | N | N | Deprecated |
db_getHex | DB | N | N | Deprecated |
shh_post | SSH | N | N | Deprecated |
shh_version | SSH | N | N | Deprecated |
shh_newIdentity | SSH | N | N | Deprecated |
shh_hasIdentity | SSH | N | N | Deprecated |
shh_newGroup | SSH | N | N | Deprecated |
shh_addToGroup | SSH | N | N | Deprecated |
shh_newFilter | SSH | N | N | Deprecated |
shh_uninstallFilter | SSH | N | N | Deprecated |
shh_getFilterChanges | SSH | N | N | Deprecated |
shh_getMessages | SSH | N | N | Deprecated |
admin_addPeer | Admin | N | N | Returns undefined |
admin_removePeer | Admin | N | N | Returns undefined |
admin_datadir | Admin | N | N | Returns undefined |
admin_nodeInfo | Admin | N | N | Returns undefined |
admin_peers | Admin | N | N | Returns undefined |
admin_startHTTP | Admin | N | N | Returns undefined |
admin_startWS | Admin | N | N | Returns undefined |
admin_stopHTTP | Admin | N | N | Returns undefined |
admin_stopWS | Admin | N | N | Returns undefined |
admin_addTrustedPeer | Admin | N | N | Returns undefined |
admin_removeTrustedPeer | Admin | N | N | Returns undefined |
admin_startRPC | Admin | N | N | Returns undefined |
admin_stopRPC | Admin | N | N | Returns undefined |
admin_exportChain | Admin | N | N | Returns undefined |
admin_importChain | Admin | N | N | Returns undefined |
admin_sleepBlocks | Admin | N | N | Returns undefined |
admin_clearPeerBanList | Admin | N | N | Returns undefined |
admin_listPeerBanList | Admin | N | N | Returns undefined |
clique_getSnapshot | Clique | N | N | Returns undefined |
clique_getSnapshotAtHash | Clique | N | N | Returns undefined |
clique_getSigners | Clique | N | N | Returns undefined |
clique_getSignersAtHash | Clique | N | N | Returns undefined |
clique_propose | Clique | N | N | Returns undefined |
clique_discard | Clique | N | N | Returns undefined |
clique_status | Clique | N | N | Returns undefined |
clique_getSigner | Clique | N | N | Returns undefined |
debug_backtraceAt | Debug | N | N | Returns undefined |
debug_blockProfile | Debug | Y | N | |
debug_cpuProfile | Debug | Y | N | |
debug_dumpBlock | Debug | N | N | Returns undefined |
debug_gcStats | Debug | Y | N | |
debug_getBlockRlp | Debug | N | N | Requires uint64 param |
debug_goTrace | Debug | Y | N | |
debug_freeOSMemory | Debug | Y | N | |
debug_memStats | Debug | Y | N | |
debug_mutexProfile | Debug | Y | N | |
debug_seedHash | Debug | N | N | Not implemented |
debug_setHead | Debug | N | N | Not implemented |
debug_setBlockProfileRate | Debug | Y | N | |
debug_setGCPercent | Debug | Y | N | |
debug_setMutexProfileFraction | Debug | Y | N | |
debug_stacks | Debug | Y | N | |
debug_startCPUProfile | Debug | Y | N | |
debug_startGoTrace | Debug | Y | N | |
debug_stopCPUProfile | Debug | Y | N | |
debug_stopGoTrace | Debug | Y | N | |
debug_traceBlock | Debug | Y | N | |
debug_traceBlockByNumber | Debug | Y | N | |
debug_traceBlockByHash | Debug | Y | N | |
debug_traceBlockFromFile | Debug | N | N | Returns undefined |
debug_standardTraceBlockToFile | Debug | N | N | Returns undefined |
debug_standardTraceBadBlockToFile | Debug | N | N | Returns undefined |
debug_traceTransaction | Debug | Y | N | |
debug_traceCall | Debug | Y | N | |
debug_traceChain | Debug | N | N | Returns undefined |
debug_traceBadBlock | Debug | N | N | Returns undefined |
debug_verbosity | Debug | N | N | Not implemented |
debug_vmodule | Debug | N | N | Not implemented |
debug_writeBlockProfile | Debug | Y | N | |
debug_writeMemProfile | Debug | Y | N | |
debug_writeMutexProfile | Debug | Y | N | |
debug_getRawBlock | Debug | N | N | Not implemented |
debug_getRawHeader | Debug | N | N | Not implemented |
debug_getRawReceipts | Debug | N | N | Not implemented |
debug_getRawTransaction | Debug | N | N | Not implemented |
debug_printBlock | Debug | Y | N | |
debug_getHeaderRlp | Debug | N | N | Requires uint64 param |
debug_intermediateRoots | Debug | Y | N | Returns empty hash |
debug_getBadBlocks | Debug | N | N | Not implemented |
debug_storageRangeAt | Debug | N | N | Not implemented |
debug_getModifiedAccountsByNumber | Debug | N | N | Not implemented |
debug_getModifiedAccountsByHash | Debug | N | N | Not implemented |
les_serverInfo | Les | N | N | Returns undefined |
les_clientInfo | Les | N | N | Returns undefined |
les_priorityClientInfo | Les | N | N | Returns undefined |
les_addBalance | Les | N | N | Returns undefined |
les_setClientParams | Les | N | N | Returns undefined |
les_setDefaultParams | Les | N | N | Returns undefined |
les_latestCheckpoint | Les | N | N | Returns undefined |
les_getCheckpoint | Les | N | N | Returns undefined |
les_getCheckpointContractAddress | Les | N | N | Returns undefined |
txpool_content | TxPool | Y | Y | See experimental mempool |
txpool_contentFrom | TxPool | Y | Y | See experimental mempool |
txpool_inspect | TxPool | Y | Y | See experimental mempool |
txpool_status | TxPool | Y | Y | See experimental mempool |
trace_callMany | Trace | N | N | Not implemented |
eth_signTypedData | Eth | W | N | EIP-712 partial |
eth_fillTransaction | Eth | Y | Y | |
eth_getTransactionLogs | Eth | Y | Y | Cosmos-specific |
miner_start | Miner | N | N | Returns undefined |
miner_stop | Miner | N | N | Returns undefined |
miner_setEtherbase | Miner | N | N | Returns undefined |
miner_setGasPrice | Miner | N | N | Returns undefined |
miner_setGasLimit | Miner | N | N | Returns undefined |
miner_setExtra | Miner | N | N | Returns undefined |
miner_setRecommitInterval | Miner | N | N | Returns undefined |
miner_getHashrate | Miner | N | N | Returns undefined |
engine_newPayloadV1 | Engine | N | N | Returns undefined |
engine_newPayloadV2 | Engine | N | N | Returns undefined |
engine_newPayloadV3 | Engine | N | N | Returns undefined |
engine_forkchoiceUpdatedV1 | Engine | N | N | Returns undefined |
engine_forkchoiceUpdatedV2 | Engine | N | N | Returns undefined |
engine_forkchoiceUpdatedV3 | Engine | N | N | Returns undefined |
engine_getPayloadV1 | Engine | N | N | Returns undefined |
engine_getPayloadV2 | Engine | N | N | Returns undefined |
engine_getPayloadV3 | Engine | N | N | Returns undefined |
engine_exchangeCapabilities | Engine | N | N | Returns undefined |
engine_exchangeTransitionConfigurationV1 | Engine | N | N | Returns undefined |
engine_getPayloadBodiesByHashV1 | Engine | N | N | Returns undefined |
engine_getPayloadBodiesByRangeV1 | Engine | N | N | Returns undefined |
engine_getBlobsV1 | Engine | N | N | Returns undefined |
trace_call | Trace | N | N | Not implemented |
trace_rawTransaction | Trace | N | N | Not implemented |
trace_replayBlockTransactions | Trace | N | N | Not implemented |
trace_replayTransaction | Trace | N | N | Not implemented |
trace_block | Trace | N | N | Not implemented |
trace_filter | Trace | N | N | Not implemented |
trace_get | Trace | N | N | Not implemented |
trace_transaction | Trace | N | N | Not implemented |
Block Number can be entered as a Hex string,
"earliest"
, "latest"
or "pending"
.EIP-1559 Support: Cosmos EVM supports EIP-1559 transaction types with
eth_maxPriorityFeePerGas
, though eth_feeHistory
is not yet implemented.Consensus Differences: Due to using ‘CometBFT’ BFT consensus instead of Proof of Work/Stake:- Uncle-related methods always return 0 or null
- Block reorganizations are not possible
- Engine API (
engine_*
) is not applicable - ‘CometBFT’ handles consensus
eth_createAccessList
(EIP-2930) - Access list transactionseth_feeHistory
- Fee history for EIP-1559eth_getFilterChanges
/eth_getFilterLogs
- Filter management issueseth_fillTransaction
- Transaction filling utilityeth_resend
- Transaction resending utilitypersonal_sendTransaction
/personal_ecRecover
- Personal namespace methodspersonal_lockAccount
- Always returns false (not supported)debug_getRaw*
methods - Raw data access methodsdebug_printBlock
- Block printing utilitytrace_*
methods - Advanced tracing featuresengine_*
methods - Post-merge Engine API (uses ‘CometBFT’ instead)admin_*
methods - Node administrationles_*
methods - Light Ethereum Subprotocolclique_*
methods - Proof of Authority consensus
eth_getProof
- Requires block height > 2eth_signTypedData
(EIP-712) - Partial implementationeth_subscribe
- Works for newHeads, logs, and newPendingTransactions but not syncingpersonal_unlockAccount
- Always returns falsedebug_traceTransaction
- Has issues with block height
Examples
Below is a list of the RPC methods, the parameters and an example response from the namespaces.Web3 Methods
web3_clientVersion
Get the web3 client version.
Parameters (0)
Result
Client Examples
Shell HTTPweb3_sha3
Returns Keccak-256 (not the standardized SHA3-256) of the given data.
Parameters (1)
1: inputhexutil.Bytes
- Required: [Y] Yes
Result
Client Examples
Shell HTTPNet Methods
net_version
Returns the current network id.
net_peerCount
Returns the number of peers currently connected to the client.
net_listening
Returns if client is actively listening for network connections.
Eth Methods
eth_protocolVersion
Returns the current ethereum protocol version.
eth_syncing
The sync status object may need to be different depending on the details of cometbft’s sync protocol. However, the ‘synced’ result is simply a boolean, and can easily be derived from cometbft’s internal sync state.
eth_gasPrice
Returns the current gas price in the default EVM denomination parameter.
eth_accounts
Returns array of all eth accounts.
eth_blockNumber
Returns the current block height.
eth_getBalance
Returns the account balance for a given account address and Block Number.
Parameters
- Account Address
- Block Number or Block Hash (EIP-1898)
eth_getStorageAt
Returns the storage address for a given account address.
Parameters
- Account Address
- Integer of the position in the storage
- Block Number or Block Hash (EIP-1898)
eth_getTransactionCount
Returns the total transaction for a given account address and Block Number.
Parameters
- Account Address
- Block Number or Block Hash (EIP-1898)
eth_getBlockTransactionCountByNumber
Returns the total transaction count for a given block number.
Parameters
- Block number
eth_getBlockTransactionCountByHash
Returns the total transaction count for a given block hash.
Parameters
- Block Hash
eth_getCode
Returns the code for a given account address and Block Number.
Parameters
- Account Address
- Block Number or Block Hash (EIP-1898)
eth_sign
The sign
method calculates an Ethereum specific signature with: sign(keccak256("\x19Ethereum Signed Message:\n" + len(message) + message)))
.
By adding a prefix to the message makes the calculated signature recognizable as an Ethereum specific signature. This prevents misuse where a malicious DApp can sign arbitrary data (e.g. transaction) and use the signature to impersonate the victim.
The address to sign with must be unlocked.
Parameters
- Account Address
- Message to sign
eth_signTypedData
Signs typed structured data according to EIP-712. This method provides a more secure way to sign structured data compared to eth_sign
.
Implementation Note: This method requires a properly formatted domain parameter in the typed data structure. Without the domain, it will return an error: “domain is undefined”.
Parameters
- Account Address (20 bytes)
- Typed data object containing:
domain
: EIP-712 domain separatortypes
: Type definitionsprimaryType
: Primary type namemessage
: Message to sign
eth_sendTransaction
Sends transaction from given account to a given account.
Parameters
-
Object containing:
from
:DATA
, 20 Bytes - The address the transaction is send from.to
:DATA
, 20 Bytes - (optional when creating new contract) The address the transaction is directed to.gas
: QUANTITY - (optional, default: 90000) Integer of the gas provided for the transaction execution. It will return unused gas.gasPrice
: QUANTITY - (optional, default: To-Be-Determined) Integer of the gasPrice used for each paid gasvalue
: QUANTITY - value sent with this transactiondata
:DATA
- The compiled code of a contract OR the hash of the invoked method signature and encoded parameters. For details see Ethereum Contract ABI.nonce
: QUANTITY - (optional) Integer of a nonce. This allows to overwrite your own pending transactions that use the same nonce.
eth_sendRawTransaction
Creates new message call transaction or a contract creation for signed transactions. You can get signed transaction data using the personal_sign
method.
Parameters
- The signed transaction data
eth_call
Executes a new message call immediately without creating a transaction on the block chain.
Parameters
-
Object containing:
from
:DATA
, 20 Bytes - (optional) The address the transaction is sent from.to
:DATA
, 20 Bytes - The address the transaction is directed to.gas
: QUANTITY - gas provided for the transaction execution. eth_call consumes zero gas, but this parameter may be needed by some executions.gasPrice
: QUANTITY - gasPrice used for each paid gasvalue
: QUANTITY - value sent with this transactiondata
:DATA
- (optional) Hash of the method signature and encoded parameters. For details see Ethereum Contract ABI in the Solidity documentation - Block number or Block Hash (EIP-1898)
eth_estimateGas
Returns an estimate value of the gas required to send the transaction.
Parameters
-
Object containing:
from
:DATA
, 20 Bytes - The address the transaction is send from.to
:DATA
, 20 Bytes - (optional when creating new contract) The address the transaction is directed to.value
:QUANTITY
- value sent with this transaction
eth_getBlockByNumber
Returns information about a block by block number.
Parameters
- Block Number
- If true it returns the full transaction objects, if false only the hashes of the transactions.
eth_getBlockByHash
Returns the block info given the hash found in the command above and a bool.
Parameters
- Hash of a block.
- If true it returns the full transaction objects, if false only the hashes of the transactions.
eth_getTransactionByHash
Returns transaction details given the ethereum tx something.
Parameters
- hash of a transaction
eth_getTransactionByBlockHashAndIndex
Returns transaction details given the block hash and the transaction index.
Parameters
- Hash of a block.
- Transaction index position.
eth_getTransactionReceipt
Returns the receipt of a transaction by transaction hash.
Note: Tx Code from CometBFT and the Ethereum receipt status are switched:
CometBFT | Ethereum | |
---|---|---|
Success | 0 | 1 |
Fail | 1 | 0 |
Parameters
- Hash of a transaction
eth_newFilter
Create new filter using topics of some kind.
Parameters
- hash of a transaction
eth_newBlockFilter
Creates a filter in the node, to notify when a new block arrives.
eth_newPendingTransactionFilter
Creates a filter in the node, to notify when new pending transactions arrive.
eth_uninstallFilter
Removes the filter with the given filter id. Returns true if the filter was successfully uninstalled, otherwise false.
Parameters
- The filter id
eth_getFilterChanges
Polling method for a filter, which returns an array of logs which occurred since last poll.
Parameters
- The filter id
eth_getFilterLogs
Returns an array of all logs matching filter with given id.
Parameters
QUANTITY
- The filter id
eth_getLogs
Returns an array of all logs matching a given filter object.
Parameters
-
Object containing:
fromBlock
:QUANTITY|TAG
- (optional, default:"latest"
) Integer block number, or"latest"
for the last mined block or"pending"
,"earliest"
for not yet mined transactions.toBlock
:QUANTITY|TAG
- (optional, default:"latest"
) Integer block number, or"latest"
for the last mined block or"pending"
,"earliest"
for not yet mined transactions.address
:DATA|Array
, 20 Bytes - (optional) Contract address or a list of addresses from which logs should originate.topics
: Array ofDATA
, - (optional) Array of 32 BytesDATA
topics. Topics are order-dependent. Each topic can also be an array ofDATA
with “or” options.blockhash
: (optional, future) With the addition of EIP-234,blockHash
will be a new filter option which restricts the logs returned to the single block with the 32-byte hashblockHash
. UsingblockHash
is equivalent tofromBlock
=toBlock
= the block number with hashblockHash
. IfblockHash
is present in in the filter criteria, then neitherfromBlock
nortoBlock
are allowed.
eth_coinbase
Returns the account the mining rewards will be send to.
eth_mining
Returns whether the client is actively mining new blocks.
Always returns
false
as Cosmos EVM uses ‘CometBFT’ consensus instead of mining.eth_hashrate
Returns the number of hashes per second that the node is mining with.
Always returns
0x0
as Cosmos EVM uses ‘CometBFT’ consensus instead of mining.eth_chainId
Returns the chain ID used for signing replay-protected transactions.
eth_getUncleCountByBlockHash
Returns the number of uncles in a block matching the given block hash.
Always returns
0x0
as Cosmos EVM does not have uncles due to using ‘CometBFT’ consensus.Parameters
- Block hash
eth_getUncleCountByBlockNumber
Returns the number of uncles in a block matching the given block number.
Always returns
0x0
as Cosmos EVM does not have uncles due to using ‘CometBFT’ consensus.Parameters
- Block number
eth_getUncleByBlockHashAndIndex
Returns information about an uncle by block hash and uncle index position.
Always returns
null
as Cosmos EVM does not have uncles due to using ‘CometBFT’ consensus.Parameters
- Block hash
- Uncle index position
eth_getUncleByBlockNumberAndIndex
Returns information about an uncle by block number and uncle index position.
Always returns
null
as Cosmos EVM does not have uncles due to using ‘CometBFT’ consensus.Parameters
- Block number
- Uncle index position
eth_getTransactionByBlockNumberAndIndex
Returns information about a transaction by block number and transaction index position.
Parameters
- Block number
- Transaction index position
eth_maxPriorityFeePerGas
Returns the current maxPriorityFeePerGas per gas in wei.
eth_getBlockReceipts
Returns all transaction receipts for a given block.
Parameters
- Block number or block hash
eth_getTransactionLogs
Returns the logs for a specific transaction.
Parameters
- Transaction hash
eth_fillTransaction
Fills the defaults (nonce, gas, gasPrice or 1559 fields) on a given unsigned transaction, and returns it to the caller for further processing (signing + broadcast).
Parameters
- Transaction object with optional fields
eth_resend
Resends a transaction with updated gas parameters. Removes the given transaction from the pool and reinserts it with the new gas price and limit.
Implementation Note: This method requires a transaction
nonce
parameter in the transaction object. Without the nonce, it will return an error: “missing transaction nonce in transaction spec”.Parameters
- Original transaction object (must include
nonce
) - New gas price (hex)
- New gas limit (hex)
eth_getProof
Returns the account- and storage-values of the specified account including the Merkle-proof.
Implementation Note: This method requires a valid block height. Using “latest” or block heights less than 1 will return an error: “cannot query with height < 0; please provide a valid height”. You must specify an actual block number.
Parameters
- Address of account or contract
- Array of storage positions (32-byte storage slot)
- Block Number (must be a specific number, not “latest”)
WebSocket Methods
Read more about using websockets.eth_subscribe
subscribe using JSON-RPC notifications. This allows clients to wait for events instead of polling for them. It works by subscribing to particular events. The node will return a subscription id. For each event that matches the subscription a notification with relevant data is send together with the subscription id.
Parameters
- Subscription Name
- Optional Arguments
eth_unsubscribe
Unsubscribe from an event using the subscription id
Parameters
- Subscription ID
Personal Methods
personal_importRawKey
Private: Requires authentication.
Implementation Note: The private key must be a valid 64-character hex string (32 bytes) without the “0x” prefix. Invalid hex characters will return an error: “invalid hex character ‘x’ in private key”.
Parameters (2)
1: privkeystring
- Required: [Y] Yes
- Format: 64 hex characters (32 bytes) without “0x” prefix
string
- Required: [Y] Yes
personal_listAccounts
Private: Requires authentication.
personal_lockAccount
Private: Requires authentication.
Parameters
- Account Address
personal_newAccount
Private: Requires authentication.
Parameters
- Passphrase
personal_unlockAccount
Private: Requires authentication.
eth_sign
and eth_sendTransaction
while it is unlocked.
Parameters
- Account Address
- Passphrase
- Duration
personal_sendTransaction
Private: Requires authentication.
eth_sendTransaction
and contains the from
address. If the passphrase can be used to decrypt the private key belonging to tx.from
the transaction is verified, signed and send onto the network.
The account is not unlocked globally in the node and cannot be used in other RPC calls.
Parameters
-
Object containing:
from
:DATA
, 20 Bytes - The address the transaction is send from.to
:DATA
, 20 Bytes - (optional when creating new contract) The address the transaction is directed to.value
: QUANTITY - value sent with this transaction - Passphrase
personal_sign
Private: Requires authentication.
sign(keccack256("\x19Ethereum Signed Message:\n" + len(message) + message)))
,
Parameters
- Message
- Account Address
- Password
personal_ecRecover
Private: Requires authentication.
ecRecover
returns the address associated with the private key that was used to calculate the signature in personal_sign
.
Implementation Note: The signature must be exactly 65 bytes (130 hex characters). Signatures of other lengths will return an error: “signature must be 65 bytes long”.
Parameters
- Message (hex encoded)
- Signature returned from
personal_sign
(65 bytes)
personal_initializeWallet
Private: Requires authentication.
Parameters (1)
Parameters must be given by position. 1: urlstring
- Required: [Y] Yes
Client Examples
Shell HTTPpersonal_unpair
Private: Requires authentication.
Parameters (2)
- URL
- Pairing password
Client Examples
Shell HTTPpersonal_listWallets
Private: Requires authentication.
Currently returns
null
as wallet-level management is not supported.Debug Methods
debug_traceTransaction
The traceTransaction
debugging method will attempt to run the transaction in the exact same manner as it was executed on the network. It will replay any transaction that may have been executed prior to this one before it will finally attempt to execute the transaction that corresponds to the given hash.
Parameters
- Trace Config
debug_traceBlockByNumber
The traceBlockByNumber
endpoint accepts a block number and will replay the block that is already present in the database.
Stub Implementation: This method is implemented but currently returns an empty array for all requests. The tracing functionality is not fully operational in Cosmos EVM.
Parameters
- Block number (hex string)
- Trace Config (optional)
debug_traceBlockByHash
Similar to debug_traceBlockByNumber
, this method accepts a block hash and will replay the block that is already present in the database.
Stub Implementation: This method is implemented but currently returns an empty array for all requests. The tracing functionality is not fully operational in Cosmos EVM.
Parameters
- Block hash (32-byte hash)
- Trace Config (optional)
debug_freeOSMemory
Forces the Go runtime to perform a garbage collection and return unused memory to the OS.
Private: Requires authentication.
debug_setGCPercent
Sets the garbage collection target percentage. A negative value disables garbage collection.
Private: Requires authentication.
Parameters
- GC percentage (integer)
debug_memStats
Returns detailed runtime memory statistics.
Private: Requires authentication.
debug_setBlockProfileRate
Sets the rate of goroutine block profile data collection. A non-zero value enables block profiling.
Private: Requires authentication.
Parameters
- Profile rate (integer)
debug_writeBlockProfile
Writes a goroutine blocking profile to the specified file.
Private: Requires authentication.
Parameters
- File path (string)
debug_writeMemProfile
Writes an allocation profile to the specified file.
Private: Requires authentication.
Parameters
- File path (string)
debug_writeMutexProfile
Writes a mutex contention profile to the specified file.
Private: Requires authentication.
Parameters
- File path (string)
debug_blockProfile
Turns on block profiling for the given duration and writes the profile data to disk.
Private: Requires authentication.
Parameters
- File path (string) - Output file for the profile
- Duration in seconds (number)
debug_cpuProfile
Turns on CPU profiling for the given duration and writes the profile data to disk.
Private: Requires authentication.
Parameters
- File path (string) - Output file for the profile
- Duration in seconds (number)
debug_gcStats
Returns garbage collection statistics.
Private: Requires authentication.
Cosmos-specific: This method is unique to Cosmos EVM.
debug_goTrace
Turns on Go runtime tracing for the given duration and writes the trace data to disk.
Private: Requires authentication.
Parameters
- File path (string) - Output file for the trace
- Duration in seconds (number)
debug_stacks
Returns a printed representation of the stacks of all goroutines.
Private: Requires authentication.
debug_startCPUProfile
Starts indefinite CPU profiling, writing to the given file.
Private: Requires authentication.
Parameters
- File path (string) - Output file for the profile
debug_stopCPUProfile
Stops an ongoing CPU profile.
Private: Requires authentication.
debug_mutexProfile
Turns on mutex profiling for the given duration and writes the profile data to disk.
Private: Requires authentication.
Parameters
- File path (string) - Output file for the profile
- Duration in seconds (number)
debug_setMutexProfileFraction
Sets the rate of mutex profiling.
Private: Requires authentication.
Cosmos-specific: This method is unique to Cosmos EVM.
Parameters
- Rate (number) - 0 to disable, 1 for full profiling
debug_getHeaderRlp
Returns the RLP encoding of the header of the block.
Private: Requires authentication.
Parameter Type: This method requires the block number as a
uint64
(number type), not a hex string. Passing a string will return an error: “invalid argument 0: json: cannot unmarshal string into Go value of type uint64”.Parameters
- Block number (uint64 number, not hex string)
debug_getBlockRlp
Returns the RLP encoding of the block.
Private: Requires authentication.
Parameter Type: This method requires the block number as a
uint64
(number type), not a hex string. Passing a string will return an error: “invalid argument 0: json: cannot unmarshal string into Go value of type uint64”.Parameters
- Block number (uint64 number, not hex string)
debug_printBlock
Returns a formatted string of the block.
Private: Requires authentication.
Parameter Type: This method requires the block number as a
uint64
(number type), not a hex string. Passing a string will return an error: “invalid argument 0: json: cannot unmarshal string into Go value of type uint64”.Parameters
- Block number (uint64 number, not hex string)
debug_intermediateRoots
Returns the intermediate state roots for a transaction.
Private: Requires authentication.
Parameters
- Transaction hash (hash)
- Trace config (object, optional)
TxPool Methods
txpool_content
Returns a list of the exact details of all the transactions currently pending for inclusion in the next block(s), as well as the ones that are being scheduled for future execution only.
Parameters (0)
Client Examples
Shell HTTPResult
txpool_contentFrom
Returns transactions from a specific address that are currently pending for inclusion in the next block(s), as well as the ones that are being scheduled for future execution only.
Parameters (1)
address
- The address to filter transactions from (20 bytes)