> ## Documentation Index
> Fetch the complete documentation index at: https://docs.crossmint.com/llms.txt
> Use this file to discover all available pages before exploring further.

# CrossmintMetamaskDecrypt

Class for decrypting verifiable credentials encrypted with the `VerifiableCredentialEncryptionType.CROSSMINT_RECOVERABLE` encryption type using Metamask.

This class uses Metamask to prompt the user to sign a message to decrypt the credential.
If you want to use a different signature method, refer to the `CrossmintDecrypt` class.
To use the Crossmint decrypt endpoint, an API key with the `credentials.decrypt` scope must be provided.

## Constructors

### new CrossmintMetamaskDecrypt()

> **new CrossmintMetamaskDecrypt**(`metamask`): [`CrossmintMetamaskDecrypt`](./CrossmintMetamaskDecrypt)

#### Parameters

| Parameter  | Type              |
| ---------- | ----------------- |
| `metamask` | `MetamaskService` |

#### Returns

[`CrossmintMetamaskDecrypt`](./CrossmintMetamaskDecrypt)

#### Defined in

[decryption/wallet.ts:69](https://github.com/Crossmint/crossmint-sdk/blob/main/packages/client/verifiable-credentials/src/decryption/wallet.ts#L69)

## Methods

### decrypt()

> **decrypt**(`credential`, `wallet`?): `Promise`\<[`VerifiableCredential`](../interfaces/VerifiableCredential)>

Decrypts an encrypted verifiable credential using Metamask.

This method prompts the user via Metamask to sign the necessary message for decrypting the credential.

#### Parameters

| Parameter    | Type                                                                           | Description                                                                                                     |
| ------------ | ------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------- |
| `credential` | [`EncryptedVerifiableCredential`](../interfaces/EncryptedVerifiableCredential) | The encrypted verifiable credential to decrypt.                                                                 |
| `wallet`?    | `string`                                                                       | (Optional) The user's wallet address. If not provided, the connected wallet address from Metamask will be used. |

#### Returns

`Promise`\<[`VerifiableCredential`](../interfaces/VerifiableCredential)>

A promise that resolves to a `VerifiableCredential`.

#### Throws

Will throw an error if decryption fails or if Metamask is not properly configured.

#### Defined in

[decryption/wallet.ts:84](https://github.com/Crossmint/crossmint-sdk/blob/main/packages/client/verifiable-credentials/src/decryption/wallet.ts#L84)
