ethermint/evm

Table of Contents

ethermint/evm/v1/events.proto

Top

Copyright Tharsis Labs Ltd.(Evmos)

SPDX-License-Identifier:ENCL-1.0(https://github.com/evmos/evmos/blob/main/LICENSE)

EventBlockBloom

EventBlockBloom defines an Ethereum block bloom filter event

FieldTypeLabelDescription
bloom string

bloom is the bloom filter of the block

EventEthereumTx

EventEthereumTx defines the event for an Ethereum transaction

FieldTypeLabelDescription
amount string

amount

eth_hash string

eth_hash is the Ethereum hash of the transaction

index string

index of the transaction in the block

gas_used string

gas_used is the amount of gas used by the transaction

hash string

hash is the Tendermint hash of the transaction

recipient string

recipient of the transaction

eth_tx_failed string

eth_tx_failed contains a VM error should it occur

EventMessage

EventMessage

FieldTypeLabelDescription
module string

module which emits the event

sender string

sender of the message

tx_type string

tx_type is the type of the message

EventTxLog

EventTxLog defines the event for an Ethereum transaction log

FieldTypeLabelDescription
tx_logs string repeated

tx_logs is an array of transaction logs

ethermint/evm/v1/evm.proto

Top

Copyright Tharsis Labs Ltd.(Evmos)

SPDX-License-Identifier:ENCL-1.0(https://github.com/evmos/evmos/blob/main/LICENSE)

AccessControl

AccessControl defines the permission policy of the EVM

for creating and calling contracts

FieldTypeLabelDescription
create AccessControlType

create defines the permission policy for creating contracts

call AccessControlType

call defines the permission policy for calling contracts

AccessControlType

AccessControlType defines the permission type for policies

FieldTypeLabelDescription
access_type AccessType

access_type defines which type of permission is required for the operation

access_control_list string repeated

access_control_list defines defines different things depending on the AccessType: - ACCESS_TYPE_PERMISSIONLESS: list of addresses that are blocked from performing the operation - ACCESS_TYPE_RESTRICTED: ignored - ACCESS_TYPE_PERMISSIONED: list of addresses that are allowed to perform the operation

AccessTuple

AccessTuple is the element type of an access list.

FieldTypeLabelDescription
address string

address is a hex formatted ethereum address

storage_keys string repeated

storage_keys are 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_block switch (nil no fork, 0 = already homestead)

dao_fork_block string

dao_fork_block corresponds to TheDAO hard-fork switch block (nil no fork)

dao_fork_support bool

dao_fork_support defines whether the nodes supports or opposes the DAO hard-fork

eip150_block string

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

eip150_hash string

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

eip155_block string

eip155_block: EIP155Block HF block

eip158_block string

eip158_block: EIP158 HF block

byzantium_block string

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

constantinople_block string

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

petersburg_block string

petersburg_block: Petersburg switch block (nil same as Constantinople)

istanbul_block string

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

muir_glacier_block string

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

berlin_block string

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

london_block string

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

arrow_glacier_block string

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

gray_glacier_block string

gray_glacier_block: EIP-5133 (bomb delay) switch block (nil = no fork, 0 = already activated)

merge_netsplit_block string

merge_netsplit_block: Virtual fork after The Merge to use as a network splitter

shanghai_block string

shanghai_block switch block (nil = no fork, 0 = already on shanghai)

cancun_block string

cancun_block switch block (nil = no fork, 0 = already on cancun)

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.

NOTE: address, topics and data are consensus fields. The rest of the fields

are derived, i.e. filled in by the nodes, but not secured by consensus.

FieldTypeLabelDescription
address string

address of the contract that generated the event

topics string repeated

topics is a list of topics provided by the contract.

data bytes

data which is supplied by the contract, usually ABI-encoded

block_number uint64

block_number of the block in which the transaction was included

tx_hash string

tx_hash is the transaction hash

tx_index uint64

tx_index of the transaction in the block

block_hash string

block_hash of the block in which the transaction was included

index uint64

index of the log in the block

removed bool

removed 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.

extra_eips string 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_txs defines if replay-protected (i.e non EIP155 signed) transactions can be executed on the state machine.

evm_channels string repeated

evm_channels is the list of channel identifiers from EVM compatible chains

access_control AccessControl

access_control defines the permission policy of the EVM

active_static_precompiles string repeated

active_static_precompiles defines the slice of hex addresses of the precompiled contracts that are active

State

State represents a single Storage key value pair item.

FieldTypeLabelDescription
key string

key is the stored key

value string

value is the stored value for the given key

TraceConfig

TraceConfig holds extra parameters to trace functions.

FieldTypeLabelDescription
tracer string

tracer is a custom javascript tracer

timeout string

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

reexec uint64

reexec defines the number of blocks the tracer is willing to go back

disable_stack bool

disable_stack switches stack capture

disable_storage bool

disable_storage switches storage capture

debug bool

debug can be used to print output during capture end

limit int32

limit defines the maximum length of output, but zero means unlimited

overrides ChainConfig

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

enable_memory bool

enable_memory switches memory capture

enable_return_data bool

enable_return_data switches the capture of return data

tracer_json_config string

tracer_json_config configures the tracer using a JSON string

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

hash of the transaction

logs Log repeated

logs is an array of Logs for the given transaction hash

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

AccessType

AccessType defines the types of permissions for the operations

NameNumberDescription
ACCESS_TYPE_PERMISSIONLESS 0

ACCESS_TYPE_PERMISSIONLESS does not restrict the operation to anyone

ACCESS_TYPE_RESTRICTED 1

ACCESS_TYPE_RESTRICTED restrict the operation to anyone

ACCESS_TYPE_PERMISSIONED 2

ACCESS_TYPE_PERMISSIONED only allows the operation for specific addresses

ethermint/evm/v1/genesis.proto

Top

Copyright Tharsis Labs Ltd.(Evmos)

SPDX-License-Identifier:ENCL-1.0(https://github.com/evmos/evmos/blob/main/LICENSE)

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/query.proto

Top

Copyright Tharsis Labs Ltd.(Evmos)

SPDX-License-Identifier:ENCL-1.0(https://github.com/evmos/evmos/blob/main/LICENSE)

EstimateGasResponse

EstimateGasResponse defines EstimateGas response

FieldTypeLabelDescription
gas uint64

gas returns the estimated gas

ret bytes

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

vm_error string

vm_error is the error returned by vm execution

EthCallRequest

EthCallRequest defines EthCall request

FieldTypeLabelDescription
args bytes

args uses the same json format as the json rpc api.

gas_cap uint64

gas_cap defines the default gas cap to be used

proposer_address bytes

proposer_address of the requested block in hex format

chain_id int64

chain_id is the eip155 chain id parsed from the requested block header

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

QueryBaseFeeResponse returns the EIP1559 base fee.

FieldTypeLabelDescription
base_fee string

base_fee is the EIP1559 base fee

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 number

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

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

QueryTraceBlockRequest

QueryTraceBlockRequest defines TraceTx request

FieldTypeLabelDescription
txs MsgEthereumTx repeated

txs is an array of messages in the block

trace_config TraceConfig

trace_config holds extra parameters to trace functions.

block_number int64

block_number of the traced block

block_hash string

block_hash (hex) of the traced block

block_time google.protobuf.Timestamp

block_time of the traced block

proposer_address bytes

proposer_address is the address of the requested block

chain_id int64

chain_id is the eip155 chain id parsed from the requested block header

block_max_gas int64

block_max_gas of the traced block

QueryTraceBlockResponse

QueryTraceBlockResponse defines TraceBlock response

FieldTypeLabelDescription
data bytes

data is the response serialized in bytes

QueryTraceTxRequest

QueryTraceTxRequest defines TraceTx request

FieldTypeLabelDescription
msg MsgEthereumTx

msg is the MsgEthereumTx for the requested transaction

trace_config TraceConfig

trace_config holds extra parameters to trace functions.

predecessors MsgEthereumTx repeated

predecessors is an array of 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_hash of requested transaction

block_time google.protobuf.Timestamp

block_time of requested transaction

proposer_address bytes

proposer_address is the proposer of the requested block

chain_id int64

chain_id is the eip155 chain id parsed from the requested block header

block_max_gas int64

block_max_gas of the block of the requested transaction

QueryTraceTxResponse

QueryTraceTxResponse defines TraceTx response

FieldTypeLabelDescription
data bytes

data is the 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

QueryTxLogsResponse 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 /evmos/evm/v1/account/{address}
CosmosAccount GET /evmos/evm/v1/cosmos_account/{address}
ValidatorAccount GET /evmos/evm/v1/validator_account/{cons_address}
Balance GET /evmos/evm/v1/balances/{address}
Storage GET /evmos/evm/v1/storage/{address}/{key}
Code GET /evmos/evm/v1/codes/{address}
Params GET /evmos/evm/v1/params
EthCall GET /evmos/evm/v1/eth_call
EstimateGas GET /evmos/evm/v1/estimate_gas
TraceTx GET /evmos/evm/v1/trace_tx
TraceBlock GET /evmos/evm/v1/trace_block
BaseFee GET /evmos/evm/v1/base_fee

ethermint/evm/v1/tx.proto

Top

Copyright Tharsis Labs Ltd.(Evmos)

SPDX-License-Identifier:ENCL-1.0(https://github.com/evmos/evmos/blob/main/LICENSE)

AccessListTx

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

FieldTypeLabelDescription
chain_id string

chain_id of the destination EVM chain

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

to is the recipient address in hex format

value string

value defines the unsigned integer value of the transaction amount.

data bytes

data is the data payload bytes of the transaction.

accesses AccessTuple repeated

accesses is an array of access tuples

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 dynamic fee transactions.

FieldTypeLabelDescription
chain_id string

chain_id of the destination EVM chain

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

to is the hex formatted address of the recipient

value string

value defines the transaction amount.

data bytes

data is the data payload bytes of the transaction.

accesses AccessTuple repeated

accesses is an array of access tuples

v bytes

v defines the signature value

r bytes

r defines the signature value

s bytes

s define the signature value

ExtensionOptionsEthereumTx

ExtensionOptionsEthereumTx is an extension option for ethereum transactions

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

to is the hex formatted address of the recipient

value string

value defines the unsigned integer value of the transaction amount.

data bytes

data is 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

data is inner transaction data of the Ethereum transaction

size double

size is the encoded storage size of the transaction (DEPRECATED)

hash string

hash of the transaction in hex format

from string

from is the 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

hash of the ethereum transaction 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

ret is the 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_used specifies how much gas was consumed by the transaction

MsgUpdateParams

MsgUpdateParams defines a Msg for updating the x/evm module parameters.

FieldTypeLabelDescription
authority string

authority is the address of the governance account.

params Params

params defines the x/evm parameters to update. NOTE: All parameters must be supplied.

MsgUpdateParamsResponse

MsgUpdateParamsResponse defines the response structure for executing a

MsgUpdateParams message.

Msg

Msg defines the evm Msg service.

Method NameRequest TypeResponse TypeDescription
EthereumTx MsgEthereumTx MsgEthereumTxResponse

EthereumTx defines a method submitting Ethereum transactions.

UpdateParams MsgUpdateParams MsgUpdateParamsResponse

UpdateParams defined a governance operation for updating the x/evm module parameters. The authority is hard-coded to the Cosmos SDK x/gov module account

Methods with HTTP bindings

Method Name Method Pattern Body
EthereumTx POST /evmos/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