> **Can't find what you're looking for?** Use `search_docs` on the docs MCP server at `https://v3.viem.sh/api/mcp` to find what you need.

# BlobCells.recover

:::info
`BlobCells.recover` is a re-export of ox's [`BlobCells.recover`](https://oxlib.sh/api/BlobCells/recover). Refer to the ox documentation for the full reference.
:::

Reconstruct all 128 cells (and their KZG proofs) of an extended blob from at least 64 known cells (PeerDAS, EIP-7594).

## Imports

```ts
import { BlobCells } from 'viem/utils'
```

## Examples

```ts twoslash
// @noErrors
import { BlobCells } from 'viem/utils'
import { kzg } from './kzg'

// Reconstruct from 64 of 128 cells.
const { cells, proofs } = BlobCells.recover(
  knownIndices, // e.g. [0, 2, 4, …]
  knownCells,
  { kzg }
)
```

## Definition

```ts
function recover<cells, as>(
  cellIndices: readonly CellIndex[],
  cells: cells | readonly (Hex.Hex | Bytes.Bytes)[],
  options: recover.Options<as>,
): recover.ReturnType<as>
```

## Parameters

### cellIndices

* **Type:** `readonly CellIndex[]`

The indices of the known cells (must contain ≥ 64 distinct values).

### cells

* **Type:** `cells | readonly (Hex.Hex | Bytes.Bytes)[]`

The known cells, parallel to `cellIndices`.

### options

* **Type:** `recover.Options<as>`

Options.

#### options.as

* **Type:** `"Bytes" | "Hex" | as`
* **Optional**

Return type.

#### options.kzg

* **Type:** `Pick`

KZG implementation.

## Return Type

The full set of 128 cells and 128 proofs.

`recover.ReturnType<as>`
