# Unwrapper

> **Unwrapper** = (`recipients`) => [`Promise`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\<[`Uint8Array`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array) \| `undefined`\>

Defined in: [packages/filecoin-encryption-envelope/src/recipients/types.ts:51](https://github.com/FilOzone/synapse-sdk/blob/e853a1d93da8c983371ffce4424cdb8996cc06ff/packages/filecoin-encryption-envelope/src/recipients/types.ts#L51)

Recover a CEK from an ordered, structurally validated recipient list.

Return `undefined` when none of the recipients can be handled. Throwing
aborts key recovery; `decryptWith` reports it as `RecipientUnwrapError`
with the original error as its cause.

## Parameters

| Parameter | Type |
| ------ | ------ |
| `recipients` | readonly [`RecipientInfo`](/reference/filoz/filecoin-encryption-envelope/namespaces/recipients/interfaces/recipientinfo/)[] |

## Returns

[`Promise`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\<[`Uint8Array`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array) \| `undefined`\>