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

> Auto-generated API documentation

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

***

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

# primitives/BinaryTree

## Classes

### InvalidAddressLengthError

Defined in: [src/primitives/BinaryTree/errors.js:19](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/BinaryTree/errors.js#L19)

Error thrown when an invalid address length is provided

#### Example

```typescript theme={null}
throw new InvalidAddressLengthError(
  'Address must be 20 bytes',
  {
    value: addr.length,
    expected: '20 bytes',
    code: 'BINARY_TREE_INVALID_ADDRESS_LENGTH',
    docsPath: '/primitives/binary-tree/address-to-key#error-handling'
  }
)
```

#### Extends

* [`InvalidLengthError`](../index/index.mdx#invalidlengtherror)

#### Constructors

##### Constructor

> **new InvalidAddressLengthError**(`message?`, `options?`): [`InvalidAddressLengthError`](#invalidaddresslengtherror)

Defined in: [src/primitives/BinaryTree/errors.js:30](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/BinaryTree/errors.js#L30)

###### Parameters

###### message?

`string`

###### options?

###### cause?

`Error`

###### code?

`string`

###### context?

`Record`\<`string`, `unknown`>

###### docsPath?

`string`

###### expected?

`string`

###### value?

`unknown`

###### Returns

[`InvalidAddressLengthError`](#invalidaddresslengtherror)

###### Overrides

[`InvalidLengthError`](../index/index.mdx#invalidlengtherror).[`constructor`](../index/index.mdx#constructor-8)

#### Properties

##### cause?

> `optional` **cause**: `Error`

Defined in: [src/primitives/errors/AbstractError.ts:56](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/errors/AbstractError.ts#L56)

Root cause of this error (for error chaining)

###### Inherited from

[`InvalidLengthError`](../index/index.mdx#invalidlengtherror).[`cause`](../index/index.mdx#cause-8)

##### code

> **code**: `string`

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

Machine-readable error code for programmatic handling

###### Example

```ts theme={null}
'INVALID_FORMAT', 'INVALID_LENGTH'
```

###### Inherited from

[`InvalidLengthError`](../index/index.mdx#invalidlengtherror).[`code`](../index/index.mdx#code-8)

##### context?

> `optional` **context**: `Record`\<`string`, `unknown`>

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

Additional context metadata for debugging

###### Example

```ts theme={null}
{ value: '0x123', expected: '20 bytes' }
```

###### Inherited from

[`InvalidLengthError`](../index/index.mdx#invalidlengtherror).[`context`](../index/index.mdx#context-8)

##### docsPath?

> `optional` **docsPath**: `string`

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

Path to documentation for this error

###### Example

```ts theme={null}
'/primitives/address/from-hex#error-handling'
```

###### Inherited from

[`InvalidLengthError`](../index/index.mdx#invalidlengtherror).[`docsPath`](../index/index.mdx#docspath-8)

##### expected

> **expected**: `string`

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

###### Inherited from

[`InvalidLengthError`](../index/index.mdx#invalidlengtherror).[`expected`](../index/index.mdx#expected-4)

##### name

> **name**: `string`

Defined in: [src/primitives/BinaryTree/errors.js:41](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/BinaryTree/errors.js#L41)

###### Inherited from

`InvalidLengthError.name`

##### value

> **value**: `unknown`

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

###### Inherited from

[`InvalidLengthError`](../index/index.mdx#invalidlengtherror).[`value`](../index/index.mdx#value-4)

#### Methods

##### getErrorChain()

> **getErrorChain**(): `string`

Defined in: [src/primitives/errors/AbstractError.ts:94](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/errors/AbstractError.ts#L94)

Get full error chain as string for logging

###### Returns

`string`

###### Inherited from

[`InvalidLengthError`](../index/index.mdx#invalidlengtherror).[`getErrorChain`](../index/index.mdx#geterrorchain-16)

##### toJSON()

> **toJSON**(): `Record`\<`string`, `unknown`>

Defined in: [src/primitives/errors/AbstractError.ts:110](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/errors/AbstractError.ts#L110)

Serialize error to JSON for logging/telemetry

###### Returns

`Record`\<`string`, `unknown`>

###### Inherited from

[`InvalidLengthError`](../index/index.mdx#invalidlengtherror).[`toJSON`](../index/index.mdx#tojson-16)

***

### InvalidKeyLengthError

Defined in: [src/primitives/BinaryTree/errors.js:61](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/BinaryTree/errors.js#L61)

Error thrown when an invalid key length is provided

#### Example

```typescript theme={null}
throw new InvalidKeyLengthError(
  'Key must be 32 bytes',
  {
    value: key.length,
    expected: '32 bytes',
    code: 'BINARY_TREE_INVALID_KEY_LENGTH',
    docsPath: '/primitives/binary-tree/split-key#error-handling'
  }
)
```

#### Extends

* [`InvalidLengthError`](../index/index.mdx#invalidlengtherror)

#### Constructors

##### Constructor

> **new InvalidKeyLengthError**(`message?`, `options?`): [`InvalidKeyLengthError`](#invalidkeylengtherror)

Defined in: [src/primitives/BinaryTree/errors.js:72](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/BinaryTree/errors.js#L72)

###### Parameters

###### message?

`string`

###### options?

###### cause?

`Error`

###### code?

`string`

###### context?

`Record`\<`string`, `unknown`>

###### docsPath?

`string`

###### expected?

`string`

###### value?

`unknown`

###### Returns

[`InvalidKeyLengthError`](#invalidkeylengtherror)

###### Overrides

[`InvalidLengthError`](../index/index.mdx#invalidlengtherror).[`constructor`](../index/index.mdx#constructor-8)

#### Properties

##### cause?

> `optional` **cause**: `Error`

Defined in: [src/primitives/errors/AbstractError.ts:56](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/errors/AbstractError.ts#L56)

Root cause of this error (for error chaining)

###### Inherited from

[`InvalidLengthError`](../index/index.mdx#invalidlengtherror).[`cause`](../index/index.mdx#cause-8)

##### code

> **code**: `string`

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

Machine-readable error code for programmatic handling

###### Example

```ts theme={null}
'INVALID_FORMAT', 'INVALID_LENGTH'
```

###### Inherited from

[`InvalidLengthError`](../index/index.mdx#invalidlengtherror).[`code`](../index/index.mdx#code-8)

##### context?

> `optional` **context**: `Record`\<`string`, `unknown`>

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

Additional context metadata for debugging

###### Example

```ts theme={null}
{ value: '0x123', expected: '20 bytes' }
```

###### Inherited from

[`InvalidLengthError`](../index/index.mdx#invalidlengtherror).[`context`](../index/index.mdx#context-8)

##### docsPath?

> `optional` **docsPath**: `string`

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

Path to documentation for this error

###### Example

```ts theme={null}
'/primitives/address/from-hex#error-handling'
```

###### Inherited from

[`InvalidLengthError`](../index/index.mdx#invalidlengtherror).[`docsPath`](../index/index.mdx#docspath-8)

##### expected

> **expected**: `string`

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

###### Inherited from

[`InvalidLengthError`](../index/index.mdx#invalidlengtherror).[`expected`](../index/index.mdx#expected-4)

##### name

> **name**: `string`

Defined in: [src/primitives/BinaryTree/errors.js:82](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/BinaryTree/errors.js#L82)

###### Inherited from

`InvalidLengthError.name`

##### value

> **value**: `unknown`

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

###### Inherited from

[`InvalidLengthError`](../index/index.mdx#invalidlengtherror).[`value`](../index/index.mdx#value-4)

#### Methods

##### getErrorChain()

> **getErrorChain**(): `string`

Defined in: [src/primitives/errors/AbstractError.ts:94](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/errors/AbstractError.ts#L94)

Get full error chain as string for logging

###### Returns

`string`

###### Inherited from

[`InvalidLengthError`](../index/index.mdx#invalidlengtherror).[`getErrorChain`](../index/index.mdx#geterrorchain-16)

##### toJSON()

> **toJSON**(): `Record`\<`string`, `unknown`>

Defined in: [src/primitives/errors/AbstractError.ts:110](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/errors/AbstractError.ts#L110)

Serialize error to JSON for logging/telemetry

###### Returns

`Record`\<`string`, `unknown`>

###### Inherited from

[`InvalidLengthError`](../index/index.mdx#invalidlengtherror).[`toJSON`](../index/index.mdx#tojson-16)

***

### InvalidTreeStateError

Defined in: [src/primitives/BinaryTree/errors.js:102](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/BinaryTree/errors.js#L102)

Error thrown when tree is in invalid state

#### Example

```typescript theme={null}
throw new InvalidTreeStateError(
  'Cannot insert into leaf node',
  {
    value: node.type,
    expected: 'empty, stem, or internal',
    code: 'BINARY_TREE_INVALID_STATE',
    docsPath: '/primitives/binary-tree/insert#error-handling'
  }
)
```

#### Extends

* [`ValidationError`](../index/index.mdx#validationerror)

#### Constructors

##### Constructor

> **new InvalidTreeStateError**(`message?`, `options?`): [`InvalidTreeStateError`](#invalidtreestateerror)

Defined in: [src/primitives/BinaryTree/errors.js:113](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/BinaryTree/errors.js#L113)

###### Parameters

###### message?

`string`

###### options?

###### cause?

`Error`

###### code?

`string`

###### context?

`Record`\<`string`, `unknown`>

###### docsPath?

`string`

###### expected?

`string`

###### value?

`unknown`

###### Returns

[`InvalidTreeStateError`](#invalidtreestateerror)

###### Overrides

[`ValidationError`](../index/index.mdx#validationerror).[`constructor`](../index/index.mdx#constructor-20)

#### Properties

##### cause?

> `optional` **cause**: `Error`

Defined in: [src/primitives/errors/AbstractError.ts:56](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/errors/AbstractError.ts#L56)

Root cause of this error (for error chaining)

###### Inherited from

[`ValidationError`](../index/index.mdx#validationerror).[`cause`](../index/index.mdx#cause-19)

##### code

> **code**: `string`

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

Machine-readable error code for programmatic handling

###### Example

```ts theme={null}
'INVALID_FORMAT', 'INVALID_LENGTH'
```

###### Inherited from

[`ValidationError`](../index/index.mdx#validationerror).[`code`](../index/index.mdx#code-19)

##### context?

> `optional` **context**: `Record`\<`string`, `unknown`>

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

Additional context metadata for debugging

###### Example

```ts theme={null}
{ value: '0x123', expected: '20 bytes' }
```

###### Inherited from

[`ValidationError`](../index/index.mdx#validationerror).[`context`](../index/index.mdx#context-19)

##### docsPath?

> `optional` **docsPath**: `string`

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

Path to documentation for this error

###### Example

```ts theme={null}
'/primitives/address/from-hex#error-handling'
```

###### Inherited from

[`ValidationError`](../index/index.mdx#validationerror).[`docsPath`](../index/index.mdx#docspath-19)

##### expected

> **expected**: `string`

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

###### Inherited from

[`ValidationError`](../index/index.mdx#validationerror).[`expected`](../index/index.mdx#expected-7)

##### name

> **name**: `string`

Defined in: [src/primitives/BinaryTree/errors.js:122](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/BinaryTree/errors.js#L122)

###### Inherited from

`ValidationError.name`

##### value

> **value**: `unknown`

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

###### Inherited from

[`ValidationError`](../index/index.mdx#validationerror).[`value`](../index/index.mdx#value-7)

#### Methods

##### getErrorChain()

> **getErrorChain**(): `string`

Defined in: [src/primitives/errors/AbstractError.ts:94](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/errors/AbstractError.ts#L94)

Get full error chain as string for logging

###### Returns

`string`

###### Inherited from

[`ValidationError`](../index/index.mdx#validationerror).[`getErrorChain`](../index/index.mdx#geterrorchain-38)

##### toJSON()

> **toJSON**(): `Record`\<`string`, `unknown`>

Defined in: [src/primitives/errors/AbstractError.ts:110](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/errors/AbstractError.ts#L110)

Serialize error to JSON for logging/telemetry

###### Returns

`Record`\<`string`, `unknown`>

###### Inherited from

[`ValidationError`](../index/index.mdx#validationerror).[`toJSON`](../index/index.mdx#tojson-38)

## Interfaces

### AccountData

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

Account basic data layout at index 0

* Version (1 byte)
* Code size (3 bytes)
* Nonce (8 bytes)
* Balance (16 bytes)

#### Properties

##### balance

> `readonly` **balance**: `bigint`

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

##### codeSize

> `readonly` **codeSize**: `number`

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

##### nonce

> `readonly` **nonce**: `bigint`

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

##### version

> `readonly` **version**: `number`

Defined in: [src/primitives/BinaryTree/BinaryTreeType.ts:38](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/BinaryTree/BinaryTreeType.ts#L38)

***

### BinaryTreeType

Defined in: [src/primitives/BinaryTree/BinaryTreeType.ts:7](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/BinaryTree/BinaryTreeType.ts#L7)

Binary State Tree (EIP-7864) - Unified tree structure for Ethereum state

#### See

[https://eips.ethereum.org/EIPS/eip-7864](https://eips.ethereum.org/EIPS/eip-7864)

#### Properties

##### root

> `readonly` **root**: [`Node`](#node)

Defined in: [src/primitives/BinaryTree/BinaryTreeType.ts:8](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/BinaryTree/BinaryTreeType.ts#L8)

## Type Aliases

### EmptyNode

> **EmptyNode** = `Extract`\<[`Node`](#node), \{ `type`: `"empty"`; }>

Defined in: [src/primitives/BinaryTree/BinaryTreeType.ts:28](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/BinaryTree/BinaryTreeType.ts#L28)

***

### InternalNode

> **InternalNode** = `Extract`\<[`Node`](#node), \{ `type`: `"internal"`; }>

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

***

### LeafNode

> **LeafNode** = `Extract`\<[`Node`](#node), \{ `type`: `"leaf"`; }>

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

***

### Node

> **Node** = \{ `type`: `"empty"`; } | \{ `left`: `Uint8Array`; `right`: `Uint8Array`; `type`: `"internal"`; } | \{ `stem`: `Uint8Array`; `type`: `"stem"`; `values`: (`Uint8Array` | `null`)\[]; } | \{ `type`: `"leaf"`; `value`: `Uint8Array`; }

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

***

### StemNode

> **StemNode** = `Extract`\<[`Node`](#node), \{ `type`: `"stem"`; }>

Defined in: [src/primitives/BinaryTree/BinaryTreeType.ts:26](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/BinaryTree/BinaryTreeType.ts#L26)

## Variables

### addressToKey()

> `const` **addressToKey**: (`address`) => `Uint8Array` = `_addressToKey`

Defined in: [src/primitives/BinaryTree/index.ts:56](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/BinaryTree/index.ts#L56)

#### Parameters

##### address

`Uint8Array`

#### Returns

`Uint8Array`

***

### BinaryTree

> `const` **BinaryTree**: `object`

Defined in: [src/primitives/BinaryTree/index.ts:76](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/BinaryTree/index.ts#L76)

#### Type Declaration

##### addressToKey()

> **addressToKey**: (`address`) => `Uint8Array`

###### Parameters

###### address

`Uint8Array`

###### Returns

`Uint8Array`

##### get()

> **get**: (`tree`, `key`) => `Uint8Array`\<`ArrayBufferLike`> | `null`

###### Parameters

###### tree

[`BinaryTreeType`](#binarytreetype)

###### key

`Uint8Array`

###### Returns

`Uint8Array`\<`ArrayBufferLike`> | `null`

##### getStemBit()

> **getStemBit**: (`stem`, `index`) => `0` | `1`

###### Parameters

###### stem

`Uint8Array`

###### index

`number`

###### Returns

`0` | `1`

##### hashInternal()

> **hashInternal**: (`l`, `r`) => `Uint8Array`

###### Parameters

###### l

`Uint8Array`

###### r

`Uint8Array`

###### Returns

`Uint8Array`

##### hashLeaf()

> **hashLeaf**: (`node`) => `Uint8Array`

###### Parameters

###### node

###### type

`"leaf"`

###### value

`Uint8Array`

###### Returns

`Uint8Array`

##### hashNode()

> **hashNode**: (`node`) => `Uint8Array`

###### Parameters

###### node

[`Node`](#node)

###### Returns

`Uint8Array`

##### hashStem()

> **hashStem**: (`node`) => `Uint8Array`

###### Parameters

###### node

###### stem

`Uint8Array`

###### type

`"stem"`

###### values

(`Uint8Array`\<`ArrayBufferLike`> | `null`)\[]

###### Returns

`Uint8Array`

##### init()

> **init**: () => [`BinaryTreeType`](#binarytreetype)

###### Returns

[`BinaryTreeType`](#binarytreetype)

##### insert()

> **insert**: (`tree`, `key`, `value`) => [`BinaryTreeType`](#binarytreetype)

###### Parameters

###### tree

[`BinaryTreeType`](#binarytreetype)

###### key

`Uint8Array`

###### value

`Uint8Array`

###### Returns

[`BinaryTreeType`](#binarytreetype)

##### rootHash()

> **rootHash**: (`tree`) => `Uint8Array`

###### Parameters

###### tree

[`BinaryTreeType`](#binarytreetype)

###### Returns

`Uint8Array`

##### rootHashHex()

> **rootHashHex**: (`tree`) => [`HexType`](Hex.mdx#hextype)

###### Parameters

###### tree

[`BinaryTreeType`](#binarytreetype)

###### Returns

[`HexType`](Hex.mdx#hextype)

##### splitKey()

> **splitKey**: (`key`) => `object`

###### Parameters

###### key

`Uint8Array`

###### Returns

`object`

###### idx

> **idx**: `number`

###### stem

> **stem**: `Uint8Array`

***

### get()

> `const` **get**: (`tree`, `key`) => `Uint8Array` | `null` = `_get`

Defined in: [src/primitives/BinaryTree/index.ts:67](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/BinaryTree/index.ts#L67)

#### Parameters

##### tree

[`BinaryTreeType`](#binarytreetype)

##### key

`Uint8Array`

#### Returns

`Uint8Array` | `null`

***

### getStemBit()

> `const` **getStemBit**: (`stem`, `index`) => `0` | `1` = `_getStemBit`

Defined in: [src/primitives/BinaryTree/index.ts:59](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/BinaryTree/index.ts#L59)

#### Parameters

##### stem

`Uint8Array`

##### index

`number`

#### Returns

`0` | `1`

***

### hashInternal()

> `const` **hashInternal**: (`l`, `r`) => `Uint8Array`

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

#### Parameters

##### l

`Uint8Array`

##### r

`Uint8Array`

#### Returns

`Uint8Array`

***

### HashInternal()

> `const` **HashInternal**: (`deps`) => (`l`, `r`) => `Uint8Array` = `_HashInternal`

Defined in: [src/primitives/BinaryTree/index.ts:38](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/BinaryTree/index.ts#L38)

#### Parameters

##### deps

`Blake3Deps`

#### Returns

> (`l`, `r`): `Uint8Array`

##### Parameters

###### l

`Uint8Array`

###### r

`Uint8Array`

##### Returns

`Uint8Array`

***

### hashLeaf()

> `const` **hashLeaf**: (`node`) => `Uint8Array`

Defined in: [src/primitives/BinaryTree/index.ts:52](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/BinaryTree/index.ts#L52)

#### Parameters

##### node

[`LeafNode`](#leafnode)

#### Returns

`Uint8Array`

***

### HashLeaf()

> `const` **HashLeaf**: (`deps`) => (`node`) => `Uint8Array` = `_HashLeaf`

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

#### Parameters

##### deps

`Blake3Deps`

#### Returns

> (`node`): `Uint8Array`

##### Parameters

###### node

[`LeafNode`](#leafnode)

##### Returns

`Uint8Array`

***

### hashNode()

> `const` **hashNode**: (`node`) => `Uint8Array`

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

#### Parameters

##### node

[`Node`](#node)

#### Returns

`Uint8Array`

***

### HashNode()

> `const` **HashNode**: (`deps`) => (`node`) => `Uint8Array` = `_HashNode`

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

#### Parameters

##### deps

`Blake3Deps`

#### Returns

> (`node`): `Uint8Array`

##### Parameters

###### node

[`Node`](#node)

##### Returns

`Uint8Array`

***

### hashStem()

> `const` **hashStem**: (`node`) => `Uint8Array`

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

#### Parameters

##### node

[`StemNode`](#stemnode)

#### Returns

`Uint8Array`

***

### HashStem()

> `const` **HashStem**: (`deps`) => (`node`) => `Uint8Array` = `_HashStem`

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

#### Parameters

##### deps

`Blake3Deps`

#### Returns

> (`node`): `Uint8Array`

##### Parameters

###### node

[`StemNode`](#stemnode)

##### Returns

`Uint8Array`

***

### init()

> `const` **init**: () => [`BinaryTreeType`](#binarytreetype) = `_init`

Defined in: [src/primitives/BinaryTree/index.ts:61](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/BinaryTree/index.ts#L61)

#### Returns

[`BinaryTreeType`](#binarytreetype)

***

### insert()

> `const` **insert**: (`tree`, `key`, `value`) => [`BinaryTreeType`](#binarytreetype)

Defined in: [src/primitives/BinaryTree/index.ts:62](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/BinaryTree/index.ts#L62)

#### Parameters

##### tree

[`BinaryTreeType`](#binarytreetype)

##### key

`Uint8Array`

##### value

`Uint8Array`

#### Returns

[`BinaryTreeType`](#binarytreetype)

***

### rootHash()

> `const` **rootHash**: (`tree`) => `Uint8Array` = `_rootHash`

Defined in: [src/primitives/BinaryTree/index.ts:71](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/BinaryTree/index.ts#L71)

#### Parameters

##### tree

[`BinaryTreeType`](#binarytreetype)

#### Returns

`Uint8Array`

***

### rootHashHex()

> `const` **rootHashHex**: (`tree`) => [`HexType`](Hex.mdx#hextype) = `_rootHashHex`

Defined in: [src/primitives/BinaryTree/index.ts:72](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/BinaryTree/index.ts#L72)

#### Parameters

##### tree

[`BinaryTreeType`](#binarytreetype)

#### Returns

[`HexType`](Hex.mdx#hextype)

***

### splitKey()

> `const` **splitKey**: (`key`) => `object` = `_splitKey`

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

#### Parameters

##### key

`Uint8Array`

#### Returns

`object`

##### idx

> **idx**: `number`

##### stem

> **stem**: `Uint8Array`
