ethermint/evm

Table of Contents

ethermint/evm/v1/evm.proto

Top

AccessTuple

AccessTuple is the element type of an access list.

FieldTypeLabelDescription
address string

hex formatted ethereum address

storage_keys string repeated

hex formatted hashes of the storage keys

ChainConfig

ChainConfig defines the Ethereum ChainConfig parameters using *sdk.Int values

instead of *big.Int.

FieldTypeLabelDescription
homestead_block string

Homestead switch block (nil no fork, 0 = already homestead)

dao_fork_block string

TheDAO hard-fork switch block (nil no fork)

dao_fork_support bool

Whether the nodes supports or opposes the DAO hard-fork

eip150_block string

EIP150 implements the Gas price changes (https://github.com/ethereum/EIPs/issues/150) EIP150 HF block (nil no fork)

eip150_hash string

EIP150 HF hash (needed for header only clients as only gas pricing changed)

eip155_block string

EIP155Block HF block

eip158_block string

EIP158 HF block

byzantium_block string

Byzantium switch block (nil no fork, 0 = already on byzantium)

constantinople_block string

Constantinople switch block (nil no fork, 0 = already activated)

petersburg_block string

Petersburg switch block (nil same as Constantinople)

istanbul_block string

Istanbul switch block (nil no fork, 0 = already on istanbul)

muir_glacier_block string

Eip-2384 (bomb delay) switch block (nil no fork, 0 = already activated)

berlin_block string

Berlin switch block (nil = no fork, 0 = already on berlin)

london_block string

London switch block (nil = no fork, 0 = already on london)

arrow_glacier_block string

Eip-4345 (bomb delay) switch block (nil = no fork, 0 = already activated)

merge_fork_block string

EIP-3675 (TheMerge) switch block (nil = no fork, 0 = already in merge proceedings)

Log

Log represents an protobuf compatible Ethereum Log that defines a contract

log event. These events are generated by the LOG opcode and stored/indexed by

the node.

Consensus fields:

FieldTypeLabelDescription
address string

address of the contract that generated the event

topics string repeated

list of topics provided by the contract.

data bytes

supplied by the contract, usually ABI-encoded

block_number uint64

block in which the transaction was included

tx_hash string

hash of the transaction

tx_index uint64

index of the transaction in the block

block_hash string

hash of the block in which the transaction was included

index uint64

index of the log in the block

removed bool

The Removed field is true if this log was reverted due to a chain reorganisation. You must pay attention to this field if you receive logs through a filter query.

Params

Params defines the EVM module parameters

FieldTypeLabelDescription
evm_denom string

evm denom represents the token denomination used to run the EVM state transitions.

enable_create bool

enable create toggles state transitions that use the vm.Create function

enable_call bool

enable call toggles state transitions that use the vm.Call function

extra_eips int64 repeated

extra eips defines the additional EIPs for the vm.Config

chain_config ChainConfig

chain config defines the EVM chain configuration parameters

allow_unprotected_txs bool

Allow unprotected transactions defines if replay-protected (i.e non EIP155 signed) transactions can be executed on the state machine.

State

State represents a single Storage key value pair item.

FieldTypeLabelDescription
key string

value string

TraceConfig

TraceConfig holds extra parameters to trace functions.

FieldTypeLabelDescription
tracer string

custom javascript tracer

timeout string

overrides the default timeout of 5 seconds for JavaScript-based tracing calls

reexec uint64

number of blocks the tracer is willing to go back

disable_stack bool

disable stack capture

disable_storage bool

disable storage capture

debug bool

print output during capture end

limit int32

maximum length of output, but zero means unlimited

overrides ChainConfig

Chain overrides, can be used to execute a trace using future fork rules

enable_memory bool

enable memory capture

enable_return_data bool

enable return data capture

TransactionLogs

TransactionLogs define the logs generated from a transaction execution

with a given hash. It it used for import/export data as transactions are not

persisted on blockchain state after an upgrade.

FieldTypeLabelDescription
hash string

logs Log repeated

TxResult

TxResult stores results of Tx execution.

FieldTypeLabelDescription
contract_address string

contract_address contains the ethereum address of the created contract (if any). If the state transition is an evm.Call, the contract address will be empty.

bloom bytes

bloom represents the bloom filter bytes

tx_logs TransactionLogs

tx_logs contains the transaction hash and the proto-compatible ethereum logs.

ret bytes

ret defines the bytes from the execution.

reverted bool

reverted flag is set to true when the call has been reverted

gas_used uint64

gas_used notes the amount of gas consumed while execution

ethermint/evm/v1/query.proto

Top

EstimateGasResponse

EstimateGasResponse defines EstimateGas response

FieldTypeLabelDescription
gas uint64

the estimated gas

EthCallRequest

EthCallRequest defines EthCall request

FieldTypeLabelDescription
args bytes

same json format as the json rpc api.

gas_cap uint64

the default gas cap to be used

QueryAccountRequest

QueryAccountRequest is the request type for the Query/Account RPC method.

FieldTypeLabelDescription
address string

address is the ethereum hex address to query the account for.

QueryAccountResponse

QueryAccountResponse is the response type for the Query/Account RPC method.

FieldTypeLabelDescription
balance string

balance is the balance of the EVM denomination.

code_hash string

code hash is the hex-formatted code bytes from the EOA.

nonce uint64

nonce is the account's sequence number.

QueryBalanceRequest

QueryBalanceRequest is the request type for the Query/Balance RPC method.

FieldTypeLabelDescription
address string

address is the ethereum hex address to query the balance for.

QueryBalanceResponse

QueryBalanceResponse is the response type for the Query/Balance RPC method.

FieldTypeLabelDescription
balance string

balance is the balance of the EVM denomination.

QueryBaseFeeRequest

QueryBaseFeeRequest defines the request type for querying the EIP1559 base

fee.

QueryBaseFeeResponse

BaseFeeResponse returns the EIP1559 base fee.

FieldTypeLabelDescription
base_fee string

QueryCodeRequest

QueryCodeRequest is the request type for the Query/Code RPC method.

FieldTypeLabelDescription
address string

address is the ethereum hex address to query the code for.

QueryCodeResponse

QueryCodeResponse is the response type for the Query/Code RPC

method.

FieldTypeLabelDescription
code bytes

code represents the code bytes from an ethereum address.

QueryCosmosAccountRequest

QueryCosmosAccountRequest is the request type for the Query/CosmosAccount RPC

method.

FieldTypeLabelDescription
address string

address is the ethereum hex address to query the account for.

QueryCosmosAccountResponse

QueryCosmosAccountResponse is the response type for the Query/CosmosAccount

RPC method.

FieldTypeLabelDescription
cosmos_address string

cosmos_address is the cosmos address of the account.

sequence uint64

sequence is the account's sequence number.

account_number uint64

account_number is the account numbert

QueryParamsRequest

QueryParamsRequest defines the request type for querying x/evm parameters.

QueryParamsResponse

QueryParamsResponse defines the response type for querying x/evm parameters.

FieldTypeLabelDescription
params Params

params define the evm module parameters.

QueryStorageRequest

QueryStorageRequest is the request type for the Query/Storage RPC method.

FieldTypeLabelDescription
address string

address is the ethereum hex address to query the storage state for.

key string

key defines the key of the storage state

QueryStorageResponse

QueryStorageResponse is the response type for the Query/Storage RPC

method.

FieldTypeLabelDescription
value string

key defines the storage state value hash associated with the given key.

QueryTraceBlockRequest

QueryTraceBlockRequest defines TraceTx request

FieldTypeLabelDescription
txs MsgEthereumTx repeated

txs messages in the block

trace_config TraceConfig

TraceConfig holds extra parameters to trace functions.

block_number int64

block number

block_hash string

block hex hash

block_time google.protobuf.Timestamp

block time

QueryTraceBlockResponse

QueryTraceBlockResponse defines TraceBlock response

FieldTypeLabelDescription
data bytes

QueryTraceTxRequest

QueryTraceTxRequest defines TraceTx request

FieldTypeLabelDescription
msg MsgEthereumTx

msgEthereumTx for the requested transaction

trace_config TraceConfig

TraceConfig holds extra parameters to trace functions.

predecessors MsgEthereumTx repeated

the predecessor transactions included in the same block need to be replayed first to get correct context for tracing.

block_number int64

block number of requested transaction

block_hash string

block hex hash of requested transaction

block_time google.protobuf.Timestamp

block time of requested transaction

QueryTraceTxResponse

QueryTraceTxResponse defines TraceTx response

FieldTypeLabelDescription
data bytes

response serialized in bytes

QueryTxLogsRequest

QueryTxLogsRequest is the request type for the Query/TxLogs RPC method.

FieldTypeLabelDescription
hash string

hash is the ethereum transaction hex hash to query the logs for.

pagination cosmos.base.query.v1beta1.PageRequest

pagination defines an optional pagination for the request.

QueryTxLogsResponse

QueryTxLogs is the response type for the Query/TxLogs RPC method.

FieldTypeLabelDescription
logs Log repeated

logs represents the ethereum logs generated from the given transaction.

pagination cosmos.base.query.v1beta1.PageResponse

pagination defines the pagination in the response.

QueryValidatorAccountRequest

QueryValidatorAccountRequest is the request type for the

Query/ValidatorAccount RPC method.

FieldTypeLabelDescription
cons_address string

cons_address is the validator cons address to query the account for.

QueryValidatorAccountResponse

QueryValidatorAccountResponse is the response type for the

Query/ValidatorAccount RPC method.

FieldTypeLabelDescription
account_address string

account_address is the cosmos address of the account in bech32 format.

sequence uint64

sequence is the account's sequence number.

account_number uint64

account_number is the account number

Query

Query defines the gRPC querier service.

Method NameRequest TypeResponse TypeDescription
Account QueryAccountRequest QueryAccountResponse

Account queries an Ethereum account.

CosmosAccount QueryCosmosAccountRequest QueryCosmosAccountResponse

CosmosAccount queries an Ethereum account's Cosmos Address.

ValidatorAccount QueryValidatorAccountRequest QueryValidatorAccountResponse

ValidatorAccount queries an Ethereum account's from a validator consensus Address.

Balance QueryBalanceRequest QueryBalanceResponse

Balance queries the balance of a the EVM denomination for a single EthAccount.

Storage QueryStorageRequest QueryStorageResponse

Storage queries the balance of all coins for a single account.

Code QueryCodeRequest QueryCodeResponse

Code queries the balance of all coins for a single account.

Params QueryParamsRequest QueryParamsResponse

Params queries the parameters of x/evm module.

EthCall EthCallRequest MsgEthereumTxResponse

EthCall implements the `eth_call` rpc api

EstimateGas EthCallRequest EstimateGasResponse

EstimateGas implements the `eth_estimateGas` rpc api

TraceTx QueryTraceTxRequest QueryTraceTxResponse

TraceTx implements the `debug_traceTransaction` rpc api

TraceBlock QueryTraceBlockRequest QueryTraceBlockResponse

TraceBlock implements the `debug_traceBlockByNumber` and `debug_traceBlockByHash` rpc api

BaseFee QueryBaseFeeRequest QueryBaseFeeResponse

BaseFee queries the base fee of the parent block of the current block, it's similar to feemarket module's method, but also checks london hardfork status.

Methods with HTTP bindings

Method Name Method Pattern Body
Account GET /ethermint/evm/v1/account/{address}
CosmosAccount GET /ethermint/evm/v1/cosmos_account/{address}
ValidatorAccount GET /ethermint/evm/v1/validator_account/{cons_address}
Balance GET /ethermint/evm/v1/balances/{address}
Storage GET /ethermint/evm/v1/storage/{address}/{key}
Code GET /ethermint/evm/v1/codes/{address}
Params GET /ethermint/evm/v1/params
EthCall GET /ethermint/evm/v1/eth_call
EstimateGas GET /ethermint/evm/v1/estimate_gas
TraceTx GET /ethermint/evm/v1/trace_tx
TraceBlock GET /ethermint/evm/v1/trace_block
BaseFee GET /ethermint/evm/v1/base_fee

ethermint/evm/v1/genesis.proto

Top

GenesisAccount

GenesisAccount defines an account to be initialized in the genesis state.

Its main difference between with Geth's GenesisAccount is that it uses a

custom storage type and that it doesn't contain the private key field.

FieldTypeLabelDescription
address string

address defines an ethereum hex formated address of an account

code string

code defines the hex bytes of the account code.

storage State repeated

storage defines the set of state key values for the account.

GenesisState

GenesisState defines the evm module's genesis state.

FieldTypeLabelDescription
accounts GenesisAccount repeated

accounts is an array containing the ethereum genesis accounts.

params Params

params defines all the parameters of the module.

ethermint/evm/v1/tx.proto

Top

AccessListTx

AccessListTx is the data of EIP-2930 access list transactions.

FieldTypeLabelDescription
chain_id string

destination EVM chain ID

nonce uint64

nonce corresponds to the account nonce (transaction sequence).

gas_price string

gas price defines the value for each gas unit

gas uint64

gas defines the gas limit defined for the transaction.

to string

hex formatted address of the recipient

value string

value defines the unsigned integer value of the transaction amount.

data bytes

input defines the data payload bytes of the transaction.

accesses AccessTuple repeated

v bytes

v defines the signature value

r bytes

r defines the signature value

s bytes

s define the signature value

DynamicFeeTx

DynamicFeeTx is the data of EIP-1559 dinamic fee transactions.

FieldTypeLabelDescription
chain_id string

destination EVM chain ID

nonce uint64

nonce corresponds to the account nonce (transaction sequence).

gas_tip_cap string

gas tip cap defines the max value for the gas tip

gas_fee_cap string

gas fee cap defines the max value for the gas fee

gas uint64

gas defines the gas limit defined for the transaction.

to string

hex formatted address of the recipient

value string

value defines the the transaction amount.

data bytes

input defines the data payload bytes of the transaction.

accesses AccessTuple repeated

v bytes

v defines the signature value

r bytes

r defines the signature value

s bytes

s define the signature value

ExtensionOptionsEthereumTx

LegacyTx

LegacyTx is the transaction data of regular Ethereum transactions.

NOTE: All non-protected transactions (i.e non EIP155 signed) will fail if the

AllowUnprotectedTxs parameter is disabled.

FieldTypeLabelDescription
nonce uint64

nonce corresponds to the account nonce (transaction sequence).

gas_price string

gas price defines the value for each gas unit

gas uint64

gas defines the gas limit defined for the transaction.

to string

hex formatted address of the recipient

value string

value defines the unsigned integer value of the transaction amount.

data bytes

input defines the data payload bytes of the transaction.

v bytes

v defines the signature value

r bytes

r defines the signature value

s bytes

s define the signature value

MsgEthereumTx

MsgEthereumTx encapsulates an Ethereum transaction as an SDK message.

FieldTypeLabelDescription
data google.protobuf.Any

inner transaction data caches

size double

encoded storage size of the transaction

hash string

transaction hash in hex format

from string

ethereum signer address in hex format. This address value is checked against the address derived from the signature (V, R, S) using the secp256k1 elliptic curve

MsgEthereumTxResponse

MsgEthereumTxResponse defines the Msg/EthereumTx response type.

FieldTypeLabelDescription
hash string

ethereum transaction hash in hex format. This hash differs from the Tendermint sha256 hash of the transaction bytes. See https://github.com/tendermint/tendermint/issues/6539 for reference

logs Log repeated

logs contains the transaction hash and the proto-compatible ethereum logs.

ret bytes

returned data from evm function (result or data supplied with revert opcode)

vm_error string

vm error is the error returned by vm execution

gas_used uint64

gas consumed by the transaction

Msg

Msg defines the evm Msg service.

Method NameRequest TypeResponse TypeDescription
EthereumTx MsgEthereumTx MsgEthereumTxResponse

EthereumTx defines a method submitting Ethereum transactions.

Methods with HTTP bindings

Method Name Method Pattern Body
EthereumTx POST /ethermint/evm/v1/ethereum_tx

Scalar Value Types

.proto Type Notes Python Type
double float
float float
int32 Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. int
int64 Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. int/long
uint32 Uses variable-length encoding. int/long
uint64 Uses variable-length encoding. int/long
sint32 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. int
sint64 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. int/long
fixed32 Always four bytes. More efficient than uint32 if values are often greater than 2^28. int
fixed64 Always eight bytes. More efficient than uint64 if values are often greater than 2^56. int/long
sfixed32 Always four bytes. int
sfixed64 Always eight bytes. int/long
bool boolean
string A string must always contain UTF-8 encoded or 7-bit ASCII text. str/unicode
bytes May contain any arbitrary sequence of bytes. str