> 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/revoke-freeze.md).

# Revoke Freeze Authority on a Solana Token

[Revoke Freeze](https://j.tools/en/tools/revoke-freeze) permanently removes the freeze authority from a Solana SPL token in a single on-chain transaction. Once it confirms, no wallet can ever freeze a holder's token account for that mint again, including yours. Token creators run this before opening liquidity so buyers can verify on-chain that their balances can never be locked.

## What it is

Revoke Freeze sets your token's freeze authority to none. Every SPL token mint carries up to three authority slots: the mint authority (controls supply), the freeze authority (can lock individual holder accounts), and the metadata update authority (controls name, symbol, and image). The freeze authority is the one that lets a single wallet freeze any holder's token account at will, blocking that holder from selling or transferring. This tool removes that slot entirely. It is one of the three [mint authorities](/concepts/authorities.md) a token can carry, and it is the one buyers check hardest before they ape in.

The change is one-directional. There is no instruction anywhere on Solana that re-adds a freeze authority once it has been set to none. It is also narrow: supply, balances, and transfers are untouched, so holders keep exactly what they had.

## Why use this tool

A live freeze authority is a red flag for anyone buying your token, because a buyer's balance could be locked the moment they buy. That is the exact mechanism behind a class of honeypot scams, and experienced traders scan for it before they touch a new token.

Revoking the freeze authority closes that door for good and makes the closure provable on-chain. This tool is for:

* Token creators preparing to list on a DEX who want to clear the freeze flag as a trust signal.
* Anyone who holds the freeze authority wallet and wants to permanently disable account freezing.
* Teams who want to drop the freeze authority alone and keep the other authorities for now.

## How it works (under the hood)

When you sign, the app builds one transaction that carries two instructions in a single step:

1. **A `SetAuthority` instruction on the SPL Token program.** This is the standard Solana instruction for changing a mint's authority. The tool targets the `FreezeAccount` authority type and sets its new authority to `None`. The Solana runtime only accepts this instruction if the current freeze authority signs it, which is why you must connect the wallet that currently holds that authority. After the instruction lands, the mint's freeze authority field is empty on-chain. No future instruction can populate it again.
2. **The platform fee transfer.** A separate SOL transfer to the J Tools platform wallet rides in the same transaction, so the fee and the revoke either both succeed or both fail. The fee amount comes from the platform's configuration and is shown in the app before you sign, not from anything your browser supplies.

Before it submits, the tool reads the mint account on-chain to confirm your connected wallet is the current freeze authority and that one still exists. If the slot is already empty, or your wallet does not control it, the action is blocked before you sign.

## When to use it (and when not to)

Use Revoke Freeze when:

* You are getting a token ready to list and want freeze control gone as a verifiable trust signal.
* You want to revoke only the freeze authority and leave the mint and metadata authorities alone.

Hold off when:

* You still need to freeze accounts for any reason. This is permanent, so do every freeze you need first.
* You want to drop more than the freeze authority. To revoke all three at once (mint, freeze, and update), use [Make Immutable](/tools/secure/make-immutable.md) instead. To remove only the mint authority, use [Revoke Mint](/tools/secure/revoke-mint.md).

If you are still mapping out which authorities to drop and when, the [rug-proof token guide](/guides/rug-proof-token.md) walks through the full sequence.

## Before you start

* A connected wallet ([how to connect](/getting-started/quick-start.md)). Signing happens in your wallet.
* The connected wallet **must be the current freeze authority** of the mint. If it is not, the action is blocked with a not-authority error. The runtime rejects the transaction without that signature.
* The token's mint address (the contract address, or CA).
* Enough SOL for the network fee and the flat platform fee shown before you sign. The app estimates the network signature cost for you. See the [Fee schedule](/reference/fee-schedule.md) for the exact amount.

{% hint style="warning" %}
Only the wallet that currently holds the freeze authority can sign this. If the authority was already revoked, the page shows it as revoked and the action cannot proceed.
{% endhint %}

## Step by step

{% stepper %}
{% step %}

### Connect and pick the signer

Connect your wallet. That wallet becomes both the signer and the fee payer for the revoke. It must be the wallet that currently holds the freeze authority.
{% endstep %}

{% step %}

### Enter the token mint address

Paste the mint address (CA) into the token field. J Tools reads the mint on-chain and shows a status badge: **Authority Active**, **Not Yours / Revoked**, or **Loading**. The current freeze authority address is shown next to it when one is set. Note that "not yours" and "already revoked" share one badge, so check the address underneath to tell them apart.
{% endstep %}

{% step %}

### Review the irreversible warning

The action card shows the platform fee, the estimated network fee, and a clearly marked irreversible warning. Read it before you go on. There is no undo after this confirms.
{% endstep %}

{% step %}

### Sign once

Approve the transaction in your wallet. It carries two things in one step: the instruction that sets the freeze authority to none, and the platform fee transfer. The signature is recorded in the Activity Log before confirmation, so a slow confirm still shows up.
{% endstep %}

{% step %}

### Confirm and copy the signature

Once it confirms, the result card gives you the transaction signature with **Copy Signature** and **View On Solscan**. Open Solscan to see the freeze authority field now reads as none.
{% endstep %}
{% endstepper %}

[**Open Revoke Freeze in the app →**](https://j.tools/en/tools/revoke-freeze)

{% hint style="info" %}
**About wallet warnings.** Some tools bundle several instructions into one transaction, for example creating a token and its metadata together. Phantom can show a caution banner for these transactions. The banner is expected here and does not mean something is wrong. Read what you are signing, then approve.
{% endhint %}

## The options, explained

* **Token Mint Address (CA):** The SPL token's contract address, picked with the built-in token selector. When you change it, J Tools reads the mint on-chain and shows **Authority Active** only if your connected wallet is the current freeze authority. Someone else holding it and the authority being gone both read as **Not Yours / Revoked**, so the address shown beside the badge is what separates them. It validates the input as a 32 to 44 character base58 address before going further.
* **Signer and fee payer:** Taken automatically from your connected wallet. There is no separate owner field to fill in, since the wallet that signs is the one that must hold the authority and pay both fees.

## Fees and costs

{% 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 %}

**Current platform fee: 0.1 SOL.**

| Cost                 | Amount                                                                                            |
| -------------------- | ------------------------------------------------------------------------------------------------- |
| J Tools platform fee | 0.1 SOL                                                                                           |
| Solana network fee   | a few thousand lamports paid to validators; no new account is opened, so there is no rent deposit |

On top of that you pay the Solana network fee, a small per-signature cost paid to validators that the app estimates for you. This action does not create any new token account, so there is no rent deposit to fund. You pay once, when you sign.

## Common mistakes and troubleshooting

* **You are not the freeze authority.** The connected wallet does not control the freeze authority for this mint. Connect the wallet that does, then retry.
* **Already revoked.** The mint has no freeze authority left, so there is nothing to change. The status badge will say so.
* **Invalid mint address.** The CA must be a valid 32 to 44 character base58 string. Re-check and paste it again.
* **Token-2022 mint.** No extra steps needed. The tool detects whether the mint lives on the classic SPL Token program or Token-2022 and sends the revoke instruction to the right one. If you want the background on how the two programs differ, the [SPL vs Token-2022](/concepts/spl-vs-token2022.md) concept page explains it.

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

## Advanced tips

* **Sequence your authorities deliberately.** If you plan to drop both mint and freeze, decide whether you want two separate proofs on-chain or a single immutable lock. [Revoke Mint](/tools/secure/revoke-mint.md) plus Revoke Freeze gives two transactions buyers can each verify. [Make Immutable](/tools/secure/make-immutable.md) handles all three at once.
* **Keep the signature.** The transaction signature is your proof. Save it so you can point buyers or auditors straight to the on-chain record on Solscan.

## Related tools

{% content-ref url="/pages/dDKMIJDsaV6TyBZPgRLH" %}
[Revoke Mint Authority](/tools/secure/revoke-mint.md)
{% endcontent-ref %}

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

{% content-ref url="/pages/gclVFAjMJFchUipqQNOZ" %}
[Update Token Metadata](/tools/token/update-metadata.md)
{% endcontent-ref %}

{% content-ref url="/pages/QT0nYfDbGpJo4Cm5Tbs6" %}
[Create a Solana Liquidity Pool](/tools/liquidity/create-lp.md)
{% endcontent-ref %}

{% hint style="success" %}
**J Tools is non-custodial.** We never store or transmit your private keys and never ask for your seed phrase. Every transaction is signed in your own browser, and nothing about a key ever reaches our servers. A few multi-wallet tools do let you paste private keys for throwaway hot wallets, which stay in your browser tab and are used only to sign locally. Never paste a key tied to long-term holdings, and if a page ever asks for your seed phrase, stop and close it.
{% 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/revoke-freeze.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.
