# VM

## GET /cosmos/evm/vm/v1/params

> Params queries the parameters of x/vm module.

```json
{"openapi":"3.1.1","info":{"title":"Kiichain - HTTP API Console","version":"v1"},"servers":[{"url":"https://lcd.uno.sentry.testnet.v3.kiivalidator.com"}],"paths":{"/cosmos/evm/vm/v1/params":{"get":{"summary":"Params queries the parameters of x/vm module.","operationId":"VmParams","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"type":"object","properties":{"params":{"description":"params define the evm module parameters.","type":"object","properties":{"evm_denom":{"type":"string","description":"evm_denom represents the token denomination used to run the EVM state\ntransitions."},"extra_eips":{"type":"array","items":{"type":"string"},"title":"extra_eips defines the additional EIPs for the vm.Config"},"chain_config":{"title":"chain_config defines the EVM chain configuration parameters","type":"object","properties":{"homestead_block":{"type":"string","title":"homestead_block switch (nil no fork, 0 = already homestead)"},"dao_fork_block":{"type":"string","title":"dao_fork_block corresponds to TheDAO hard-fork switch block (nil no fork)"},"dao_fork_support":{"type":"boolean","title":"dao_fork_support defines whether the nodes supports or opposes the DAO\nhard-fork"},"eip150_block":{"type":"string","title":"eip150_block: EIP150 implements the Gas price changes\n(https://github.com/ethereum/EIPs/issues/150) EIP150 HF block (nil no fork)"},"eip150_hash":{"type":"string","title":"eip150_hash: EIP150 HF hash (needed for header only clients as only gas\npricing changed)"},"eip155_block":{"type":"string","title":"eip155_block: EIP155Block HF block"},"eip158_block":{"type":"string","title":"eip158_block: EIP158 HF block"},"byzantium_block":{"type":"string","title":"byzantium_block: Byzantium switch block (nil no fork, 0 = already on\nbyzantium)"},"constantinople_block":{"type":"string","title":"constantinople_block: Constantinople switch block (nil no fork, 0 = already\nactivated)"},"petersburg_block":{"type":"string","title":"petersburg_block: Petersburg switch block (nil same as Constantinople)"},"istanbul_block":{"type":"string","title":"istanbul_block: Istanbul switch block (nil no fork, 0 = already on\nistanbul)"},"muir_glacier_block":{"type":"string","title":"muir_glacier_block: Eip-2384 (bomb delay) switch block (nil no fork, 0 =\nalready activated)"},"berlin_block":{"type":"string","title":"berlin_block: Berlin switch block (nil = no fork, 0 = already on berlin)"},"london_block":{"type":"string","title":"london_block: London switch block (nil = no fork, 0 = already on london)"},"arrow_glacier_block":{"type":"string","title":"arrow_glacier_block: Eip-4345 (bomb delay) switch block (nil = no fork, 0 =\nalready activated)"},"gray_glacier_block":{"type":"string","title":"gray_glacier_block: EIP-5133 (bomb delay) switch block (nil = no fork, 0 =\nalready activated)"},"merge_netsplit_block":{"type":"string","title":"merge_netsplit_block: Virtual fork after The Merge to use as a network\nsplitter"},"shanghai_block":{"type":"string","title":"shanghai_block switch block (nil = no fork, 0 = already on shanghai)"},"cancun_block":{"type":"string","title":"cancun_block switch block (nil = no fork, 0 = already on cancun)"},"chain_id":{"type":"string","format":"uint64","title":"chain_id is the id of the chain (EIP-155)"},"denom":{"type":"string","title":"denom is the denomination used on the EVM"},"decimals":{"type":"string","format":"uint64","title":"decimals is the real decimal precision of the denomination used on the EVM"}},"description":"ChainConfig defines the Ethereum ChainConfig parameters using *sdk.Int values\ninstead of *big.Int."},"allow_unprotected_txs":{"type":"boolean","description":"allow_unprotected_txs defines if replay-protected (i.e non EIP155\nsigned) transactions can be executed on the state machine."},"evm_channels":{"type":"array","items":{"type":"string"},"title":"evm_channels is the list of channel identifiers from EVM compatible chains"},"access_control":{"title":"access_control defines the permission policy of the EVM","type":"object","properties":{"create":{"title":"create defines the permission policy for creating contracts","type":"object","properties":{"access_type":{"title":"access_type defines which type of permission is required for the operation","type":"string","enum":["ACCESS_TYPE_PERMISSIONLESS","ACCESS_TYPE_RESTRICTED","ACCESS_TYPE_PERMISSIONED"],"default":"ACCESS_TYPE_PERMISSIONLESS","description":"- ACCESS_TYPE_PERMISSIONLESS: ACCESS_TYPE_PERMISSIONLESS does not restrict the operation to anyone\n - ACCESS_TYPE_RESTRICTED: ACCESS_TYPE_RESTRICTED restrict the operation to anyone\n - ACCESS_TYPE_PERMISSIONED: ACCESS_TYPE_PERMISSIONED only allows the operation for specific addresses"},"access_control_list":{"type":"array","items":{"type":"string"},"title":"access_control_list defines defines different things depending on the\nAccessType:\n- ACCESS_TYPE_PERMISSIONLESS: list of addresses that are blocked from\nperforming the operation\n- ACCESS_TYPE_RESTRICTED: ignored\n- ACCESS_TYPE_PERMISSIONED: list of addresses that are allowed to perform\nthe operation"}}},"call":{"title":"call defines the permission policy for calling contracts","type":"object","properties":{"access_type":{"title":"access_type defines which type of permission is required for the operation","type":"string","enum":["ACCESS_TYPE_PERMISSIONLESS","ACCESS_TYPE_RESTRICTED","ACCESS_TYPE_PERMISSIONED"],"default":"ACCESS_TYPE_PERMISSIONLESS","description":"- ACCESS_TYPE_PERMISSIONLESS: ACCESS_TYPE_PERMISSIONLESS does not restrict the operation to anyone\n - ACCESS_TYPE_RESTRICTED: ACCESS_TYPE_RESTRICTED restrict the operation to anyone\n - ACCESS_TYPE_PERMISSIONED: ACCESS_TYPE_PERMISSIONED only allows the operation for specific addresses"},"access_control_list":{"type":"array","items":{"type":"string"},"title":"access_control_list defines defines different things depending on the\nAccessType:\n- ACCESS_TYPE_PERMISSIONLESS: list of addresses that are blocked from\nperforming the operation\n- ACCESS_TYPE_RESTRICTED: ignored\n- ACCESS_TYPE_PERMISSIONED: list of addresses that are allowed to perform\nthe operation"}}}}},"active_static_precompiles":{"type":"array","items":{"type":"string"},"title":"active_static_precompiles defines the slice of hex addresses of the\nprecompiled contracts that are active"}},"title":"Params defines the EVM module parameters"}},"description":"QueryParamsResponse defines the response type for querying x/vm parameters."}}}},"default":{"description":"An unexpected error response.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"details":{"type":"array","items":{"type":"object","properties":{"type_url":{"type":"string","description":"A URL/resource name that uniquely identifies the type of the serialized\nprotocol buffer message. This string must contain at least\none \"/\" character. The last segment of the URL's path must represent\nthe fully qualified name of the type (as in\n`path/google.protobuf.Duration`). The name should be in a canonical form\n(e.g., leading \".\" is not accepted).\n\nIn practice, teams usually precompile into the binary all types that they\nexpect it to use in the context of Any. However, for URLs which use the\nscheme `http`, `https`, or no scheme, one can optionally set up a type\nserver that maps type URLs to message definitions as follows:\n\n* If no scheme is provided, `https` is assumed.\n* An HTTP GET on the URL must yield a [google.protobuf.Type][]\n  value in binary format, or produce an error.\n* Applications are allowed to cache lookup results based on the\n  URL, or have them precompiled into a binary to avoid any\n  lookup. Therefore, binary compatibility needs to be preserved\n  on changes to types. (Use versioned type names to manage\n  breaking changes.)\n\nNote: this functionality is not currently available in the official\nprotobuf release, and it is not used for type URLs beginning with\ntype.googleapis.com.\n\nSchemes other than `http`, `https` (or the empty scheme) might be\nused with implementation specific semantics."},"value":{"type":"string","format":"byte","description":"Must be a valid serialized protocol buffer of the above specified type."}},"description":"`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nProtobuf library provides support to pack/unpack Any values in the form\nof utility functions or additional generated methods of the Any type.\n\nExample 1: Pack and unpack a message in C++.\n\n    Foo foo = ...;\n    Any any;\n    any.PackFrom(foo);\n    ...\n    if (any.UnpackTo(&foo)) {\n      ...\n    }\n\nExample 2: Pack and unpack a message in Java.\n\n    Foo foo = ...;\n    Any any = Any.pack(foo);\n    ...\n    if (any.is(Foo.class)) {\n      foo = any.unpack(Foo.class);\n    }\n    // or ...\n    if (any.isSameTypeAs(Foo.getDefaultInstance())) {\n      foo = any.unpack(Foo.getDefaultInstance());\n    }\n\nExample 3: Pack and unpack a message in Python.\n\n    foo = Foo(...)\n    any = Any()\n    any.Pack(foo)\n    ...\n    if any.Is(Foo.DESCRIPTOR):\n      any.Unpack(foo)\n      ...\n\nExample 4: Pack and unpack a message in Go\n\n     foo := &pb.Foo{...}\n     any, err := anypb.New(foo)\n     if err != nil {\n       ...\n     }\n     ...\n     foo := &pb.Foo{}\n     if err := any.UnmarshalTo(foo); err != nil {\n       ...\n     }\n\nThe pack methods provided by protobuf library will by default use\n'type.googleapis.com/full.type.name' as the type URL and the unpack\nmethods only use the fully qualified type name after the last '/'\nin the type URL, for example \"foo.bar.com/x/y.z\" will yield type\nname \"y.z\".\n\nJSON\n\nThe JSON representation of an `Any` value uses the regular\nrepresentation of the deserialized, embedded message, with an\nadditional field `@type` which contains the type URL. Example:\n\n    package google.profile;\n    message Person {\n      string first_name = 1;\n      string last_name = 2;\n    }\n\n    {\n      \"@type\": \"type.googleapis.com/google.profile.Person\",\n      \"firstName\": <string>,\n      \"lastName\": <string>\n    }\n\nIf the embedded message type is well-known and has a custom JSON\nrepresentation, that representation will be embedded adding a field\n`value` which holds the custom JSON in addition to the `@type`\nfield. Example (for message [google.protobuf.Duration][]):\n\n    {\n      \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n      \"value\": \"1.212s\"\n    }"}}}}}}}},"tags":["Query"]}}}}
```

## GET /cosmos/evm/vm/v1/account/{address}

> Account queries an Ethereum account.

```json
{"openapi":"3.1.1","info":{"title":"Kiichain - HTTP API Console","version":"v1"},"servers":[{"url":"https://lcd.uno.sentry.testnet.v3.kiivalidator.com"}],"paths":{"/cosmos/evm/vm/v1/account/{address}":{"get":{"summary":"Account queries an Ethereum account.","operationId":"VmAccount","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"type":"object","properties":{"balance":{"type":"string","description":"balance is the balance of the EVM denomination."},"code_hash":{"type":"string","description":"code_hash is the hex-formatted code bytes from the EOA."},"nonce":{"type":"string","format":"uint64","description":"nonce is the account's sequence number."}},"description":"QueryAccountResponse is the response type for the Query/Account RPC method."}}}},"default":{"description":"An unexpected error response.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"details":{"type":"array","items":{"type":"object","properties":{"type_url":{"type":"string","description":"A URL/resource name that uniquely identifies the type of the serialized\nprotocol buffer message. This string must contain at least\none \"/\" character. The last segment of the URL's path must represent\nthe fully qualified name of the type (as in\n`path/google.protobuf.Duration`). The name should be in a canonical form\n(e.g., leading \".\" is not accepted).\n\nIn practice, teams usually precompile into the binary all types that they\nexpect it to use in the context of Any. However, for URLs which use the\nscheme `http`, `https`, or no scheme, one can optionally set up a type\nserver that maps type URLs to message definitions as follows:\n\n* If no scheme is provided, `https` is assumed.\n* An HTTP GET on the URL must yield a [google.protobuf.Type][]\n  value in binary format, or produce an error.\n* Applications are allowed to cache lookup results based on the\n  URL, or have them precompiled into a binary to avoid any\n  lookup. Therefore, binary compatibility needs to be preserved\n  on changes to types. (Use versioned type names to manage\n  breaking changes.)\n\nNote: this functionality is not currently available in the official\nprotobuf release, and it is not used for type URLs beginning with\ntype.googleapis.com.\n\nSchemes other than `http`, `https` (or the empty scheme) might be\nused with implementation specific semantics."},"value":{"type":"string","format":"byte","description":"Must be a valid serialized protocol buffer of the above specified type."}},"description":"`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nProtobuf library provides support to pack/unpack Any values in the form\nof utility functions or additional generated methods of the Any type.\n\nExample 1: Pack and unpack a message in C++.\n\n    Foo foo = ...;\n    Any any;\n    any.PackFrom(foo);\n    ...\n    if (any.UnpackTo(&foo)) {\n      ...\n    }\n\nExample 2: Pack and unpack a message in Java.\n\n    Foo foo = ...;\n    Any any = Any.pack(foo);\n    ...\n    if (any.is(Foo.class)) {\n      foo = any.unpack(Foo.class);\n    }\n    // or ...\n    if (any.isSameTypeAs(Foo.getDefaultInstance())) {\n      foo = any.unpack(Foo.getDefaultInstance());\n    }\n\nExample 3: Pack and unpack a message in Python.\n\n    foo = Foo(...)\n    any = Any()\n    any.Pack(foo)\n    ...\n    if any.Is(Foo.DESCRIPTOR):\n      any.Unpack(foo)\n      ...\n\nExample 4: Pack and unpack a message in Go\n\n     foo := &pb.Foo{...}\n     any, err := anypb.New(foo)\n     if err != nil {\n       ...\n     }\n     ...\n     foo := &pb.Foo{}\n     if err := any.UnmarshalTo(foo); err != nil {\n       ...\n     }\n\nThe pack methods provided by protobuf library will by default use\n'type.googleapis.com/full.type.name' as the type URL and the unpack\nmethods only use the fully qualified type name after the last '/'\nin the type URL, for example \"foo.bar.com/x/y.z\" will yield type\nname \"y.z\".\n\nJSON\n\nThe JSON representation of an `Any` value uses the regular\nrepresentation of the deserialized, embedded message, with an\nadditional field `@type` which contains the type URL. Example:\n\n    package google.profile;\n    message Person {\n      string first_name = 1;\n      string last_name = 2;\n    }\n\n    {\n      \"@type\": \"type.googleapis.com/google.profile.Person\",\n      \"firstName\": <string>,\n      \"lastName\": <string>\n    }\n\nIf the embedded message type is well-known and has a custom JSON\nrepresentation, that representation will be embedded adding a field\n`value` which holds the custom JSON in addition to the `@type`\nfield. Example (for message [google.protobuf.Duration][]):\n\n    {\n      \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n      \"value\": \"1.212s\"\n    }"}}}}}}}},"parameters":[{"name":"address","description":"address is the ethereum hex address to query the account for.","in":"path","required":true,"type":"string"}],"tags":["Query"]}}}}
```

## GET /cosmos/evm/vm/v1/balances/{address}

> Balance queries the balance of a the EVM denomination for a single\
> account.

```json
{"openapi":"3.1.1","info":{"title":"Kiichain - HTTP API Console","version":"v1"},"servers":[{"url":"https://lcd.uno.sentry.testnet.v3.kiivalidator.com"}],"paths":{"/cosmos/evm/vm/v1/balances/{address}":{"get":{"summary":"Balance queries the balance of a the EVM denomination for a single\naccount.","operationId":"VmBalance","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"type":"object","properties":{"balance":{"type":"string","description":"balance is the balance of the EVM denomination."}},"description":"QueryBalanceResponse is the response type for the Query/Balance RPC method."}}}},"default":{"description":"An unexpected error response.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"details":{"type":"array","items":{"type":"object","properties":{"type_url":{"type":"string","description":"A URL/resource name that uniquely identifies the type of the serialized\nprotocol buffer message. This string must contain at least\none \"/\" character. The last segment of the URL's path must represent\nthe fully qualified name of the type (as in\n`path/google.protobuf.Duration`). The name should be in a canonical form\n(e.g., leading \".\" is not accepted).\n\nIn practice, teams usually precompile into the binary all types that they\nexpect it to use in the context of Any. However, for URLs which use the\nscheme `http`, `https`, or no scheme, one can optionally set up a type\nserver that maps type URLs to message definitions as follows:\n\n* If no scheme is provided, `https` is assumed.\n* An HTTP GET on the URL must yield a [google.protobuf.Type][]\n  value in binary format, or produce an error.\n* Applications are allowed to cache lookup results based on the\n  URL, or have them precompiled into a binary to avoid any\n  lookup. Therefore, binary compatibility needs to be preserved\n  on changes to types. (Use versioned type names to manage\n  breaking changes.)\n\nNote: this functionality is not currently available in the official\nprotobuf release, and it is not used for type URLs beginning with\ntype.googleapis.com.\n\nSchemes other than `http`, `https` (or the empty scheme) might be\nused with implementation specific semantics."},"value":{"type":"string","format":"byte","description":"Must be a valid serialized protocol buffer of the above specified type."}},"description":"`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nProtobuf library provides support to pack/unpack Any values in the form\nof utility functions or additional generated methods of the Any type.\n\nExample 1: Pack and unpack a message in C++.\n\n    Foo foo = ...;\n    Any any;\n    any.PackFrom(foo);\n    ...\n    if (any.UnpackTo(&foo)) {\n      ...\n    }\n\nExample 2: Pack and unpack a message in Java.\n\n    Foo foo = ...;\n    Any any = Any.pack(foo);\n    ...\n    if (any.is(Foo.class)) {\n      foo = any.unpack(Foo.class);\n    }\n    // or ...\n    if (any.isSameTypeAs(Foo.getDefaultInstance())) {\n      foo = any.unpack(Foo.getDefaultInstance());\n    }\n\nExample 3: Pack and unpack a message in Python.\n\n    foo = Foo(...)\n    any = Any()\n    any.Pack(foo)\n    ...\n    if any.Is(Foo.DESCRIPTOR):\n      any.Unpack(foo)\n      ...\n\nExample 4: Pack and unpack a message in Go\n\n     foo := &pb.Foo{...}\n     any, err := anypb.New(foo)\n     if err != nil {\n       ...\n     }\n     ...\n     foo := &pb.Foo{}\n     if err := any.UnmarshalTo(foo); err != nil {\n       ...\n     }\n\nThe pack methods provided by protobuf library will by default use\n'type.googleapis.com/full.type.name' as the type URL and the unpack\nmethods only use the fully qualified type name after the last '/'\nin the type URL, for example \"foo.bar.com/x/y.z\" will yield type\nname \"y.z\".\n\nJSON\n\nThe JSON representation of an `Any` value uses the regular\nrepresentation of the deserialized, embedded message, with an\nadditional field `@type` which contains the type URL. Example:\n\n    package google.profile;\n    message Person {\n      string first_name = 1;\n      string last_name = 2;\n    }\n\n    {\n      \"@type\": \"type.googleapis.com/google.profile.Person\",\n      \"firstName\": <string>,\n      \"lastName\": <string>\n    }\n\nIf the embedded message type is well-known and has a custom JSON\nrepresentation, that representation will be embedded adding a field\n`value` which holds the custom JSON in addition to the `@type`\nfield. Example (for message [google.protobuf.Duration][]):\n\n    {\n      \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n      \"value\": \"1.212s\"\n    }"}}}}}}}},"parameters":[{"name":"address","description":"address is the ethereum hex address to query the balance for.","in":"path","required":true,"type":"string"}],"tags":["Query"]}}}}
```

## GET /cosmos/evm/vm/v1/base\_fee

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

```json
{"openapi":"3.1.1","info":{"title":"Kiichain - HTTP API Console","version":"v1"},"servers":[{"url":"https://lcd.uno.sentry.testnet.v3.kiivalidator.com"}],"paths":{"/cosmos/evm/vm/v1/base_fee":{"get":{"summary":"BaseFee queries the base fee of the parent block of the current block,\nit's similar to feemarket module's method, but also checks london hardfork\nstatus.","operationId":"VmBaseFee","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"type":"object","properties":{"base_fee":{"type":"string","title":"base_fee is the EIP1559 base fee"}},"description":"QueryBaseFeeResponse returns the EIP1559 base fee."}}}},"default":{"description":"An unexpected error response.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"details":{"type":"array","items":{"type":"object","properties":{"type_url":{"type":"string","description":"A URL/resource name that uniquely identifies the type of the serialized\nprotocol buffer message. This string must contain at least\none \"/\" character. The last segment of the URL's path must represent\nthe fully qualified name of the type (as in\n`path/google.protobuf.Duration`). The name should be in a canonical form\n(e.g., leading \".\" is not accepted).\n\nIn practice, teams usually precompile into the binary all types that they\nexpect it to use in the context of Any. However, for URLs which use the\nscheme `http`, `https`, or no scheme, one can optionally set up a type\nserver that maps type URLs to message definitions as follows:\n\n* If no scheme is provided, `https` is assumed.\n* An HTTP GET on the URL must yield a [google.protobuf.Type][]\n  value in binary format, or produce an error.\n* Applications are allowed to cache lookup results based on the\n  URL, or have them precompiled into a binary to avoid any\n  lookup. Therefore, binary compatibility needs to be preserved\n  on changes to types. (Use versioned type names to manage\n  breaking changes.)\n\nNote: this functionality is not currently available in the official\nprotobuf release, and it is not used for type URLs beginning with\ntype.googleapis.com.\n\nSchemes other than `http`, `https` (or the empty scheme) might be\nused with implementation specific semantics."},"value":{"type":"string","format":"byte","description":"Must be a valid serialized protocol buffer of the above specified type."}},"description":"`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nProtobuf library provides support to pack/unpack Any values in the form\nof utility functions or additional generated methods of the Any type.\n\nExample 1: Pack and unpack a message in C++.\n\n    Foo foo = ...;\n    Any any;\n    any.PackFrom(foo);\n    ...\n    if (any.UnpackTo(&foo)) {\n      ...\n    }\n\nExample 2: Pack and unpack a message in Java.\n\n    Foo foo = ...;\n    Any any = Any.pack(foo);\n    ...\n    if (any.is(Foo.class)) {\n      foo = any.unpack(Foo.class);\n    }\n    // or ...\n    if (any.isSameTypeAs(Foo.getDefaultInstance())) {\n      foo = any.unpack(Foo.getDefaultInstance());\n    }\n\nExample 3: Pack and unpack a message in Python.\n\n    foo = Foo(...)\n    any = Any()\n    any.Pack(foo)\n    ...\n    if any.Is(Foo.DESCRIPTOR):\n      any.Unpack(foo)\n      ...\n\nExample 4: Pack and unpack a message in Go\n\n     foo := &pb.Foo{...}\n     any, err := anypb.New(foo)\n     if err != nil {\n       ...\n     }\n     ...\n     foo := &pb.Foo{}\n     if err := any.UnmarshalTo(foo); err != nil {\n       ...\n     }\n\nThe pack methods provided by protobuf library will by default use\n'type.googleapis.com/full.type.name' as the type URL and the unpack\nmethods only use the fully qualified type name after the last '/'\nin the type URL, for example \"foo.bar.com/x/y.z\" will yield type\nname \"y.z\".\n\nJSON\n\nThe JSON representation of an `Any` value uses the regular\nrepresentation of the deserialized, embedded message, with an\nadditional field `@type` which contains the type URL. Example:\n\n    package google.profile;\n    message Person {\n      string first_name = 1;\n      string last_name = 2;\n    }\n\n    {\n      \"@type\": \"type.googleapis.com/google.profile.Person\",\n      \"firstName\": <string>,\n      \"lastName\": <string>\n    }\n\nIf the embedded message type is well-known and has a custom JSON\nrepresentation, that representation will be embedded adding a field\n`value` which holds the custom JSON in addition to the `@type`\nfield. Example (for message [google.protobuf.Duration][]):\n\n    {\n      \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n      \"value\": \"1.212s\"\n    }"}}}}}}}},"tags":["Query"]}}}}
```

## GET /cosmos/evm/vm/v1/codes/{address}

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

```json
{"openapi":"3.1.1","info":{"title":"Kiichain - HTTP API Console","version":"v1"},"servers":[{"url":"https://lcd.uno.sentry.testnet.v3.kiivalidator.com"}],"paths":{"/cosmos/evm/vm/v1/codes/{address}":{"get":{"summary":"Code queries the balance of all coins for a single account.","operationId":"VmCode","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","format":"byte","description":"code represents the code bytes from an ethereum address."}},"description":"QueryCodeResponse is the response type for the Query/Code RPC\nmethod."}}}},"default":{"description":"An unexpected error response.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"details":{"type":"array","items":{"type":"object","properties":{"type_url":{"type":"string","description":"A URL/resource name that uniquely identifies the type of the serialized\nprotocol buffer message. This string must contain at least\none \"/\" character. The last segment of the URL's path must represent\nthe fully qualified name of the type (as in\n`path/google.protobuf.Duration`). The name should be in a canonical form\n(e.g., leading \".\" is not accepted).\n\nIn practice, teams usually precompile into the binary all types that they\nexpect it to use in the context of Any. However, for URLs which use the\nscheme `http`, `https`, or no scheme, one can optionally set up a type\nserver that maps type URLs to message definitions as follows:\n\n* If no scheme is provided, `https` is assumed.\n* An HTTP GET on the URL must yield a [google.protobuf.Type][]\n  value in binary format, or produce an error.\n* Applications are allowed to cache lookup results based on the\n  URL, or have them precompiled into a binary to avoid any\n  lookup. Therefore, binary compatibility needs to be preserved\n  on changes to types. (Use versioned type names to manage\n  breaking changes.)\n\nNote: this functionality is not currently available in the official\nprotobuf release, and it is not used for type URLs beginning with\ntype.googleapis.com.\n\nSchemes other than `http`, `https` (or the empty scheme) might be\nused with implementation specific semantics."},"value":{"type":"string","format":"byte","description":"Must be a valid serialized protocol buffer of the above specified type."}},"description":"`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nProtobuf library provides support to pack/unpack Any values in the form\nof utility functions or additional generated methods of the Any type.\n\nExample 1: Pack and unpack a message in C++.\n\n    Foo foo = ...;\n    Any any;\n    any.PackFrom(foo);\n    ...\n    if (any.UnpackTo(&foo)) {\n      ...\n    }\n\nExample 2: Pack and unpack a message in Java.\n\n    Foo foo = ...;\n    Any any = Any.pack(foo);\n    ...\n    if (any.is(Foo.class)) {\n      foo = any.unpack(Foo.class);\n    }\n    // or ...\n    if (any.isSameTypeAs(Foo.getDefaultInstance())) {\n      foo = any.unpack(Foo.getDefaultInstance());\n    }\n\nExample 3: Pack and unpack a message in Python.\n\n    foo = Foo(...)\n    any = Any()\n    any.Pack(foo)\n    ...\n    if any.Is(Foo.DESCRIPTOR):\n      any.Unpack(foo)\n      ...\n\nExample 4: Pack and unpack a message in Go\n\n     foo := &pb.Foo{...}\n     any, err := anypb.New(foo)\n     if err != nil {\n       ...\n     }\n     ...\n     foo := &pb.Foo{}\n     if err := any.UnmarshalTo(foo); err != nil {\n       ...\n     }\n\nThe pack methods provided by protobuf library will by default use\n'type.googleapis.com/full.type.name' as the type URL and the unpack\nmethods only use the fully qualified type name after the last '/'\nin the type URL, for example \"foo.bar.com/x/y.z\" will yield type\nname \"y.z\".\n\nJSON\n\nThe JSON representation of an `Any` value uses the regular\nrepresentation of the deserialized, embedded message, with an\nadditional field `@type` which contains the type URL. Example:\n\n    package google.profile;\n    message Person {\n      string first_name = 1;\n      string last_name = 2;\n    }\n\n    {\n      \"@type\": \"type.googleapis.com/google.profile.Person\",\n      \"firstName\": <string>,\n      \"lastName\": <string>\n    }\n\nIf the embedded message type is well-known and has a custom JSON\nrepresentation, that representation will be embedded adding a field\n`value` which holds the custom JSON in addition to the `@type`\nfield. Example (for message [google.protobuf.Duration][]):\n\n    {\n      \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n      \"value\": \"1.212s\"\n    }"}}}}}}}},"parameters":[{"name":"address","description":"address is the ethereum hex address to query the code for.","in":"path","required":true,"type":"string"}],"tags":["Query"]}}}}
```

## GET /cosmos/evm/vm/v1/config

> Config queries the EVM configuration

```json
{"openapi":"3.1.1","info":{"title":"Kiichain - HTTP API Console","version":"v1"},"servers":[{"url":"https://lcd.uno.sentry.testnet.v3.kiivalidator.com"}],"paths":{"/cosmos/evm/vm/v1/config":{"get":{"summary":"Config queries the EVM configuration","operationId":"VmConfig","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"type":"object","properties":{"config":{"title":"config is the evm configuration","type":"object","properties":{"homestead_block":{"type":"string","title":"homestead_block switch (nil no fork, 0 = already homestead)"},"dao_fork_block":{"type":"string","title":"dao_fork_block corresponds to TheDAO hard-fork switch block (nil no fork)"},"dao_fork_support":{"type":"boolean","title":"dao_fork_support defines whether the nodes supports or opposes the DAO\nhard-fork"},"eip150_block":{"type":"string","title":"eip150_block: EIP150 implements the Gas price changes\n(https://github.com/ethereum/EIPs/issues/150) EIP150 HF block (nil no fork)"},"eip150_hash":{"type":"string","title":"eip150_hash: EIP150 HF hash (needed for header only clients as only gas\npricing changed)"},"eip155_block":{"type":"string","title":"eip155_block: EIP155Block HF block"},"eip158_block":{"type":"string","title":"eip158_block: EIP158 HF block"},"byzantium_block":{"type":"string","title":"byzantium_block: Byzantium switch block (nil no fork, 0 = already on\nbyzantium)"},"constantinople_block":{"type":"string","title":"constantinople_block: Constantinople switch block (nil no fork, 0 = already\nactivated)"},"petersburg_block":{"type":"string","title":"petersburg_block: Petersburg switch block (nil same as Constantinople)"},"istanbul_block":{"type":"string","title":"istanbul_block: Istanbul switch block (nil no fork, 0 = already on\nistanbul)"},"muir_glacier_block":{"type":"string","title":"muir_glacier_block: Eip-2384 (bomb delay) switch block (nil no fork, 0 =\nalready activated)"},"berlin_block":{"type":"string","title":"berlin_block: Berlin switch block (nil = no fork, 0 = already on berlin)"},"london_block":{"type":"string","title":"london_block: London switch block (nil = no fork, 0 = already on london)"},"arrow_glacier_block":{"type":"string","title":"arrow_glacier_block: Eip-4345 (bomb delay) switch block (nil = no fork, 0 =\nalready activated)"},"gray_glacier_block":{"type":"string","title":"gray_glacier_block: EIP-5133 (bomb delay) switch block (nil = no fork, 0 =\nalready activated)"},"merge_netsplit_block":{"type":"string","title":"merge_netsplit_block: Virtual fork after The Merge to use as a network\nsplitter"},"shanghai_block":{"type":"string","title":"shanghai_block switch block (nil = no fork, 0 = already on shanghai)"},"cancun_block":{"type":"string","title":"cancun_block switch block (nil = no fork, 0 = already on cancun)"},"chain_id":{"type":"string","format":"uint64","title":"chain_id is the id of the chain (EIP-155)"},"denom":{"type":"string","title":"denom is the denomination used on the EVM"},"decimals":{"type":"string","format":"uint64","title":"decimals is the real decimal precision of the denomination used on the EVM"}},"description":"ChainConfig defines the Ethereum ChainConfig parameters using *sdk.Int values\ninstead of *big.Int."}},"description":"QueryConfigResponse returns the EVM config."}}}},"default":{"description":"An unexpected error response.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"details":{"type":"array","items":{"type":"object","properties":{"type_url":{"type":"string","description":"A URL/resource name that uniquely identifies the type of the serialized\nprotocol buffer message. This string must contain at least\none \"/\" character. The last segment of the URL's path must represent\nthe fully qualified name of the type (as in\n`path/google.protobuf.Duration`). The name should be in a canonical form\n(e.g., leading \".\" is not accepted).\n\nIn practice, teams usually precompile into the binary all types that they\nexpect it to use in the context of Any. However, for URLs which use the\nscheme `http`, `https`, or no scheme, one can optionally set up a type\nserver that maps type URLs to message definitions as follows:\n\n* If no scheme is provided, `https` is assumed.\n* An HTTP GET on the URL must yield a [google.protobuf.Type][]\n  value in binary format, or produce an error.\n* Applications are allowed to cache lookup results based on the\n  URL, or have them precompiled into a binary to avoid any\n  lookup. Therefore, binary compatibility needs to be preserved\n  on changes to types. (Use versioned type names to manage\n  breaking changes.)\n\nNote: this functionality is not currently available in the official\nprotobuf release, and it is not used for type URLs beginning with\ntype.googleapis.com.\n\nSchemes other than `http`, `https` (or the empty scheme) might be\nused with implementation specific semantics."},"value":{"type":"string","format":"byte","description":"Must be a valid serialized protocol buffer of the above specified type."}},"description":"`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nProtobuf library provides support to pack/unpack Any values in the form\nof utility functions or additional generated methods of the Any type.\n\nExample 1: Pack and unpack a message in C++.\n\n    Foo foo = ...;\n    Any any;\n    any.PackFrom(foo);\n    ...\n    if (any.UnpackTo(&foo)) {\n      ...\n    }\n\nExample 2: Pack and unpack a message in Java.\n\n    Foo foo = ...;\n    Any any = Any.pack(foo);\n    ...\n    if (any.is(Foo.class)) {\n      foo = any.unpack(Foo.class);\n    }\n    // or ...\n    if (any.isSameTypeAs(Foo.getDefaultInstance())) {\n      foo = any.unpack(Foo.getDefaultInstance());\n    }\n\nExample 3: Pack and unpack a message in Python.\n\n    foo = Foo(...)\n    any = Any()\n    any.Pack(foo)\n    ...\n    if any.Is(Foo.DESCRIPTOR):\n      any.Unpack(foo)\n      ...\n\nExample 4: Pack and unpack a message in Go\n\n     foo := &pb.Foo{...}\n     any, err := anypb.New(foo)\n     if err != nil {\n       ...\n     }\n     ...\n     foo := &pb.Foo{}\n     if err := any.UnmarshalTo(foo); err != nil {\n       ...\n     }\n\nThe pack methods provided by protobuf library will by default use\n'type.googleapis.com/full.type.name' as the type URL and the unpack\nmethods only use the fully qualified type name after the last '/'\nin the type URL, for example \"foo.bar.com/x/y.z\" will yield type\nname \"y.z\".\n\nJSON\n\nThe JSON representation of an `Any` value uses the regular\nrepresentation of the deserialized, embedded message, with an\nadditional field `@type` which contains the type URL. Example:\n\n    package google.profile;\n    message Person {\n      string first_name = 1;\n      string last_name = 2;\n    }\n\n    {\n      \"@type\": \"type.googleapis.com/google.profile.Person\",\n      \"firstName\": <string>,\n      \"lastName\": <string>\n    }\n\nIf the embedded message type is well-known and has a custom JSON\nrepresentation, that representation will be embedded adding a field\n`value` which holds the custom JSON in addition to the `@type`\nfield. Example (for message [google.protobuf.Duration][]):\n\n    {\n      \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n      \"value\": \"1.212s\"\n    }"}}}}}}}},"tags":["Query"]}}}}
```

## GET /cosmos/evm/vm/v1/cosmos\_account/{address}

> CosmosAccount queries an Ethereum account's Cosmos Address.

```json
{"openapi":"3.1.1","info":{"title":"Kiichain - HTTP API Console","version":"v1"},"servers":[{"url":"https://lcd.uno.sentry.testnet.v3.kiivalidator.com"}],"paths":{"/cosmos/evm/vm/v1/cosmos_account/{address}":{"get":{"summary":"CosmosAccount queries an Ethereum account's Cosmos Address.","operationId":"CosmosAccount","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"type":"object","properties":{"cosmos_address":{"type":"string","description":"cosmos_address is the cosmos address of the account."},"sequence":{"type":"string","format":"uint64","description":"sequence is the account's sequence number."},"account_number":{"type":"string","format":"uint64","title":"account_number is the account number"}},"description":"QueryCosmosAccountResponse is the response type for the Query/CosmosAccount\nRPC method."}}}},"default":{"description":"An unexpected error response.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"details":{"type":"array","items":{"type":"object","properties":{"type_url":{"type":"string","description":"A URL/resource name that uniquely identifies the type of the serialized\nprotocol buffer message. This string must contain at least\none \"/\" character. The last segment of the URL's path must represent\nthe fully qualified name of the type (as in\n`path/google.protobuf.Duration`). The name should be in a canonical form\n(e.g., leading \".\" is not accepted).\n\nIn practice, teams usually precompile into the binary all types that they\nexpect it to use in the context of Any. However, for URLs which use the\nscheme `http`, `https`, or no scheme, one can optionally set up a type\nserver that maps type URLs to message definitions as follows:\n\n* If no scheme is provided, `https` is assumed.\n* An HTTP GET on the URL must yield a [google.protobuf.Type][]\n  value in binary format, or produce an error.\n* Applications are allowed to cache lookup results based on the\n  URL, or have them precompiled into a binary to avoid any\n  lookup. Therefore, binary compatibility needs to be preserved\n  on changes to types. (Use versioned type names to manage\n  breaking changes.)\n\nNote: this functionality is not currently available in the official\nprotobuf release, and it is not used for type URLs beginning with\ntype.googleapis.com.\n\nSchemes other than `http`, `https` (or the empty scheme) might be\nused with implementation specific semantics."},"value":{"type":"string","format":"byte","description":"Must be a valid serialized protocol buffer of the above specified type."}},"description":"`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nProtobuf library provides support to pack/unpack Any values in the form\nof utility functions or additional generated methods of the Any type.\n\nExample 1: Pack and unpack a message in C++.\n\n    Foo foo = ...;\n    Any any;\n    any.PackFrom(foo);\n    ...\n    if (any.UnpackTo(&foo)) {\n      ...\n    }\n\nExample 2: Pack and unpack a message in Java.\n\n    Foo foo = ...;\n    Any any = Any.pack(foo);\n    ...\n    if (any.is(Foo.class)) {\n      foo = any.unpack(Foo.class);\n    }\n    // or ...\n    if (any.isSameTypeAs(Foo.getDefaultInstance())) {\n      foo = any.unpack(Foo.getDefaultInstance());\n    }\n\nExample 3: Pack and unpack a message in Python.\n\n    foo = Foo(...)\n    any = Any()\n    any.Pack(foo)\n    ...\n    if any.Is(Foo.DESCRIPTOR):\n      any.Unpack(foo)\n      ...\n\nExample 4: Pack and unpack a message in Go\n\n     foo := &pb.Foo{...}\n     any, err := anypb.New(foo)\n     if err != nil {\n       ...\n     }\n     ...\n     foo := &pb.Foo{}\n     if err := any.UnmarshalTo(foo); err != nil {\n       ...\n     }\n\nThe pack methods provided by protobuf library will by default use\n'type.googleapis.com/full.type.name' as the type URL and the unpack\nmethods only use the fully qualified type name after the last '/'\nin the type URL, for example \"foo.bar.com/x/y.z\" will yield type\nname \"y.z\".\n\nJSON\n\nThe JSON representation of an `Any` value uses the regular\nrepresentation of the deserialized, embedded message, with an\nadditional field `@type` which contains the type URL. Example:\n\n    package google.profile;\n    message Person {\n      string first_name = 1;\n      string last_name = 2;\n    }\n\n    {\n      \"@type\": \"type.googleapis.com/google.profile.Person\",\n      \"firstName\": <string>,\n      \"lastName\": <string>\n    }\n\nIf the embedded message type is well-known and has a custom JSON\nrepresentation, that representation will be embedded adding a field\n`value` which holds the custom JSON in addition to the `@type`\nfield. Example (for message [google.protobuf.Duration][]):\n\n    {\n      \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n      \"value\": \"1.212s\"\n    }"}}}}}}}},"parameters":[{"name":"address","description":"address is the ethereum hex address to query the account for.","in":"path","required":true,"type":"string"}],"tags":["Query"]}}}}
```

## GET /cosmos/evm/vm/v1/estimate\_gas

> EstimateGas implements the \`eth\_estimateGas\` rpc api

```json
{"openapi":"3.1.1","info":{"title":"Kiichain - HTTP API Console","version":"v1"},"servers":[{"url":"https://lcd.uno.sentry.testnet.v3.kiivalidator.com"}],"paths":{"/cosmos/evm/vm/v1/estimate_gas":{"get":{"summary":"EstimateGas implements the `eth_estimateGas` rpc api","operationId":"EstimateGas","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"type":"object","properties":{"gas":{"type":"string","format":"uint64","title":"gas returns the estimated gas"},"ret":{"type":"string","format":"byte","title":"ret is the returned data from evm function (result or data supplied with\nrevert opcode)"},"vm_error":{"type":"string","title":"vm_error is the error returned by vm execution"}},"title":"EstimateGasResponse defines EstimateGas response"}}}},"default":{"description":"An unexpected error response.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"details":{"type":"array","items":{"type":"object","properties":{"type_url":{"type":"string","description":"A URL/resource name that uniquely identifies the type of the serialized\nprotocol buffer message. This string must contain at least\none \"/\" character. The last segment of the URL's path must represent\nthe fully qualified name of the type (as in\n`path/google.protobuf.Duration`). The name should be in a canonical form\n(e.g., leading \".\" is not accepted).\n\nIn practice, teams usually precompile into the binary all types that they\nexpect it to use in the context of Any. However, for URLs which use the\nscheme `http`, `https`, or no scheme, one can optionally set up a type\nserver that maps type URLs to message definitions as follows:\n\n* If no scheme is provided, `https` is assumed.\n* An HTTP GET on the URL must yield a [google.protobuf.Type][]\n  value in binary format, or produce an error.\n* Applications are allowed to cache lookup results based on the\n  URL, or have them precompiled into a binary to avoid any\n  lookup. Therefore, binary compatibility needs to be preserved\n  on changes to types. (Use versioned type names to manage\n  breaking changes.)\n\nNote: this functionality is not currently available in the official\nprotobuf release, and it is not used for type URLs beginning with\ntype.googleapis.com.\n\nSchemes other than `http`, `https` (or the empty scheme) might be\nused with implementation specific semantics."},"value":{"type":"string","format":"byte","description":"Must be a valid serialized protocol buffer of the above specified type."}},"description":"`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nProtobuf library provides support to pack/unpack Any values in the form\nof utility functions or additional generated methods of the Any type.\n\nExample 1: Pack and unpack a message in C++.\n\n    Foo foo = ...;\n    Any any;\n    any.PackFrom(foo);\n    ...\n    if (any.UnpackTo(&foo)) {\n      ...\n    }\n\nExample 2: Pack and unpack a message in Java.\n\n    Foo foo = ...;\n    Any any = Any.pack(foo);\n    ...\n    if (any.is(Foo.class)) {\n      foo = any.unpack(Foo.class);\n    }\n    // or ...\n    if (any.isSameTypeAs(Foo.getDefaultInstance())) {\n      foo = any.unpack(Foo.getDefaultInstance());\n    }\n\nExample 3: Pack and unpack a message in Python.\n\n    foo = Foo(...)\n    any = Any()\n    any.Pack(foo)\n    ...\n    if any.Is(Foo.DESCRIPTOR):\n      any.Unpack(foo)\n      ...\n\nExample 4: Pack and unpack a message in Go\n\n     foo := &pb.Foo{...}\n     any, err := anypb.New(foo)\n     if err != nil {\n       ...\n     }\n     ...\n     foo := &pb.Foo{}\n     if err := any.UnmarshalTo(foo); err != nil {\n       ...\n     }\n\nThe pack methods provided by protobuf library will by default use\n'type.googleapis.com/full.type.name' as the type URL and the unpack\nmethods only use the fully qualified type name after the last '/'\nin the type URL, for example \"foo.bar.com/x/y.z\" will yield type\nname \"y.z\".\n\nJSON\n\nThe JSON representation of an `Any` value uses the regular\nrepresentation of the deserialized, embedded message, with an\nadditional field `@type` which contains the type URL. Example:\n\n    package google.profile;\n    message Person {\n      string first_name = 1;\n      string last_name = 2;\n    }\n\n    {\n      \"@type\": \"type.googleapis.com/google.profile.Person\",\n      \"firstName\": <string>,\n      \"lastName\": <string>\n    }\n\nIf the embedded message type is well-known and has a custom JSON\nrepresentation, that representation will be embedded adding a field\n`value` which holds the custom JSON in addition to the `@type`\nfield. Example (for message [google.protobuf.Duration][]):\n\n    {\n      \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n      \"value\": \"1.212s\"\n    }"}}}}}}}},"parameters":[{"name":"args","description":"args uses the same json format as the json rpc api.","in":"query","required":false,"type":"string","format":"byte"},{"name":"gas_cap","description":"gas_cap defines the default gas cap to be used.","in":"query","required":false,"type":"string","format":"uint64"},{"name":"proposer_address","description":"proposer_address of the requested block in hex format.","in":"query","required":false,"type":"string","format":"byte"},{"name":"chain_id","description":"chain_id is the eip155 chain id parsed from the requested block header.","in":"query","required":false,"type":"string","format":"int64"}],"tags":["Query"]}}}}
```

## GET /cosmos/evm/vm/v1/eth\_call

> EthCall implements the \`eth\_call\` rpc api

```json
{"openapi":"3.1.1","info":{"title":"Kiichain - HTTP API Console","version":"v1"},"servers":[{"url":"https://lcd.uno.sentry.testnet.v3.kiivalidator.com"}],"paths":{"/cosmos/evm/vm/v1/eth_call":{"get":{"summary":"EthCall implements the `eth_call` rpc api","operationId":"EthCall","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","title":"hash of the ethereum transaction in hex format. This hash differs from the\nTendermint sha256 hash of the transaction bytes. See\nhttps://github.com/tendermint/tendermint/issues/6539 for reference"},"logs":{"type":"array","items":{"type":"object","properties":{"address":{"type":"string","title":"address of the contract that generated the event"},"topics":{"type":"array","items":{"type":"string"},"description":"topics is a list of topics provided by the contract."},"data":{"type":"string","format":"byte","title":"data which is supplied by the contract, usually ABI-encoded"},"block_number":{"type":"string","format":"uint64","title":"block_number of the block in which the transaction was included"},"tx_hash":{"type":"string","title":"tx_hash is the transaction hash"},"tx_index":{"type":"string","format":"uint64","title":"tx_index of the transaction in the block"},"block_hash":{"type":"string","title":"block_hash of the block in which the transaction was included"},"index":{"type":"string","format":"uint64","title":"index of the log in the block"},"removed":{"type":"boolean","description":"removed is true if this log was reverted due to a chain\nreorganisation. You must pay attention to this field if you receive logs\nthrough a filter query."}},"description":"Log represents an protobuf compatible Ethereum Log that defines a contract\nlog event. These events are generated by the LOG opcode and stored/indexed by\nthe node.\n\nNOTE: address, topics and data are consensus fields. The rest of the fields\nare derived, i.e. filled in by the nodes, but not secured by consensus."},"description":"logs contains the transaction hash and the proto-compatible ethereum\nlogs."},"ret":{"type":"string","format":"byte","title":"ret is the returned data from evm function (result or data supplied with\nrevert opcode)"},"vm_error":{"type":"string","title":"vm_error is the error returned by vm execution"},"gas_used":{"type":"string","format":"uint64","title":"gas_used specifies how much gas was consumed by the transaction"}},"description":"MsgEthereumTxResponse defines the Msg/EthereumTx response type."}}}},"default":{"description":"An unexpected error response.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"details":{"type":"array","items":{"type":"object","properties":{"type_url":{"type":"string","description":"A URL/resource name that uniquely identifies the type of the serialized\nprotocol buffer message. This string must contain at least\none \"/\" character. The last segment of the URL's path must represent\nthe fully qualified name of the type (as in\n`path/google.protobuf.Duration`). The name should be in a canonical form\n(e.g., leading \".\" is not accepted).\n\nIn practice, teams usually precompile into the binary all types that they\nexpect it to use in the context of Any. However, for URLs which use the\nscheme `http`, `https`, or no scheme, one can optionally set up a type\nserver that maps type URLs to message definitions as follows:\n\n* If no scheme is provided, `https` is assumed.\n* An HTTP GET on the URL must yield a [google.protobuf.Type][]\n  value in binary format, or produce an error.\n* Applications are allowed to cache lookup results based on the\n  URL, or have them precompiled into a binary to avoid any\n  lookup. Therefore, binary compatibility needs to be preserved\n  on changes to types. (Use versioned type names to manage\n  breaking changes.)\n\nNote: this functionality is not currently available in the official\nprotobuf release, and it is not used for type URLs beginning with\ntype.googleapis.com.\n\nSchemes other than `http`, `https` (or the empty scheme) might be\nused with implementation specific semantics."},"value":{"type":"string","format":"byte","description":"Must be a valid serialized protocol buffer of the above specified type."}},"description":"`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nProtobuf library provides support to pack/unpack Any values in the form\nof utility functions or additional generated methods of the Any type.\n\nExample 1: Pack and unpack a message in C++.\n\n    Foo foo = ...;\n    Any any;\n    any.PackFrom(foo);\n    ...\n    if (any.UnpackTo(&foo)) {\n      ...\n    }\n\nExample 2: Pack and unpack a message in Java.\n\n    Foo foo = ...;\n    Any any = Any.pack(foo);\n    ...\n    if (any.is(Foo.class)) {\n      foo = any.unpack(Foo.class);\n    }\n    // or ...\n    if (any.isSameTypeAs(Foo.getDefaultInstance())) {\n      foo = any.unpack(Foo.getDefaultInstance());\n    }\n\nExample 3: Pack and unpack a message in Python.\n\n    foo = Foo(...)\n    any = Any()\n    any.Pack(foo)\n    ...\n    if any.Is(Foo.DESCRIPTOR):\n      any.Unpack(foo)\n      ...\n\nExample 4: Pack and unpack a message in Go\n\n     foo := &pb.Foo{...}\n     any, err := anypb.New(foo)\n     if err != nil {\n       ...\n     }\n     ...\n     foo := &pb.Foo{}\n     if err := any.UnmarshalTo(foo); err != nil {\n       ...\n     }\n\nThe pack methods provided by protobuf library will by default use\n'type.googleapis.com/full.type.name' as the type URL and the unpack\nmethods only use the fully qualified type name after the last '/'\nin the type URL, for example \"foo.bar.com/x/y.z\" will yield type\nname \"y.z\".\n\nJSON\n\nThe JSON representation of an `Any` value uses the regular\nrepresentation of the deserialized, embedded message, with an\nadditional field `@type` which contains the type URL. Example:\n\n    package google.profile;\n    message Person {\n      string first_name = 1;\n      string last_name = 2;\n    }\n\n    {\n      \"@type\": \"type.googleapis.com/google.profile.Person\",\n      \"firstName\": <string>,\n      \"lastName\": <string>\n    }\n\nIf the embedded message type is well-known and has a custom JSON\nrepresentation, that representation will be embedded adding a field\n`value` which holds the custom JSON in addition to the `@type`\nfield. Example (for message [google.protobuf.Duration][]):\n\n    {\n      \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n      \"value\": \"1.212s\"\n    }"}}}}}}}},"parameters":[{"name":"args","description":"args uses the same json format as the json rpc api.","in":"query","required":false,"type":"string","format":"byte"},{"name":"gas_cap","description":"gas_cap defines the default gas cap to be used.","in":"query","required":false,"type":"string","format":"uint64"},{"name":"proposer_address","description":"proposer_address of the requested block in hex format.","in":"query","required":false,"type":"string","format":"byte"},{"name":"chain_id","description":"chain_id is the eip155 chain id parsed from the requested block header.","in":"query","required":false,"type":"string","format":"int64"}],"tags":["Query"]}}}}
```

## GET /cosmos/evm/vm/v1/min\_gas\_price

> GlobalMinGasPrice queries the MinGasPrice\
> it's similar to feemarket module's method,\
> but makes the conversion to 18 decimals\
> when the evm denom is represented with a different precision.

```json
{"openapi":"3.1.1","info":{"title":"Kiichain - HTTP API Console","version":"v1"},"servers":[{"url":"https://lcd.uno.sentry.testnet.v3.kiivalidator.com"}],"paths":{"/cosmos/evm/vm/v1/min_gas_price":{"get":{"summary":"GlobalMinGasPrice queries the MinGasPrice\nit's similar to feemarket module's method,\nbut makes the conversion to 18 decimals\nwhen the evm denom is represented with a different precision.","operationId":"GlobalMinGasPrice","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"type":"object","properties":{"min_gas_price":{"type":"string","title":"min_gas_price is the feemarket's min_gas_price"}},"title":"QueryGlobalMinGasPriceResponse returns the GlobalMinGasPrice"}}}},"default":{"description":"An unexpected error response.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"details":{"type":"array","items":{"type":"object","properties":{"type_url":{"type":"string","description":"A URL/resource name that uniquely identifies the type of the serialized\nprotocol buffer message. This string must contain at least\none \"/\" character. The last segment of the URL's path must represent\nthe fully qualified name of the type (as in\n`path/google.protobuf.Duration`). The name should be in a canonical form\n(e.g., leading \".\" is not accepted).\n\nIn practice, teams usually precompile into the binary all types that they\nexpect it to use in the context of Any. However, for URLs which use the\nscheme `http`, `https`, or no scheme, one can optionally set up a type\nserver that maps type URLs to message definitions as follows:\n\n* If no scheme is provided, `https` is assumed.\n* An HTTP GET on the URL must yield a [google.protobuf.Type][]\n  value in binary format, or produce an error.\n* Applications are allowed to cache lookup results based on the\n  URL, or have them precompiled into a binary to avoid any\n  lookup. Therefore, binary compatibility needs to be preserved\n  on changes to types. (Use versioned type names to manage\n  breaking changes.)\n\nNote: this functionality is not currently available in the official\nprotobuf release, and it is not used for type URLs beginning with\ntype.googleapis.com.\n\nSchemes other than `http`, `https` (or the empty scheme) might be\nused with implementation specific semantics."},"value":{"type":"string","format":"byte","description":"Must be a valid serialized protocol buffer of the above specified type."}},"description":"`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nProtobuf library provides support to pack/unpack Any values in the form\nof utility functions or additional generated methods of the Any type.\n\nExample 1: Pack and unpack a message in C++.\n\n    Foo foo = ...;\n    Any any;\n    any.PackFrom(foo);\n    ...\n    if (any.UnpackTo(&foo)) {\n      ...\n    }\n\nExample 2: Pack and unpack a message in Java.\n\n    Foo foo = ...;\n    Any any = Any.pack(foo);\n    ...\n    if (any.is(Foo.class)) {\n      foo = any.unpack(Foo.class);\n    }\n    // or ...\n    if (any.isSameTypeAs(Foo.getDefaultInstance())) {\n      foo = any.unpack(Foo.getDefaultInstance());\n    }\n\nExample 3: Pack and unpack a message in Python.\n\n    foo = Foo(...)\n    any = Any()\n    any.Pack(foo)\n    ...\n    if any.Is(Foo.DESCRIPTOR):\n      any.Unpack(foo)\n      ...\n\nExample 4: Pack and unpack a message in Go\n\n     foo := &pb.Foo{...}\n     any, err := anypb.New(foo)\n     if err != nil {\n       ...\n     }\n     ...\n     foo := &pb.Foo{}\n     if err := any.UnmarshalTo(foo); err != nil {\n       ...\n     }\n\nThe pack methods provided by protobuf library will by default use\n'type.googleapis.com/full.type.name' as the type URL and the unpack\nmethods only use the fully qualified type name after the last '/'\nin the type URL, for example \"foo.bar.com/x/y.z\" will yield type\nname \"y.z\".\n\nJSON\n\nThe JSON representation of an `Any` value uses the regular\nrepresentation of the deserialized, embedded message, with an\nadditional field `@type` which contains the type URL. Example:\n\n    package google.profile;\n    message Person {\n      string first_name = 1;\n      string last_name = 2;\n    }\n\n    {\n      \"@type\": \"type.googleapis.com/google.profile.Person\",\n      \"firstName\": <string>,\n      \"lastName\": <string>\n    }\n\nIf the embedded message type is well-known and has a custom JSON\nrepresentation, that representation will be embedded adding a field\n`value` which holds the custom JSON in addition to the `@type`\nfield. Example (for message [google.protobuf.Duration][]):\n\n    {\n      \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n      \"value\": \"1.212s\"\n    }"}}}}}}}},"tags":["Query"]}}}}
```

## GET /cosmos/evm/vm/v1/storage/{address}/{key}

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

```json
{"openapi":"3.1.1","info":{"title":"Kiichain - HTTP API Console","version":"v1"},"servers":[{"url":"https://lcd.uno.sentry.testnet.v3.kiivalidator.com"}],"paths":{"/cosmos/evm/vm/v1/storage/{address}/{key}":{"get":{"summary":"Storage queries the balance of all coins for a single account.","operationId":"Storage","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"string","description":"value defines the storage state value hash associated with the given key."}},"description":"QueryStorageResponse is the response type for the Query/Storage RPC\nmethod."}}}},"default":{"description":"An unexpected error response.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"details":{"type":"array","items":{"type":"object","properties":{"type_url":{"type":"string","description":"A URL/resource name that uniquely identifies the type of the serialized\nprotocol buffer message. This string must contain at least\none \"/\" character. The last segment of the URL's path must represent\nthe fully qualified name of the type (as in\n`path/google.protobuf.Duration`). The name should be in a canonical form\n(e.g., leading \".\" is not accepted).\n\nIn practice, teams usually precompile into the binary all types that they\nexpect it to use in the context of Any. However, for URLs which use the\nscheme `http`, `https`, or no scheme, one can optionally set up a type\nserver that maps type URLs to message definitions as follows:\n\n* If no scheme is provided, `https` is assumed.\n* An HTTP GET on the URL must yield a [google.protobuf.Type][]\n  value in binary format, or produce an error.\n* Applications are allowed to cache lookup results based on the\n  URL, or have them precompiled into a binary to avoid any\n  lookup. Therefore, binary compatibility needs to be preserved\n  on changes to types. (Use versioned type names to manage\n  breaking changes.)\n\nNote: this functionality is not currently available in the official\nprotobuf release, and it is not used for type URLs beginning with\ntype.googleapis.com.\n\nSchemes other than `http`, `https` (or the empty scheme) might be\nused with implementation specific semantics."},"value":{"type":"string","format":"byte","description":"Must be a valid serialized protocol buffer of the above specified type."}},"description":"`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nProtobuf library provides support to pack/unpack Any values in the form\nof utility functions or additional generated methods of the Any type.\n\nExample 1: Pack and unpack a message in C++.\n\n    Foo foo = ...;\n    Any any;\n    any.PackFrom(foo);\n    ...\n    if (any.UnpackTo(&foo)) {\n      ...\n    }\n\nExample 2: Pack and unpack a message in Java.\n\n    Foo foo = ...;\n    Any any = Any.pack(foo);\n    ...\n    if (any.is(Foo.class)) {\n      foo = any.unpack(Foo.class);\n    }\n    // or ...\n    if (any.isSameTypeAs(Foo.getDefaultInstance())) {\n      foo = any.unpack(Foo.getDefaultInstance());\n    }\n\nExample 3: Pack and unpack a message in Python.\n\n    foo = Foo(...)\n    any = Any()\n    any.Pack(foo)\n    ...\n    if any.Is(Foo.DESCRIPTOR):\n      any.Unpack(foo)\n      ...\n\nExample 4: Pack and unpack a message in Go\n\n     foo := &pb.Foo{...}\n     any, err := anypb.New(foo)\n     if err != nil {\n       ...\n     }\n     ...\n     foo := &pb.Foo{}\n     if err := any.UnmarshalTo(foo); err != nil {\n       ...\n     }\n\nThe pack methods provided by protobuf library will by default use\n'type.googleapis.com/full.type.name' as the type URL and the unpack\nmethods only use the fully qualified type name after the last '/'\nin the type URL, for example \"foo.bar.com/x/y.z\" will yield type\nname \"y.z\".\n\nJSON\n\nThe JSON representation of an `Any` value uses the regular\nrepresentation of the deserialized, embedded message, with an\nadditional field `@type` which contains the type URL. Example:\n\n    package google.profile;\n    message Person {\n      string first_name = 1;\n      string last_name = 2;\n    }\n\n    {\n      \"@type\": \"type.googleapis.com/google.profile.Person\",\n      \"firstName\": <string>,\n      \"lastName\": <string>\n    }\n\nIf the embedded message type is well-known and has a custom JSON\nrepresentation, that representation will be embedded adding a field\n`value` which holds the custom JSON in addition to the `@type`\nfield. Example (for message [google.protobuf.Duration][]):\n\n    {\n      \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n      \"value\": \"1.212s\"\n    }"}}}}}}}},"parameters":[{"name":"address","description":"address is the ethereum hex address to query the storage state for.","in":"path","required":true,"type":"string"},{"name":"key","description":"key defines the key of the storage state","in":"path","required":true,"type":"string"}],"tags":["Query"]}}}}
```

## GET /cosmos/evm/vm/v1/trace\_block

> TraceBlock implements the \`debug\_traceBlockByNumber\` and\
> \`debug\_traceBlockByHash\` rpc api

```json
{"openapi":"3.1.1","info":{"title":"Kiichain - HTTP API Console","version":"v1"},"servers":[{"url":"https://lcd.uno.sentry.testnet.v3.kiivalidator.com"}],"paths":{"/cosmos/evm/vm/v1/trace_block":{"get":{"summary":"TraceBlock implements the `debug_traceBlockByNumber` and\n`debug_traceBlockByHash` rpc api","operationId":"TraceBlock","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"string","format":"byte","title":"data is the response serialized in bytes"}},"title":"QueryTraceBlockResponse defines TraceBlock response"}}}},"default":{"description":"An unexpected error response.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"details":{"type":"array","items":{"type":"object","properties":{"type_url":{"type":"string","description":"A URL/resource name that uniquely identifies the type of the serialized\nprotocol buffer message. This string must contain at least\none \"/\" character. The last segment of the URL's path must represent\nthe fully qualified name of the type (as in\n`path/google.protobuf.Duration`). The name should be in a canonical form\n(e.g., leading \".\" is not accepted).\n\nIn practice, teams usually precompile into the binary all types that they\nexpect it to use in the context of Any. However, for URLs which use the\nscheme `http`, `https`, or no scheme, one can optionally set up a type\nserver that maps type URLs to message definitions as follows:\n\n* If no scheme is provided, `https` is assumed.\n* An HTTP GET on the URL must yield a [google.protobuf.Type][]\n  value in binary format, or produce an error.\n* Applications are allowed to cache lookup results based on the\n  URL, or have them precompiled into a binary to avoid any\n  lookup. Therefore, binary compatibility needs to be preserved\n  on changes to types. (Use versioned type names to manage\n  breaking changes.)\n\nNote: this functionality is not currently available in the official\nprotobuf release, and it is not used for type URLs beginning with\ntype.googleapis.com.\n\nSchemes other than `http`, `https` (or the empty scheme) might be\nused with implementation specific semantics."},"value":{"type":"string","format":"byte","description":"Must be a valid serialized protocol buffer of the above specified type."}},"description":"`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nProtobuf library provides support to pack/unpack Any values in the form\nof utility functions or additional generated methods of the Any type.\n\nExample 1: Pack and unpack a message in C++.\n\n    Foo foo = ...;\n    Any any;\n    any.PackFrom(foo);\n    ...\n    if (any.UnpackTo(&foo)) {\n      ...\n    }\n\nExample 2: Pack and unpack a message in Java.\n\n    Foo foo = ...;\n    Any any = Any.pack(foo);\n    ...\n    if (any.is(Foo.class)) {\n      foo = any.unpack(Foo.class);\n    }\n    // or ...\n    if (any.isSameTypeAs(Foo.getDefaultInstance())) {\n      foo = any.unpack(Foo.getDefaultInstance());\n    }\n\nExample 3: Pack and unpack a message in Python.\n\n    foo = Foo(...)\n    any = Any()\n    any.Pack(foo)\n    ...\n    if any.Is(Foo.DESCRIPTOR):\n      any.Unpack(foo)\n      ...\n\nExample 4: Pack and unpack a message in Go\n\n     foo := &pb.Foo{...}\n     any, err := anypb.New(foo)\n     if err != nil {\n       ...\n     }\n     ...\n     foo := &pb.Foo{}\n     if err := any.UnmarshalTo(foo); err != nil {\n       ...\n     }\n\nThe pack methods provided by protobuf library will by default use\n'type.googleapis.com/full.type.name' as the type URL and the unpack\nmethods only use the fully qualified type name after the last '/'\nin the type URL, for example \"foo.bar.com/x/y.z\" will yield type\nname \"y.z\".\n\nJSON\n\nThe JSON representation of an `Any` value uses the regular\nrepresentation of the deserialized, embedded message, with an\nadditional field `@type` which contains the type URL. Example:\n\n    package google.profile;\n    message Person {\n      string first_name = 1;\n      string last_name = 2;\n    }\n\n    {\n      \"@type\": \"type.googleapis.com/google.profile.Person\",\n      \"firstName\": <string>,\n      \"lastName\": <string>\n    }\n\nIf the embedded message type is well-known and has a custom JSON\nrepresentation, that representation will be embedded adding a field\n`value` which holds the custom JSON in addition to the `@type`\nfield. Example (for message [google.protobuf.Duration][]):\n\n    {\n      \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n      \"value\": \"1.212s\"\n    }"}}}}}}}},"parameters":[{"name":"trace_config.tracer","description":"tracer is a custom javascript tracer.","in":"query","required":false,"type":"string"},{"name":"trace_config.timeout","description":"timeout overrides the default timeout of 5 seconds for JavaScript-based\ntracing calls.","in":"query","required":false,"type":"string"},{"name":"trace_config.reexec","description":"reexec defines the number of blocks the tracer is willing to go back.","in":"query","required":false,"type":"string","format":"uint64"},{"name":"trace_config.disable_stack","description":"disable_stack switches stack capture.","in":"query","required":false,"type":"boolean"},{"name":"trace_config.disable_storage","description":"disable_storage switches storage capture.","in":"query","required":false,"type":"boolean"},{"name":"trace_config.debug","description":"debug can be used to print output during capture end.","in":"query","required":false,"type":"boolean"},{"name":"trace_config.limit","description":"limit defines the maximum length of output, but zero means unlimited.","in":"query","required":false,"type":"integer","format":"int32"},{"name":"trace_config.overrides.homestead_block","description":"homestead_block switch (nil no fork, 0 = already homestead).","in":"query","required":false,"type":"string"},{"name":"trace_config.overrides.dao_fork_block","description":"dao_fork_block corresponds to TheDAO hard-fork switch block (nil no fork).","in":"query","required":false,"type":"string"},{"name":"trace_config.overrides.dao_fork_support","description":"dao_fork_support defines whether the nodes supports or opposes the DAO\nhard-fork.","in":"query","required":false,"type":"boolean"},{"name":"trace_config.overrides.eip150_block","description":"eip150_block: EIP150 implements the Gas price changes\n(https://github.com/ethereum/EIPs/issues/150) EIP150 HF block (nil no fork).","in":"query","required":false,"type":"string"},{"name":"trace_config.overrides.eip150_hash","description":"eip150_hash: EIP150 HF hash (needed for header only clients as only gas\npricing changed).","in":"query","required":false,"type":"string"},{"name":"trace_config.overrides.eip155_block","description":"eip155_block: EIP155Block HF block.","in":"query","required":false,"type":"string"},{"name":"trace_config.overrides.eip158_block","description":"eip158_block: EIP158 HF block.","in":"query","required":false,"type":"string"},{"name":"trace_config.overrides.byzantium_block","description":"byzantium_block: Byzantium switch block (nil no fork, 0 = already on\nbyzantium).","in":"query","required":false,"type":"string"},{"name":"trace_config.overrides.constantinople_block","description":"constantinople_block: Constantinople switch block (nil no fork, 0 = already\nactivated).","in":"query","required":false,"type":"string"},{"name":"trace_config.overrides.petersburg_block","description":"petersburg_block: Petersburg switch block (nil same as Constantinople).","in":"query","required":false,"type":"string"},{"name":"trace_config.overrides.istanbul_block","description":"istanbul_block: Istanbul switch block (nil no fork, 0 = already on\nistanbul).","in":"query","required":false,"type":"string"},{"name":"trace_config.overrides.muir_glacier_block","description":"muir_glacier_block: Eip-2384 (bomb delay) switch block (nil no fork, 0 =\nalready activated).","in":"query","required":false,"type":"string"},{"name":"trace_config.overrides.berlin_block","description":"berlin_block: Berlin switch block (nil = no fork, 0 = already on berlin).","in":"query","required":false,"type":"string"},{"name":"trace_config.overrides.london_block","description":"london_block: London switch block (nil = no fork, 0 = already on london).","in":"query","required":false,"type":"string"},{"name":"trace_config.overrides.arrow_glacier_block","description":"arrow_glacier_block: Eip-4345 (bomb delay) switch block (nil = no fork, 0 =\nalready activated).","in":"query","required":false,"type":"string"},{"name":"trace_config.overrides.gray_glacier_block","description":"gray_glacier_block: EIP-5133 (bomb delay) switch block (nil = no fork, 0 =\nalready activated).","in":"query","required":false,"type":"string"},{"name":"trace_config.overrides.merge_netsplit_block","description":"merge_netsplit_block: Virtual fork after The Merge to use as a network\nsplitter.","in":"query","required":false,"type":"string"},{"name":"trace_config.overrides.shanghai_block","description":"shanghai_block switch block (nil = no fork, 0 = already on shanghai).","in":"query","required":false,"type":"string"},{"name":"trace_config.overrides.cancun_block","description":"cancun_block switch block (nil = no fork, 0 = already on cancun).","in":"query","required":false,"type":"string"},{"name":"trace_config.overrides.chain_id","description":"chain_id is the id of the chain (EIP-155).","in":"query","required":false,"type":"string","format":"uint64"},{"name":"trace_config.overrides.denom","description":"denom is the denomination used on the EVM.","in":"query","required":false,"type":"string"},{"name":"trace_config.overrides.decimals","description":"decimals is the real decimal precision of the denomination used on the EVM.","in":"query","required":false,"type":"string","format":"uint64"},{"name":"trace_config.enable_memory","description":"enable_memory switches memory capture.","in":"query","required":false,"type":"boolean"},{"name":"trace_config.enable_return_data","description":"enable_return_data switches the capture of return data.","in":"query","required":false,"type":"boolean"},{"name":"trace_config.tracer_json_config","description":"tracer_json_config configures the tracer using a JSON string.","in":"query","required":false,"type":"string"},{"name":"block_number","description":"block_number of the traced block.","in":"query","required":false,"type":"string","format":"int64"},{"name":"block_hash","description":"block_hash (hex) of the traced block.","in":"query","required":false,"type":"string"},{"name":"block_time","description":"block_time of the traced block.","in":"query","required":false,"type":"string","format":"date-time"},{"name":"proposer_address","description":"proposer_address is the address of the requested block.","in":"query","required":false,"type":"string","format":"byte"},{"name":"chain_id","description":"chain_id is the eip155 chain id parsed from the requested block header.","in":"query","required":false,"type":"string","format":"int64"},{"name":"block_max_gas","description":"block_max_gas of the traced block.","in":"query","required":false,"type":"string","format":"int64"}],"tags":["Query"]}}}}
```

## GET /cosmos/evm/vm/v1/trace\_tx

> TraceTx implements the \`debug\_traceTransaction\` rpc api

```json
{"openapi":"3.1.1","info":{"title":"Kiichain - HTTP API Console","version":"v1"},"servers":[{"url":"https://lcd.uno.sentry.testnet.v3.kiivalidator.com"}],"paths":{"/cosmos/evm/vm/v1/trace_tx":{"get":{"summary":"TraceTx implements the `debug_traceTransaction` rpc api","operationId":"TraceTx","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"string","format":"byte","title":"data is the response serialized in bytes"}},"title":"QueryTraceTxResponse defines TraceTx response"}}}},"default":{"description":"An unexpected error response.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"details":{"type":"array","items":{"type":"object","properties":{"type_url":{"type":"string","description":"A URL/resource name that uniquely identifies the type of the serialized\nprotocol buffer message. This string must contain at least\none \"/\" character. The last segment of the URL's path must represent\nthe fully qualified name of the type (as in\n`path/google.protobuf.Duration`). The name should be in a canonical form\n(e.g., leading \".\" is not accepted).\n\nIn practice, teams usually precompile into the binary all types that they\nexpect it to use in the context of Any. However, for URLs which use the\nscheme `http`, `https`, or no scheme, one can optionally set up a type\nserver that maps type URLs to message definitions as follows:\n\n* If no scheme is provided, `https` is assumed.\n* An HTTP GET on the URL must yield a [google.protobuf.Type][]\n  value in binary format, or produce an error.\n* Applications are allowed to cache lookup results based on the\n  URL, or have them precompiled into a binary to avoid any\n  lookup. Therefore, binary compatibility needs to be preserved\n  on changes to types. (Use versioned type names to manage\n  breaking changes.)\n\nNote: this functionality is not currently available in the official\nprotobuf release, and it is not used for type URLs beginning with\ntype.googleapis.com.\n\nSchemes other than `http`, `https` (or the empty scheme) might be\nused with implementation specific semantics."},"value":{"type":"string","format":"byte","description":"Must be a valid serialized protocol buffer of the above specified type."}},"description":"`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nProtobuf library provides support to pack/unpack Any values in the form\nof utility functions or additional generated methods of the Any type.\n\nExample 1: Pack and unpack a message in C++.\n\n    Foo foo = ...;\n    Any any;\n    any.PackFrom(foo);\n    ...\n    if (any.UnpackTo(&foo)) {\n      ...\n    }\n\nExample 2: Pack and unpack a message in Java.\n\n    Foo foo = ...;\n    Any any = Any.pack(foo);\n    ...\n    if (any.is(Foo.class)) {\n      foo = any.unpack(Foo.class);\n    }\n    // or ...\n    if (any.isSameTypeAs(Foo.getDefaultInstance())) {\n      foo = any.unpack(Foo.getDefaultInstance());\n    }\n\nExample 3: Pack and unpack a message in Python.\n\n    foo = Foo(...)\n    any = Any()\n    any.Pack(foo)\n    ...\n    if any.Is(Foo.DESCRIPTOR):\n      any.Unpack(foo)\n      ...\n\nExample 4: Pack and unpack a message in Go\n\n     foo := &pb.Foo{...}\n     any, err := anypb.New(foo)\n     if err != nil {\n       ...\n     }\n     ...\n     foo := &pb.Foo{}\n     if err := any.UnmarshalTo(foo); err != nil {\n       ...\n     }\n\nThe pack methods provided by protobuf library will by default use\n'type.googleapis.com/full.type.name' as the type URL and the unpack\nmethods only use the fully qualified type name after the last '/'\nin the type URL, for example \"foo.bar.com/x/y.z\" will yield type\nname \"y.z\".\n\nJSON\n\nThe JSON representation of an `Any` value uses the regular\nrepresentation of the deserialized, embedded message, with an\nadditional field `@type` which contains the type URL. Example:\n\n    package google.profile;\n    message Person {\n      string first_name = 1;\n      string last_name = 2;\n    }\n\n    {\n      \"@type\": \"type.googleapis.com/google.profile.Person\",\n      \"firstName\": <string>,\n      \"lastName\": <string>\n    }\n\nIf the embedded message type is well-known and has a custom JSON\nrepresentation, that representation will be embedded adding a field\n`value` which holds the custom JSON in addition to the `@type`\nfield. Example (for message [google.protobuf.Duration][]):\n\n    {\n      \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n      \"value\": \"1.212s\"\n    }"}}}}}}}},"parameters":[{"name":"msg.data.type_url","description":"A URL/resource name that uniquely identifies the type of the serialized\nprotocol buffer message. This string must contain at least\none \"/\" character. The last segment of the URL's path must represent\nthe fully qualified name of the type (as in\n`path/google.protobuf.Duration`). The name should be in a canonical form\n(e.g., leading \".\" is not accepted).\n\nIn practice, teams usually precompile into the binary all types that they\nexpect it to use in the context of Any. However, for URLs which use the\nscheme `http`, `https`, or no scheme, one can optionally set up a type\nserver that maps type URLs to message definitions as follows:\n\n* If no scheme is provided, `https` is assumed.\n* An HTTP GET on the URL must yield a [google.protobuf.Type][]\n  value in binary format, or produce an error.\n* Applications are allowed to cache lookup results based on the\n  URL, or have them precompiled into a binary to avoid any\n  lookup. Therefore, binary compatibility needs to be preserved\n  on changes to types. (Use versioned type names to manage\n  breaking changes.)\n\nNote: this functionality is not currently available in the official\nprotobuf release, and it is not used for type URLs beginning with\ntype.googleapis.com.\n\nSchemes other than `http`, `https` (or the empty scheme) might be\nused with implementation specific semantics.","in":"query","required":false,"type":"string"},{"name":"msg.data.value","description":"Must be a valid serialized protocol buffer of the above specified type.","in":"query","required":false,"type":"string","format":"byte"},{"name":"msg.size","description":"size is the encoded storage size of the transaction (DEPRECATED).","in":"query","required":false,"type":"number","format":"double"},{"name":"msg.hash","description":"hash of the transaction in hex format.","in":"query","required":false,"type":"string"},{"name":"msg.from","description":"from is the ethereum signer address in hex format. This address value is\nchecked against the address derived from the signature (V, R, S) using the\nsecp256k1 elliptic curve.","in":"query","required":false,"type":"string"},{"name":"trace_config.tracer","description":"tracer is a custom javascript tracer.","in":"query","required":false,"type":"string"},{"name":"trace_config.timeout","description":"timeout overrides the default timeout of 5 seconds for JavaScript-based\ntracing calls.","in":"query","required":false,"type":"string"},{"name":"trace_config.reexec","description":"reexec defines the number of blocks the tracer is willing to go back.","in":"query","required":false,"type":"string","format":"uint64"},{"name":"trace_config.disable_stack","description":"disable_stack switches stack capture.","in":"query","required":false,"type":"boolean"},{"name":"trace_config.disable_storage","description":"disable_storage switches storage capture.","in":"query","required":false,"type":"boolean"},{"name":"trace_config.debug","description":"debug can be used to print output during capture end.","in":"query","required":false,"type":"boolean"},{"name":"trace_config.limit","description":"limit defines the maximum length of output, but zero means unlimited.","in":"query","required":false,"type":"integer","format":"int32"},{"name":"trace_config.overrides.homestead_block","description":"homestead_block switch (nil no fork, 0 = already homestead).","in":"query","required":false,"type":"string"},{"name":"trace_config.overrides.dao_fork_block","description":"dao_fork_block corresponds to TheDAO hard-fork switch block (nil no fork).","in":"query","required":false,"type":"string"},{"name":"trace_config.overrides.dao_fork_support","description":"dao_fork_support defines whether the nodes supports or opposes the DAO\nhard-fork.","in":"query","required":false,"type":"boolean"},{"name":"trace_config.overrides.eip150_block","description":"eip150_block: EIP150 implements the Gas price changes\n(https://github.com/ethereum/EIPs/issues/150) EIP150 HF block (nil no fork).","in":"query","required":false,"type":"string"},{"name":"trace_config.overrides.eip150_hash","description":"eip150_hash: EIP150 HF hash (needed for header only clients as only gas\npricing changed).","in":"query","required":false,"type":"string"},{"name":"trace_config.overrides.eip155_block","description":"eip155_block: EIP155Block HF block.","in":"query","required":false,"type":"string"},{"name":"trace_config.overrides.eip158_block","description":"eip158_block: EIP158 HF block.","in":"query","required":false,"type":"string"},{"name":"trace_config.overrides.byzantium_block","description":"byzantium_block: Byzantium switch block (nil no fork, 0 = already on\nbyzantium).","in":"query","required":false,"type":"string"},{"name":"trace_config.overrides.constantinople_block","description":"constantinople_block: Constantinople switch block (nil no fork, 0 = already\nactivated).","in":"query","required":false,"type":"string"},{"name":"trace_config.overrides.petersburg_block","description":"petersburg_block: Petersburg switch block (nil same as Constantinople).","in":"query","required":false,"type":"string"},{"name":"trace_config.overrides.istanbul_block","description":"istanbul_block: Istanbul switch block (nil no fork, 0 = already on\nistanbul).","in":"query","required":false,"type":"string"},{"name":"trace_config.overrides.muir_glacier_block","description":"muir_glacier_block: Eip-2384 (bomb delay) switch block (nil no fork, 0 =\nalready activated).","in":"query","required":false,"type":"string"},{"name":"trace_config.overrides.berlin_block","description":"berlin_block: Berlin switch block (nil = no fork, 0 = already on berlin).","in":"query","required":false,"type":"string"},{"name":"trace_config.overrides.london_block","description":"london_block: London switch block (nil = no fork, 0 = already on london).","in":"query","required":false,"type":"string"},{"name":"trace_config.overrides.arrow_glacier_block","description":"arrow_glacier_block: Eip-4345 (bomb delay) switch block (nil = no fork, 0 =\nalready activated).","in":"query","required":false,"type":"string"},{"name":"trace_config.overrides.gray_glacier_block","description":"gray_glacier_block: EIP-5133 (bomb delay) switch block (nil = no fork, 0 =\nalready activated).","in":"query","required":false,"type":"string"},{"name":"trace_config.overrides.merge_netsplit_block","description":"merge_netsplit_block: Virtual fork after The Merge to use as a network\nsplitter.","in":"query","required":false,"type":"string"},{"name":"trace_config.overrides.shanghai_block","description":"shanghai_block switch block (nil = no fork, 0 = already on shanghai).","in":"query","required":false,"type":"string"},{"name":"trace_config.overrides.cancun_block","description":"cancun_block switch block (nil = no fork, 0 = already on cancun).","in":"query","required":false,"type":"string"},{"name":"trace_config.overrides.chain_id","description":"chain_id is the id of the chain (EIP-155).","in":"query","required":false,"type":"string","format":"uint64"},{"name":"trace_config.overrides.denom","description":"denom is the denomination used on the EVM.","in":"query","required":false,"type":"string"},{"name":"trace_config.overrides.decimals","description":"decimals is the real decimal precision of the denomination used on the EVM.","in":"query","required":false,"type":"string","format":"uint64"},{"name":"trace_config.enable_memory","description":"enable_memory switches memory capture.","in":"query","required":false,"type":"boolean"},{"name":"trace_config.enable_return_data","description":"enable_return_data switches the capture of return data.","in":"query","required":false,"type":"boolean"},{"name":"trace_config.tracer_json_config","description":"tracer_json_config configures the tracer using a JSON string.","in":"query","required":false,"type":"string"},{"name":"block_number","description":"block_number of requested transaction.","in":"query","required":false,"type":"string","format":"int64"},{"name":"block_hash","description":"block_hash of requested transaction.","in":"query","required":false,"type":"string"},{"name":"block_time","description":"block_time of requested transaction.","in":"query","required":false,"type":"string","format":"date-time"},{"name":"proposer_address","description":"proposer_address is the proposer of the requested block.","in":"query","required":false,"type":"string","format":"byte"},{"name":"chain_id","description":"chain_id is the eip155 chain id parsed from the requested block header.","in":"query","required":false,"type":"string","format":"int64"},{"name":"block_max_gas","description":"block_max_gas of the block of the requested transaction.","in":"query","required":false,"type":"string","format":"int64"}],"tags":["Query"]}}}}
```

## GET /cosmos/evm/vm/v1/validator\_account/{cons\_address}

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

```json
{"openapi":"3.1.1","info":{"title":"Kiichain - HTTP API Console","version":"v1"},"servers":[{"url":"https://lcd.uno.sentry.testnet.v3.kiivalidator.com"}],"paths":{"/cosmos/evm/vm/v1/validator_account/{cons_address}":{"get":{"summary":"ValidatorAccount queries an Ethereum account's from a validator consensus\nAddress.","operationId":"ValidatorAccount","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"type":"object","properties":{"account_address":{"type":"string","description":"account_address is the cosmos address of the account in bech32 format."},"sequence":{"type":"string","format":"uint64","description":"sequence is the account's sequence number."},"account_number":{"type":"string","format":"uint64","title":"account_number is the account number"}},"description":"QueryValidatorAccountResponse is the response type for the\nQuery/ValidatorAccount RPC method."}}}},"default":{"description":"An unexpected error response.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"details":{"type":"array","items":{"type":"object","properties":{"type_url":{"type":"string","description":"A URL/resource name that uniquely identifies the type of the serialized\nprotocol buffer message. This string must contain at least\none \"/\" character. The last segment of the URL's path must represent\nthe fully qualified name of the type (as in\n`path/google.protobuf.Duration`). The name should be in a canonical form\n(e.g., leading \".\" is not accepted).\n\nIn practice, teams usually precompile into the binary all types that they\nexpect it to use in the context of Any. However, for URLs which use the\nscheme `http`, `https`, or no scheme, one can optionally set up a type\nserver that maps type URLs to message definitions as follows:\n\n* If no scheme is provided, `https` is assumed.\n* An HTTP GET on the URL must yield a [google.protobuf.Type][]\n  value in binary format, or produce an error.\n* Applications are allowed to cache lookup results based on the\n  URL, or have them precompiled into a binary to avoid any\n  lookup. Therefore, binary compatibility needs to be preserved\n  on changes to types. (Use versioned type names to manage\n  breaking changes.)\n\nNote: this functionality is not currently available in the official\nprotobuf release, and it is not used for type URLs beginning with\ntype.googleapis.com.\n\nSchemes other than `http`, `https` (or the empty scheme) might be\nused with implementation specific semantics."},"value":{"type":"string","format":"byte","description":"Must be a valid serialized protocol buffer of the above specified type."}},"description":"`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nProtobuf library provides support to pack/unpack Any values in the form\nof utility functions or additional generated methods of the Any type.\n\nExample 1: Pack and unpack a message in C++.\n\n    Foo foo = ...;\n    Any any;\n    any.PackFrom(foo);\n    ...\n    if (any.UnpackTo(&foo)) {\n      ...\n    }\n\nExample 2: Pack and unpack a message in Java.\n\n    Foo foo = ...;\n    Any any = Any.pack(foo);\n    ...\n    if (any.is(Foo.class)) {\n      foo = any.unpack(Foo.class);\n    }\n    // or ...\n    if (any.isSameTypeAs(Foo.getDefaultInstance())) {\n      foo = any.unpack(Foo.getDefaultInstance());\n    }\n\nExample 3: Pack and unpack a message in Python.\n\n    foo = Foo(...)\n    any = Any()\n    any.Pack(foo)\n    ...\n    if any.Is(Foo.DESCRIPTOR):\n      any.Unpack(foo)\n      ...\n\nExample 4: Pack and unpack a message in Go\n\n     foo := &pb.Foo{...}\n     any, err := anypb.New(foo)\n     if err != nil {\n       ...\n     }\n     ...\n     foo := &pb.Foo{}\n     if err := any.UnmarshalTo(foo); err != nil {\n       ...\n     }\n\nThe pack methods provided by protobuf library will by default use\n'type.googleapis.com/full.type.name' as the type URL and the unpack\nmethods only use the fully qualified type name after the last '/'\nin the type URL, for example \"foo.bar.com/x/y.z\" will yield type\nname \"y.z\".\n\nJSON\n\nThe JSON representation of an `Any` value uses the regular\nrepresentation of the deserialized, embedded message, with an\nadditional field `@type` which contains the type URL. Example:\n\n    package google.profile;\n    message Person {\n      string first_name = 1;\n      string last_name = 2;\n    }\n\n    {\n      \"@type\": \"type.googleapis.com/google.profile.Person\",\n      \"firstName\": <string>,\n      \"lastName\": <string>\n    }\n\nIf the embedded message type is well-known and has a custom JSON\nrepresentation, that representation will be embedded adding a field\n`value` which holds the custom JSON in addition to the `@type`\nfield. Example (for message [google.protobuf.Duration][]):\n\n    {\n      \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n      \"value\": \"1.212s\"\n    }"}}}}}}}},"parameters":[{"name":"cons_address","description":"cons_address is the validator cons address to query the account for.","in":"path","required":true,"type":"string"}],"tags":["Query"]}}}}
```
