> For the complete documentation index, see [llms.txt](https://docs.j.tools/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.j.tools/tools/secure/unfreeze-account.md).

# Unfreeze Account

[Unfreeze Token Account](https://j.tools/en/tools/unfreeze-account) thaws frozen holder accounts for a single mint, in bulk, from one terminal. You load the frozen holders, optionally protect specific wallets with a session whitelist, select who to thaw, and sign each thaw with the wallet that holds the [freeze authority](/concepts/authorities.md). Every row tracks its own status, and you can retry only the ones that failed.

{% hint style="warning" %}
**About fees.** Every action has two costs: the Solana **network fee** paid to validators, and the **J Tools platform fee**. The platform fee always shows in the app before you confirm, and nothing is charged until you sign. Fees can change over time, so trust the in-app summary rather than a number you saw once.
{% endhint %}

## When to use this

* You froze holder accounts earlier and now need to restore (thaw) them in bulk.
* You hold the freeze authority for an [SPL or Token-2022](/concepts/spl-vs-token2022.md) mint and want controlled, row-by-row recovery instead of thawing each wallet by hand.
* You want to unfreeze most holders while keeping treasury, team, or operational wallets excluded.

This is the reverse of [Freeze Account](/tools/secure/freeze-account.md). If you want to give up the freeze power for good so accounts can never be frozen again, use [Revoke Freeze](/tools/secure/revoke-freeze.md).

## Before you start

* A connected wallet that is the mint's **freeze authority**. Without it, Unfreeze All is blocked.
* A valid SPL or Token-2022 mint address (the CA) that currently has frozen holder accounts. Pick it with the built-in token selector.
* Enough SOL in the signing wallet for the platform fee plus a small network fee per thaw transaction.
* At least one selected, non-whitelisted frozen row before you run.

{% hint style="warning" %}
Only the freeze authority can thaw accounts. If the connected wallet is not the authority, execution is blocked with **"Connected wallet is not the freeze authority."** Connect the wallet that holds it.
{% endhint %}

## Step by step

{% stepper %}
{% step %}

### Connect the freeze authority

Connect your wallet through the wallet source selector at the top of the page. This wallet signs every thaw, so it must be the one that holds the mint's freeze authority.
{% endstep %}

{% step %}

### Enter the mint and load holders

Enter or pick the token mint (CA) with the selector, then click **Load Holders**. The page scans the mint and shows only the holder accounts that are currently frozen, sorted by token amount. It also reads the freeze authority and whether your wallet holds it.
{% endstep %}

{% step %}

### Protect wallets you want to keep frozen

Paste any wallet addresses into the **Session Whitelist**, one per line. Those owners are marked **protected** and are excluded from selection and execution for this session. The stats panel shows total, active, valid, invalid, and duplicate lines as you type.
{% endstep %}

{% step %}

### Review and select

Check the stats panel (Loaded, Total Found, Protected, Selected, Success, Failed, Estimated Fee, Freeze Authority). Use **Select All** or **Clear Selection**, or tick rows one by one. Protected rows cannot be selected.
{% endstep %}

{% step %}

### Unfreeze and sign

Click **Unfreeze All**. Each selected row builds its own thaw transaction, you sign with the active wallet, the tool confirms it, and the row updates to **SUCCESS** or **FAILED** on its own. Rows run in batches, so expect several signature prompts for a large set.
{% endstep %}

{% step %}

### Retry anything that failed

If some rows show **FAILED**, click **Retry Failed** to rerun only those. If the holder set was truncated, use **Load More** to scan further before retrying.
{% endstep %}
{% endstepper %}

[**Open Unfreeze Token Account in the app →**](https://j.tools/en/tools/unfreeze-account)

{% hint style="info" %}
**About wallet warnings.** Some tools sign more than one thing in a single step, for example creating a token and its metadata together. Phantom can show a caution banner for these multi-step transactions. The banner is expected here and does not mean something is wrong. Read what you are signing, then approve.
{% endhint %}

## The options, explained

| Field                   | What it does                                                                                                                                             |
| ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Token Mint Address (CA) | The SPL mint whose frozen holder accounts you want to thaw. Entered through the shared token selector and validated as a base58 address before scanning. |
| Session Whitelist       | Optional. One wallet address per line. Whitelisted owners are marked protected and left out of selection and execution for this session only.            |
| Frozen Holder Rows      | Load Holders shows only rows where the account is frozen, sorted by amount. Each row has a checkbox; protected rows cannot be picked.                    |
| Active wallet (signer)  | The connected wallet that signs each thaw. It must be the freeze authority, or Unfreeze All stays disabled.                                              |
| Unfreeze All            | Thaws all selected, non-protected rows in batches.                                                                                                       |
| Retry Failed            | Reruns only rows that ended in FAILED.                                                                                                                   |
| Load More               | Extends the holder scan in steps when results were truncated, up to the scan limit.                                                                      |

{% hint style="info" %}
The estimated total in the fee summary combines the per-transaction network fee for each selected row with the platform fee. Because each row is its own transaction, larger batches cost more network fee. Always read the in-app summary before you run.
{% endhint %}

## If something goes wrong

* **Connected wallet is not the freeze authority.** Only the authority can thaw. Connect the wallet that holds it, or check the mint address.
* **No rows loaded.** The mint may have no frozen holders right now, or the scan was truncated. Try Load More if the set looked cut off.
* **Some rows failed.** Each row is independent. Click Retry Failed to rerun only those without touching the ones that already succeeded.
* **Not enough SOL.** You need SOL for the platform fee plus a small network fee per row. Top up and retry.
* **Protected wallet got thawed by mistake.** Re-add it to the whitelist before the next run. The whitelist is session-only, so it clears on refresh.

For the full list, see the [Error codes reference](/reference/error-codes.md).

## FAQ

<details>

<summary>What does thawing actually do?</summary>

It re-enables transfers on a frozen holder account. Once thawed, that account can send and receive the token again. Double-check your selection and the protected list before running, since the page asks you to confirm the mint, authority, protected wallets, selected count, and fee first.

</details>

<details>

<summary>Does the whitelist stick around?</summary>

No. The whitelist lives in memory for the current session only. Refreshing the page clears it, so re-enter your protected wallets before you run again.

</details>

<details>

<summary>Why so many wallet prompts?</summary>

Each frozen account is thawed by its own transaction, so each one needs its own signature. A large batch means many prompts. Rows run in chunks, and each row records its own result.

</details>

<details>

<summary>Does it work with Token-2022 mints?</summary>

Yes. The tool detects the token program for the mint and builds the thaw against the right one, so classic SPL and [Token-2022](/concepts/spl-vs-token2022.md) frozen accounts are both supported. If you are new to the difference, the [Glossary](/getting-started/glossary.md) covers freeze authority and token programs.

</details>

<details>

<summary>I want to give up freeze power entirely. What then?</summary>

Use [Revoke Freeze](/tools/secure/revoke-freeze.md). That permanently removes the freeze authority so no account on the mint can ever be frozen again. Unfreeze Account only thaws existing frozen accounts; it does not change the authority.

</details>

## Related tools

{% content-ref url="/pages/AJII3m16ZBzG4vCxHzTz" %}
[Freeze Account](/tools/secure/freeze-account.md)
{% endcontent-ref %}

{% content-ref url="/pages/3mfyP8upN3tiDTB59aRi" %}
[Revoke Freeze](/tools/secure/revoke-freeze.md)
{% endcontent-ref %}

{% content-ref url="/pages/gbx1RbByQOVKZzt0PQkP" %}
[Make Immutable](/tools/secure/make-immutable.md)
{% endcontent-ref %}

{% content-ref url="/pages/TCncJTZtkEOhZQpOjCDM" %}
[Auto Freeze](/tools/secure/auto-freeze.md)
{% endcontent-ref %}

{% hint style="success" %}
**J Tools is non-custodial.** We never hold your private keys and never ask for them. Every transaction is built in your browser and signed by your own wallet. If any page ever asks you to paste a private key, stop, close it, and let us know.
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.j.tools/tools/secure/unfreeze-account.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
