> ## 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/ProtocolVersion

> Auto-generated API documentation

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

***

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

# primitives/ProtocolVersion

## Type Aliases

### ProtocolVersionType

> **ProtocolVersionType** = `string` & `object`

Defined in: [src/primitives/ProtocolVersion/ProtocolVersionType.ts:14](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/ProtocolVersion/ProtocolVersionType.ts#L14)

Branded ProtocolVersion type - Ethereum protocol version identifier
Wraps a string representing a protocol version (e.g., "eth/67", "eth/68")

Protocol versions identify the version of the Ethereum wire protocol
used for peer-to-peer communication:

* "eth/66" = ETH66 protocol
* "eth/67" = ETH67 protocol (current standard)
* "eth/68" = ETH68 protocol
* "snap/1" = Snapshot protocol

#### Type Declaration

##### \[brand]

> `readonly` **\[brand]**: `"ProtocolVersion"`

## Variables

### ETH\_66

> `const` **ETH\_66**: [`ProtocolVersionType`](#protocolversiontype)

Defined in: [src/primitives/ProtocolVersion/constants.js:6](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/ProtocolVersion/constants.js#L6)

***

### ETH\_67

> `const` **ETH\_67**: [`ProtocolVersionType`](#protocolversiontype)

Defined in: [src/primitives/ProtocolVersion/constants.js:12](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/ProtocolVersion/constants.js#L12)

***

### ETH\_68

> `const` **ETH\_68**: [`ProtocolVersionType`](#protocolversiontype)

Defined in: [src/primitives/ProtocolVersion/constants.js:18](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/ProtocolVersion/constants.js#L18)

***

### ProtocolVersion

> `const` **ProtocolVersion**: `object`

Defined in: [src/primitives/ProtocolVersion/index.ts:40](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/ProtocolVersion/index.ts#L40)

#### Type Declaration

##### compare()

> **compare**: (`protocolVersion1`, `protocolVersion2`) => `number`

###### Parameters

###### protocolVersion1

`string`

###### protocolVersion2

`string`

###### Returns

`number`

##### equals()

> **equals**: (`protocolVersion1`, `protocolVersion2`) => `boolean`

###### Parameters

###### protocolVersion1

`string`

###### protocolVersion2

`string`

###### Returns

`boolean`

##### from()

> **from**: (`value`) => [`ProtocolVersionType`](#protocolversiontype)

Create ProtocolVersion from string

###### Parameters

###### value

`string`

Protocol version string (e.g., "eth/67", "snap/1")

###### Returns

[`ProtocolVersionType`](#protocolversiontype)

Branded protocol version

###### Throws

If value is not a valid protocol version format

###### Example

```javascript theme={null}
import * as ProtocolVersion from './primitives/ProtocolVersion/index.js';
const eth67 = ProtocolVersion.from("eth/67");
const snap1 = ProtocolVersion.from("snap/1");
```

##### toString()

> **toString**: (`protocolVersion`) => `string`

###### Parameters

###### protocolVersion

`string`

###### Returns

`string`

***

### SNAP\_1

> `const` **SNAP\_1**: [`ProtocolVersionType`](#protocolversiontype)

Defined in: [src/primitives/ProtocolVersion/constants.js:24](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/ProtocolVersion/constants.js#L24)

## Functions

### \_compare()

> **\_compare**(`this`, `other`): `number`

Defined in: [src/primitives/ProtocolVersion/compare.js:20](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/ProtocolVersion/compare.js#L20)

Compare two ProtocolVersions for ordering
Returns negative if this \< other, positive if this > other, 0 if equal

Only compares versions within the same protocol family (e.g., eth/66 vs eth/67)
Returns 0 for different protocols

#### Parameters

##### this

[`ProtocolVersionType`](#protocolversiontype)

##### other

[`ProtocolVersionType`](#protocolversiontype)

Protocol version to compare

#### Returns

`number`

Comparison result (-1, 0, or 1)

#### Example

```javascript theme={null}
import * as ProtocolVersion from './primitives/ProtocolVersion/index.js';
const v66 = ProtocolVersion.from("eth/66");
const v67 = ProtocolVersion.from("eth/67");
const result = ProtocolVersion._compare.call(v66, v67); // -1
```

***

### \_equals()

> **\_equals**(`this`, `other`): `boolean`

Defined in: [src/primitives/ProtocolVersion/equals.js:16](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/ProtocolVersion/equals.js#L16)

Compare two ProtocolVersions for equality

#### Parameters

##### this

[`ProtocolVersionType`](#protocolversiontype)

##### other

[`ProtocolVersionType`](#protocolversiontype)

Protocol version to compare

#### Returns

`boolean`

True if equal

#### Example

```javascript theme={null}
import * as ProtocolVersion from './primitives/ProtocolVersion/index.js';
const a = ProtocolVersion.from("eth/67");
const b = ProtocolVersion.from("eth/67");
const equal = ProtocolVersion._equals.call(a, b); // true
```

***

### \_toString()

> **\_toString**(`this`): `string`

Defined in: [src/primitives/ProtocolVersion/toString.js:15](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/ProtocolVersion/toString.js#L15)

Convert ProtocolVersion to string (identity function for branded type)

#### Parameters

##### this

[`ProtocolVersionType`](#protocolversiontype)

#### Returns

`string`

Protocol version as string

#### Example

```javascript theme={null}
import * as ProtocolVersion from './primitives/ProtocolVersion/index.js';
const proto = ProtocolVersion.from("eth/67");
const str = ProtocolVersion._toString.call(proto); // "eth/67"
```

***

### compare()

> **compare**(`protocolVersion1`, `protocolVersion2`): `number`

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

#### Parameters

##### protocolVersion1

`string`

##### protocolVersion2

`string`

#### Returns

`number`

***

### equals()

> **equals**(`protocolVersion1`, `protocolVersion2`): `boolean`

Defined in: [src/primitives/ProtocolVersion/index.ts:22](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/ProtocolVersion/index.ts#L22)

#### Parameters

##### protocolVersion1

`string`

##### protocolVersion2

`string`

#### Returns

`boolean`

***

### from()

> **from**(`value`): [`ProtocolVersionType`](#protocolversiontype)

Defined in: [src/primitives/ProtocolVersion/from.js:17](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/ProtocolVersion/from.js#L17)

Create ProtocolVersion from string

#### Parameters

##### value

`string`

Protocol version string (e.g., "eth/67", "snap/1")

#### Returns

[`ProtocolVersionType`](#protocolversiontype)

Branded protocol version

#### Throws

If value is not a valid protocol version format

#### Example

```javascript theme={null}
import * as ProtocolVersion from './primitives/ProtocolVersion/index.js';
const eth67 = ProtocolVersion.from("eth/67");
const snap1 = ProtocolVersion.from("snap/1");
```

***

### toString()

> **toString**(`protocolVersion`): `string`

Defined in: [src/primitives/ProtocolVersion/index.ts:18](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/ProtocolVersion/index.ts#L18)

#### Parameters

##### protocolVersion

`string`

#### Returns

`string`
