# 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#L95)

## `Evm.Block`

Block values opcodes read.

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

## `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#L63)

## `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#L109)

## `Evm.GasId`

Gas parameters a version can replace.

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

## `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#L106)
