> ## Documentation Index
> Fetch the complete documentation index at: https://voltaire.tevm.sh/llms.txt
> Use this file to discover all available pages before exploring further.

# primitives/BlockHeader

> Auto-generated API documentation

[**@tevm/voltaire**](../index.mdx)

***

[@tevm/voltaire](../index.mdx) / primitives/BlockHeader

# primitives/BlockHeader

## Type Aliases

### BlockHeaderType

> **BlockHeaderType** = `object`

Defined in: [src/primitives/BlockHeader/BlockHeaderType.ts:17](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/BlockHeader/BlockHeaderType.ts#L17)

BlockHeader type - represents Ethereum block header

Contains all metadata and Merkle roots for a block.
Used for block validation and light client proofs.

#### See

* [https://voltaire.tevm.sh/primitives/block-header](https://voltaire.tevm.sh/primitives/block-header) for BlockHeader documentation
* [https://ethereum.org/en/developers/docs/blocks/](https://ethereum.org/en/developers/docs/blocks/) for block documentation

#### Since

0.0.0

#### Properties

##### baseFeePerGas?

> `readonly` `optional` **baseFeePerGas**: [`Type`](Uint.mdx#type)

Defined in: [src/primitives/BlockHeader/BlockHeaderType.ts:49](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/BlockHeader/BlockHeaderType.ts#L49)

EIP-1559: Base fee per gas (post-London)

##### beneficiary

> `readonly` **beneficiary**: [`AddressType`](Address.mdx#addresstype)

Defined in: [src/primitives/BlockHeader/BlockHeaderType.ts:23](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/BlockHeader/BlockHeaderType.ts#L23)

Address receiving block reward (miner/validator)

##### blobGasUsed?

> `readonly` `optional` **blobGasUsed**: [`Type`](Uint.mdx#type)

Defined in: [src/primitives/BlockHeader/BlockHeaderType.ts:53](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/BlockHeader/BlockHeaderType.ts#L53)

EIP-4844: Total blob gas used (post-Cancun)

##### difficulty

> `readonly` **difficulty**: [`Type`](Uint.mdx#type)

Defined in: [src/primitives/BlockHeader/BlockHeaderType.ts:33](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/BlockHeader/BlockHeaderType.ts#L33)

Proof-of-work difficulty (0 post-merge)

##### excessBlobGas?

> `readonly` `optional` **excessBlobGas**: [`Type`](Uint.mdx#type)

Defined in: [src/primitives/BlockHeader/BlockHeaderType.ts:55](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/BlockHeader/BlockHeaderType.ts#L55)

EIP-4844: Excess blob gas (post-Cancun)

##### extraData

> `readonly` **extraData**: `Uint8Array`

Defined in: [src/primitives/BlockHeader/BlockHeaderType.ts:43](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/BlockHeader/BlockHeaderType.ts#L43)

Arbitrary data (max 32 bytes)

##### gasLimit

> `readonly` **gasLimit**: [`Type`](Uint.mdx#type)

Defined in: [src/primitives/BlockHeader/BlockHeaderType.ts:37](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/BlockHeader/BlockHeaderType.ts#L37)

Maximum gas allowed in block

##### gasUsed

> `readonly` **gasUsed**: [`Type`](Uint.mdx#type)

Defined in: [src/primitives/BlockHeader/BlockHeaderType.ts:39](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/BlockHeader/BlockHeaderType.ts#L39)

Total gas used by transactions

##### logsBloom

> `readonly` **logsBloom**: `Uint8Array`

Defined in: [src/primitives/BlockHeader/BlockHeaderType.ts:31](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/BlockHeader/BlockHeaderType.ts#L31)

Bloom filter for logs (256 bytes)

##### mixHash

> `readonly` **mixHash**: [`HashType`](../index/namespaces/HashType.mdx#hashtype)

Defined in: [src/primitives/BlockHeader/BlockHeaderType.ts:45](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/BlockHeader/BlockHeaderType.ts#L45)

PoW mix hash (0 post-merge)

##### nonce

> `readonly` **nonce**: `Uint8Array`

Defined in: [src/primitives/BlockHeader/BlockHeaderType.ts:47](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/BlockHeader/BlockHeaderType.ts#L47)

PoW nonce (8 bytes, 0 post-merge)

##### number

> `readonly` **number**: [`BlockNumberType`](BlockNumber.mdx#blocknumbertype)

Defined in: [src/primitives/BlockHeader/BlockHeaderType.ts:35](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/BlockHeader/BlockHeaderType.ts#L35)

Block number

##### ommersHash

> `readonly` **ommersHash**: [`HashType`](../index/namespaces/HashType.mdx#hashtype)

Defined in: [src/primitives/BlockHeader/BlockHeaderType.ts:21](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/BlockHeader/BlockHeaderType.ts#L21)

Keccak256 hash of ommers/uncles list RLP

##### parentBeaconBlockRoot?

> `readonly` `optional` **parentBeaconBlockRoot**: [`HashType`](../index/namespaces/HashType.mdx#hashtype)

Defined in: [src/primitives/BlockHeader/BlockHeaderType.ts:57](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/BlockHeader/BlockHeaderType.ts#L57)

EIP-4788: Parent beacon block root (post-Cancun)

##### parentHash

> `readonly` **parentHash**: [`BlockHashType`](BlockHash.mdx#blockhashtype)

Defined in: [src/primitives/BlockHeader/BlockHeaderType.ts:19](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/BlockHeader/BlockHeaderType.ts#L19)

Hash of parent block

##### receiptsRoot

> `readonly` **receiptsRoot**: [`HashType`](../index/namespaces/HashType.mdx#hashtype)

Defined in: [src/primitives/BlockHeader/BlockHeaderType.ts:29](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/BlockHeader/BlockHeaderType.ts#L29)

Receipts trie root

##### stateRoot

> `readonly` **stateRoot**: [`HashType`](../index/namespaces/HashType.mdx#hashtype)

Defined in: [src/primitives/BlockHeader/BlockHeaderType.ts:25](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/BlockHeader/BlockHeaderType.ts#L25)

State trie root after block execution

##### timestamp

> `readonly` **timestamp**: [`Type`](Uint.mdx#type)

Defined in: [src/primitives/BlockHeader/BlockHeaderType.ts:41](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/BlockHeader/BlockHeaderType.ts#L41)

Unix timestamp (seconds)

##### transactionsRoot

> `readonly` **transactionsRoot**: [`HashType`](../index/namespaces/HashType.mdx#hashtype)

Defined in: [src/primitives/BlockHeader/BlockHeaderType.ts:27](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/BlockHeader/BlockHeaderType.ts#L27)

Transactions trie root

##### withdrawalsRoot?

> `readonly` `optional` **withdrawalsRoot**: [`HashType`](../index/namespaces/HashType.mdx#hashtype)

Defined in: [src/primitives/BlockHeader/BlockHeaderType.ts:51](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/BlockHeader/BlockHeaderType.ts#L51)

Post-merge: Withdrawals trie root (post-Shanghai)

## Variables

### BlockHeader

> `const` **BlockHeader**: `object`

Defined in: [src/primitives/BlockHeader/index.ts:37](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/BlockHeader/index.ts#L37)

#### Type Declaration

##### from()

> **from**: (`params`) => [`BlockHeaderType`](#blockheadertype)

###### Parameters

###### params

###### baseFeePerGas?

`string` | `number` | `bigint`

###### beneficiary

`string` | [`AddressType`](Address.mdx#addresstype)

###### blobGasUsed?

`string` | `number` | `bigint`

###### difficulty

`string` | `number` | `bigint`

###### excessBlobGas?

`string` | `number` | `bigint`

###### extraData

`Uint8Array`

###### gasLimit

`string` | `number` | `bigint`

###### gasUsed

`string` | `number` | `bigint`

###### logsBloom

`Uint8Array`

###### mixHash

`string` | [`HashType`](../index/namespaces/HashType.mdx#hashtype)

###### nonce

`Uint8Array`

###### number

`number` | `bigint`

###### ommersHash

`string` | [`HashType`](../index/namespaces/HashType.mdx#hashtype)

###### parentBeaconBlockRoot?

`string` | [`HashType`](../index/namespaces/HashType.mdx#hashtype)

###### parentHash

`string` | [`BlockHashType`](BlockHash.mdx#blockhashtype)

###### receiptsRoot

`string` | [`HashType`](../index/namespaces/HashType.mdx#hashtype)

###### stateRoot

`string` | [`HashType`](../index/namespaces/HashType.mdx#hashtype)

###### timestamp

`string` | `number` | `bigint`

###### transactionsRoot

`string` | [`HashType`](../index/namespaces/HashType.mdx#hashtype)

###### withdrawalsRoot?

`string` | [`HashType`](../index/namespaces/HashType.mdx#hashtype)

###### Returns

[`BlockHeaderType`](#blockheadertype)

## Functions

### \_from()

> **\_from**(`params`): [`BlockHeaderType`](#blockheadertype)

Defined in: [src/primitives/BlockHeader/from.js:63](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/BlockHeader/from.js#L63)

Create BlockHeader from components

#### Parameters

##### params

`BlockHeaderParams`

BlockHeader parameters

#### Returns

[`BlockHeaderType`](#blockheadertype)

BlockHeader

#### Example

```typescript theme={null}
const header = BlockHeader.from({
  parentHash: "0x1234...",
  ommersHash: "0x5678...",
  beneficiary: "0xabcd...",
  stateRoot: "0xef01...",
  transactionsRoot: "0x2345...",
  receiptsRoot: "0x6789...",
  logsBloom: new Uint8Array(256),
  difficulty: 0n,
  number: 12345n,
  gasLimit: 30000000n,
  gasUsed: 21000n,
  timestamp: 1234567890n,
  extraData: new Uint8Array(0),
  mixHash: "0xabcd...",
  nonce: new Uint8Array(8),
  baseFeePerGas: 1000000000n, // EIP-1559
  withdrawalsRoot: "0xdef0...", // Post-Shanghai
  blobGasUsed: 262144n, // EIP-4844
  excessBlobGas: 0n, // EIP-4844
  parentBeaconBlockRoot: "0x0123..." // EIP-4788
});
```

***

### from()

> **from**(`params`): [`BlockHeaderType`](#blockheadertype)

Defined in: [src/primitives/BlockHeader/index.ts:11](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/BlockHeader/index.ts#L11)

#### Parameters

##### params

###### baseFeePerGas?

`string` | `number` | `bigint`

###### beneficiary

`string` | [`AddressType`](Address.mdx#addresstype)

###### blobGasUsed?

`string` | `number` | `bigint`

###### difficulty

`string` | `number` | `bigint`

###### excessBlobGas?

`string` | `number` | `bigint`

###### extraData

`Uint8Array`

###### gasLimit

`string` | `number` | `bigint`

###### gasUsed

`string` | `number` | `bigint`

###### logsBloom

`Uint8Array`

###### mixHash

`string` | [`HashType`](../index/namespaces/HashType.mdx#hashtype)

###### nonce

`Uint8Array`

###### number

`number` | `bigint`

###### ommersHash

`string` | [`HashType`](../index/namespaces/HashType.mdx#hashtype)

###### parentBeaconBlockRoot?

`string` | [`HashType`](../index/namespaces/HashType.mdx#hashtype)

###### parentHash

`string` | [`BlockHashType`](BlockHash.mdx#blockhashtype)

###### receiptsRoot

`string` | [`HashType`](../index/namespaces/HashType.mdx#hashtype)

###### stateRoot

`string` | [`HashType`](../index/namespaces/HashType.mdx#hashtype)

###### timestamp

`string` | `number` | `bigint`

###### transactionsRoot

`string` | [`HashType`](../index/namespaces/HashType.mdx#hashtype)

###### withdrawalsRoot?

`string` | [`HashType`](../index/namespaces/HashType.mdx#hashtype)

#### Returns

[`BlockHeaderType`](#blockheadertype)
