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

> Auto-generated API documentation

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

***

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

# primitives/Blob

## Interfaces

### BlobInstance

Defined in: [src/primitives/Blob/index.ts:253](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Blob/index.ts#L253)

#### Methods

##### toCommitment()

> **toCommitment**(): [`Commitment`](#commitment)

Defined in: [src/primitives/Blob/index.ts:255](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Blob/index.ts#L255)

###### Returns

[`Commitment`](#commitment)

##### toData()

> **toData**(): `Uint8Array`

Defined in: [src/primitives/Blob/index.ts:254](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Blob/index.ts#L254)

###### Returns

`Uint8Array`

##### toProof()

> **toProof**(`commitment`): [`Proof`](#proof)

Defined in: [src/primitives/Blob/index.ts:256](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Blob/index.ts#L256)

###### Parameters

###### commitment

[`Commitment`](#commitment)

###### Returns

[`Proof`](#proof)

##### verify()

> **verify**(`commitment`, `proof`): `boolean`

Defined in: [src/primitives/Blob/index.ts:257](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Blob/index.ts#L257)

###### Parameters

###### commitment

[`Commitment`](#commitment)

###### proof

[`Proof`](#proof)

###### Returns

`boolean`

## Type Aliases

### BrandedBlob

> **BrandedBlob** = `Uint8Array` & `object`

Defined in: [src/primitives/Blob/BlobType.ts:10](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Blob/BlobType.ts#L10)

Blob data (exactly 131072 bytes)

#### Type Declaration

##### \[brand]

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

***

### Commitment

> **Commitment** = `Uint8Array` & `object`

Defined in: [src/primitives/Blob/BlobType.ts:15](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Blob/BlobType.ts#L15)

KZG commitment (48 bytes)

#### Type Declaration

##### \[brand]

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

***

### Proof

> **Proof** = `Uint8Array` & `object`

Defined in: [src/primitives/Blob/BlobType.ts:20](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Blob/BlobType.ts#L20)

KZG proof (48 bytes)

#### Type Declaration

##### \[brand]

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

***

### VersionedHash

> **VersionedHash** = `Uint8Array` & `object`

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

Versioned hash (32 bytes) - commitment hash with version prefix

#### Type Declaration

##### \[brand]

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

## Variables

### BYTES\_PER\_FIELD\_ELEMENT

> `const` **BYTES\_PER\_FIELD\_ELEMENT**: `32` = `32`

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

Bytes per field element

#### Since

0.0.0

***

### calculateGas()

> `const` **calculateGas**: (`blobCount`) => `number` = `_calculateGas`

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

#### Parameters

##### blobCount

`number`

#### Returns

`number`

***

### COMMITMENT\_VERSION\_KZG

> `const` **COMMITMENT\_VERSION\_KZG**: `1` = `0x01`

Defined in: [src/primitives/Blob/constants.js:36](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Blob/constants.js#L36)

Blob commitment version byte for KZG

#### Since

0.0.0

***

### CommitmentNamespace

> `const` **CommitmentNamespace**: `object`

Defined in: [src/primitives/Blob/index.ts:155](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Blob/index.ts#L155)

#### Type Declaration

##### isValid()

> **isValid**: (`commitment`) => `boolean`

###### Parameters

###### commitment

`Uint8Array`

###### Returns

`boolean`

##### toVersionedHash()

> **toVersionedHash**: (`commitment`) => [`VersionedHash`](#versionedhash)

###### Parameters

###### commitment

[`Commitment`](#commitment)

###### Returns

[`VersionedHash`](#versionedhash)

***

### estimateBlobCount()

> `const` **estimateBlobCount**: (`dataSize`) => `number` = `_estimateBlobCount`

Defined in: [src/primitives/Blob/index.ts:46](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Blob/index.ts#L46)

#### Parameters

##### dataSize

`number`

#### Returns

`number`

***

### FIELD\_ELEMENTS\_PER\_BLOB

> `const` **FIELD\_ELEMENTS\_PER\_BLOB**: `4096` = `4096`

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

Number of field elements per blob

#### Since

0.0.0

***

### from()

> `const` **from**: (`value`) => [`BrandedBlob`](#brandedblob) = `_from`

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

#### Parameters

##### value

`Uint8Array`

#### Returns

[`BrandedBlob`](#brandedblob)

***

### fromData()

> `const` **fromData**: (`data`) => [`BrandedBlob`](#brandedblob) = `_fromData`

Defined in: [src/primitives/Blob/index.ts:48](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Blob/index.ts#L48)

#### Parameters

##### data

`Uint8Array`

#### Returns

[`BrandedBlob`](#brandedblob)

***

### GAS\_PER\_BLOB

> `const` **GAS\_PER\_BLOB**: `131072` = `131072`

Defined in: [src/primitives/Blob/constants.js:42](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Blob/constants.js#L42)

Blob gas per blob (2^17)

#### Since

0.0.0

***

### isValid()

> `const` **isValid**: (`blob`) => `boolean` = `_isValid`

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

#### Parameters

##### blob

`Uint8Array`

#### Returns

`boolean`

***

### isValidVersion()

> `const` **isValidVersion**: (`hash`) => `boolean` = `_isValidVersion`

Defined in: [src/primitives/Blob/index.ts:50](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Blob/index.ts#L50)

#### Parameters

##### hash

[`VersionedHash`](#versionedhash)

#### Returns

`boolean`

***

### joinData()

> `const` **joinData**: (`blobs`) => `Uint8Array` = `_joinData`

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

#### Parameters

##### blobs

readonly [`BrandedBlob`](#brandedblob)\[]

#### Returns

`Uint8Array`

***

### MAX\_DATA\_PER\_BLOB

> `const` **MAX\_DATA\_PER\_BLOB**: `number`

Defined in: [src/primitives/Blob/constants.js:54](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Blob/constants.js#L54)

Maximum data bytes per blob (field elements \* 31 bytes - 4 byte length prefix)

#### Since

0.0.0

***

### MAX\_PER\_TRANSACTION

> `const` **MAX\_PER\_TRANSACTION**: `6` = `6`

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

Maximum blobs per transaction

#### Since

0.0.0

***

### ProofNamespace

> `const` **ProofNamespace**: `object`

Defined in: [src/primitives/Blob/index.ts:164](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Blob/index.ts#L164)

#### Type Declaration

##### isValid()

> **isValid**: (`proof`) => `boolean`

###### Parameters

###### proof

`Uint8Array`

###### Returns

`boolean`

***

### SIZE

> `const` **SIZE**: `131072` = `131072`

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

Blob size in bytes (128 KB = 4096 field elements \* 32 bytes)

#### Since

0.0.0

***

### splitData()

> `const` **splitData**: (`data`) => [`BrandedBlob`](#brandedblob)\[] = `_splitData`

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

#### Parameters

##### data

`Uint8Array`

#### Returns

[`BrandedBlob`](#brandedblob)\[]

***

### TARGET\_GAS\_PER\_BLOCK

> `const` **TARGET\_GAS\_PER\_BLOCK**: `393216` = `393216`

Defined in: [src/primitives/Blob/constants.js:48](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Blob/constants.js#L48)

Target blob gas per block (3 blobs)

#### Since

0.0.0

***

### toCommitment()

> `const` **toCommitment**: (`blob`) => [`Commitment`](#commitment)

Defined in: [src/primitives/Blob/index.ts:101](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Blob/index.ts#L101)

#### Parameters

##### blob

[`BrandedBlob`](#brandedblob)

#### Returns

[`Commitment`](#commitment)

***

### ToCommitment()

> `const` **ToCommitment**: (`deps`) => (`blob`) => [`Commitment`](#commitment) = `_ToCommitment`

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

#### Parameters

##### deps

###### blobToKzgCommitment

(`blob`) => `Uint8Array`

#### Returns

> (`blob`): [`Commitment`](#commitment)

##### Parameters

###### blob

[`BrandedBlob`](#brandedblob)

##### Returns

[`Commitment`](#commitment)

***

### toData()

> `const` **toData**: (`blob`) => `Uint8Array` = `_toData`

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

#### Parameters

##### blob

[`BrandedBlob`](#brandedblob)

#### Returns

`Uint8Array`

***

### toProof()

> `const` **toProof**: (`blob`, `commitment`) => [`Proof`](#proof)

Defined in: [src/primitives/Blob/index.ts:104](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Blob/index.ts#L104)

#### Parameters

##### blob

[`BrandedBlob`](#brandedblob)

##### commitment

[`Commitment`](#commitment)

#### Returns

[`Proof`](#proof)

***

### ToProof()

> `const` **ToProof**: (`deps`) => (`blob`, `commitment`) => [`Proof`](#proof)

Defined in: [src/primitives/Blob/index.ts:58](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Blob/index.ts#L58)

#### Parameters

##### deps

###### computeBlobKzgProof

(`blob`, `commitment`) => `Uint8Array`

#### Returns

> (`blob`, `commitment`): [`Proof`](#proof)

##### Parameters

###### blob

[`BrandedBlob`](#brandedblob)

###### commitment

[`Commitment`](#commitment)

##### Returns

[`Proof`](#proof)

***

### toVersionedHash()

> `const` **toVersionedHash**: (`commitment`) => [`VersionedHash`](#versionedhash)

Defined in: [src/primitives/Blob/index.ts:100](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Blob/index.ts#L100)

#### Parameters

##### commitment

[`Commitment`](#commitment)

#### Returns

[`VersionedHash`](#versionedhash)

***

### ToVersionedHash()

> `const` **ToVersionedHash**: (`deps`) => (`commitment`) => [`VersionedHash`](#versionedhash) = `_ToVersionedHash`

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

#### Parameters

##### deps

###### sha256

(`data`) => `Uint8Array`

#### Returns

> (`commitment`): [`VersionedHash`](#versionedhash)

##### Parameters

###### commitment

[`Commitment`](#commitment)

##### Returns

[`VersionedHash`](#versionedhash)

***

### verify()

> `const` **verify**: (`blob`, `commitment`, `proof`) => `boolean`

Defined in: [src/primitives/Blob/index.ts:107](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Blob/index.ts#L107)

#### Parameters

##### blob

[`BrandedBlob`](#brandedblob)

##### commitment

[`Commitment`](#commitment)

##### proof

[`Proof`](#proof)

#### Returns

`boolean`

***

### Verify()

> `const` **Verify**: (`deps`) => (`blob`, `commitment`, `proof`) => `boolean` = `_Verify`

Defined in: [src/primitives/Blob/index.ts:64](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Blob/index.ts#L64)

#### Parameters

##### deps

###### verifyBlobKzgProof

(`blob`, `commitment`, `proof`) => `boolean`

#### Returns

> (`blob`, `commitment`, `proof`): `boolean`

##### Parameters

###### blob

[`BrandedBlob`](#brandedblob)

###### commitment

[`Commitment`](#commitment)

###### proof

[`Proof`](#proof)

##### Returns

`boolean`

***

### verifyBatch()

> `const` **verifyBatch**: (`blobs`, `commitments`, `proofs`) => `boolean`

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

#### Parameters

##### blobs

readonly [`BrandedBlob`](#brandedblob)\[]

##### commitments

readonly [`Commitment`](#commitment)\[]

##### proofs

readonly [`Proof`](#proof)\[]

#### Returns

`boolean`

***

### VerifyBatch()

> `const` **VerifyBatch**: (`deps`) => (`blobs`, `commitments`, `proofs`) => `boolean` = `_VerifyBatch`

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

#### Parameters

##### deps

###### verifyBlobKzgProofBatch

(`blobs`, `commitments`, `proofs`) => `boolean`

#### Returns

> (`blobs`, `commitments`, `proofs`): `boolean`

##### Parameters

###### blobs

readonly [`BrandedBlob`](#brandedblob)\[]

###### commitments

readonly [`Commitment`](#commitment)\[]

###### proofs

readonly [`Proof`](#proof)\[]

##### Returns

`boolean`

***

### VersionedHashNamespace

> `const` **VersionedHashNamespace**: `object`

Defined in: [src/primitives/Blob/index.ts:170](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Blob/index.ts#L170)

#### Type Declaration

##### getVersion()

> **getVersion**: (`hash`) => `number`

###### Parameters

###### hash

`Uint8Array`

###### Returns

`number`

##### isValid()

> **isValid**: (`hash`) => `boolean`

###### Parameters

###### hash

`Uint8Array`

###### Returns

`boolean`

##### version()

> **version**: (`hash`) => `number`

###### Parameters

###### hash

`Uint8Array`

###### Returns

`number`

## Functions

### Blob()

> **Blob**(`value`): `Uint8Array`\<`ArrayBufferLike`> & `object` & [`BlobInstance`](#blobinstance)

Defined in: [src/primitives/Blob/index.ts:239](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Blob/index.ts#L239)

Creates a Blob instance from various input types.

Canonical Class API constructor. Supports:

* Number (creates empty blob of specified size)
* Raw blob data (131072 bytes)
* Data to encode (auto-encodes with length prefix)

#### Parameters

##### value

Number for size or Uint8Array (either 131072 bytes blob or data to encode)

`number` | `Uint8Array`\<`ArrayBufferLike`>

#### Returns

`Uint8Array`\<`ArrayBufferLike`> & `object` & [`BlobInstance`](#blobinstance)

Blob instance

#### Throws

Error if data exceeds maximum size

#### Example

```typescript theme={null}
import { Blob } from './primitives/Blob/index.js';

// Create empty blob by size
const blob1 = Blob(131072);

// Raw blob
const blob2 = Blob(new Uint8Array(131072));

// Auto-encode data
const blob3 = Blob(new TextEncoder().encode("Hello"));
```
