# Parameters

The evm module contains the following parameters:

### Params <a href="#params" id="params"></a>

| Key            | Type        | Default Value   |
| -------------- | ----------- | --------------- |
| `EVMDenom`     | string      | `"aphoton"`     |
| `EnableCreate` | bool        | `true`          |
| `EnableCall`   | bool        | `true`          |
| `ExtraEIPs`    | \[]int      | TBD             |
| `ChainConfig`  | ChainConfig | See ChainConfig |

### EVM denom <a href="#evm-denom" id="evm-denom"></a>

The evm denomination parameter defines the token denomination used on the EVM state transitions and gas consumption for EVM messages.

For example, on Ethereum, the `evm_denom` would be `ETH`. In the case of Ethermint, the default denomination is the [**atto photon**](https://docs.evmos.org/modules/evm/notion://www.notion.so/docs/basics/photon.html) (used on the BlockX testnets). In terms of precision, the `PHOTON` and `ETH` share the same value, *i.e* `1 PHOTON = 10^18 atto photon` and `1 ETH = 10^18 wei`.

{% hint style="info" %}
SDK applications that want to import the EVM module as a dependency will need to set their own `evm_denom` (i.e not `"aphoton"`).
{% endhint %}

### Enable Create <a href="#enable-create" id="enable-create"></a>

The enable create parameter toggles state transitions that use the `vm.Create` function. When the parameter is disabled, it will prevent all contract creation functionality.

### Enable Transfer <a href="#enable-transfer" id="enable-transfer"></a>

The enable transfer toggles state transitions that use the `vm.Call` function. When the parameter is disabled, it will prevent transfers between accounts and executing a smart contract call.

### Extra EIPs <a href="#extra-eips" id="extra-eips"></a>

The extra EIPs parameter defines the set of activateable Ethereum Improvement Proposals) on the Ethereum VM `Config` that apply custom jump tables.

{% hint style="info" %}
Note that some of these EIPs are already enabled by the chain configuration, depending on the hard fork number.
{% endhint %}

The supported activateable EIPS are:

* [**EIP 1344** ](https://eips.ethereum.org/EIPS/eip-1344)
* [**EIP 1884** ](https://eips.ethereum.org/EIPS/eip-1884)
* [**EIP 2200** ](https://eips.ethereum.org/EIPS/eip-2200)
* [**EIP 2315** ](https://eips.ethereum.org/EIPS/eip-2315)
* [**EIP 2929** ](https://eips.ethereum.org/EIPS/eip-2929)
* [**EIP 3198** ](https://eips.ethereum.org/EIPS/eip-3198)
* [**EIP 3529** ](https://eips.ethereum.org/EIPS/eip-3529)

### Chain Config <a href="#chain-config" id="chain-config"></a>

The `ChainConfig` is a protobuf wrapper type that contains the same fields as the go-ethereum `ChainConfig` parameters, but using `*sdk.Int` types instead of `*big.Int`.

By default, all block configuration fields but `ConstantinopleBlock`, are enabled at genesis (height 0).

#### ChainConfig Defaults <a href="#chainconfig-defaults" id="chainconfig-defaults"></a>

| Name                | Default Value                                                        |
| ------------------- | -------------------------------------------------------------------- |
| HomesteadBlock      | 0                                                                    |
| DAOForkBlock        | 0                                                                    |
| DAOForkSupport      | `true`                                                               |
| EIP150Block         | 0                                                                    |
| EIP150Hash          | `0x0000000000000000000000000000000000000000000000000000000000000000` |
| EIP155Block         | 0                                                                    |
| EIP158Block         | 0                                                                    |
| ByzantiumBlock      | 0                                                                    |
| ConstantinopleBlock | 0                                                                    |
| PetersburgBlock     | 0                                                                    |
| IstanbulBlock       | 0                                                                    |
| MuirGlacierBlock    | 0                                                                    |
| BerlinBlock         | 0                                                                    |
| LondonBlock         | 0                                                                    |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.metanovaverse.com/protocol-developers/modules/evm/parameters.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
