# Evm Types

## `Evm.Awaitable`

A value an operation returns, wrapped in a promise when reads are asynchronous.

**Source:** [src/evm/Evm.ts](https://github.com/wevm/ox/blob/main/src/evm/Evm.ts#L94)

## `Evm.Block`

Block values opcodes read.

**Source:** [src/evm/Evm.ts](https://github.com/wevm/ox/blob/main/src/evm/Evm.ts#L114)

## `Evm.Evm`

An EVM.

Owns its specification, block environment, and the state accepted above its database. One EVM is one isolated engine: creating a second does not share state with the first.

**Source:** [src/evm/Evm.ts](https://github.com/wevm/ox/blob/main/src/evm/Evm.ts#L62)

## `Evm.Feature`

Feature flags a version can turn on or off.

**Source:** [src/evm/Evm.ts](https://github.com/wevm/ox/blob/main/src/evm/Evm.ts#L108)

## `Evm.GasId`

Gas parameters a version can replace.

**Source:** [src/evm/Evm.ts](https://github.com/wevm/ox/blob/main/src/evm/Evm.ts#L111)

## `Evm.Version`

Version values an execution runs under.

Mirrors evm2's `Version`, minus the chain id, which `chainId` carries. Every field is optional: what is omitted keeps the value the specification gives it.

**Source:** [src/evm/Evm.ts](https://github.com/wevm/ox/blob/main/src/evm/Evm.ts#L105)
