# BlockState Types

## `BlockState.BlockState`

State a block's transactions changed, gathered across all of them.

Each entry spans the block rather than a transaction: `original` is the value before the block, `current` the value after its last transaction touched it. Every collection enumerates deterministically.

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

## `BlockState.Token`

Identifies an accumulator being gathered.

evm2 accumulates in Rust, so the accumulator itself cannot cross the boundary and this stands in for it. Hold it from [`Evm.startBlockState`](/evm/execution/Evm/startBlockState) until [`Evm.takeBlockState`](/evm/execution/Evm/takeBlockState), which consumes it.

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