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

# unfreezeTokens

> Unfreeze previously frozen tokens for a Spark address.

Unfreezes issuer tokens for a specific wallet via the `IssuerSparkWallet`.

## Method Signature

```typescript theme={null}
async unfreezeTokens({
  tokenIdentifier,
  sparkAddress,
}: {
  tokenIdentifier: Bech32mTokenIdentifier;
  sparkAddress: string;
}): Promise<{
  impactedTokenOutputs: TokenOutputRef[];
  impactedTokenAmount: bigint;
}>
```

## Parameters

<ResponseField name="tokenIdentifier" type="Bech32mTokenIdentifier" required>
  The token identifier to unfreeze.
</ResponseField>

<ResponseField name="sparkAddress" type="string" required>
  The Spark Address to unfreeze
</ResponseField>

## Returns

<ResponseField name="impactedTokenOutputs" type="TokenOutputRef[]" required>
  Array of token output references that were unfrozen. Each `TokenOutputRef` contains:

  * `transactionHash`: `Uint8Array` - The transaction hash
  * `vout`: `number` - The output index
</ResponseField>

<ResponseField name="impactedTokenAmount" type="bigint" required>
  Total amount of tokens unfrozen
</ResponseField>

## Example

```typescript theme={null}
const tokenIdentifiers = await issuerWallet.getIssuerTokenIdentifiers();
const tokenId = tokenIdentifiers[0];
if (!tokenId) {
  throw new Error("No issuer token found");
}

const result = await issuerWallet.unfreezeTokens({
  tokenIdentifier: tokenId,
  sparkAddress: "spark1qw508d6qejxtdg4y5r3zarvary0c5xw7kxpjzsx",
});

console.log("Unfrozen outputs:", result.impactedTokenOutputs);
console.log("Unfrozen amount:", result.impactedTokenAmount);
```
