> 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/make-immutable.md).

# Make Immutable

[Make Immutable](https://j.tools/en/tools/make-immutable) removes all three authorities from your token at once: mint, freeze and update. After it runs, no one can mint more supply, freeze a holder, or edit the metadata. The token is locked for good, and that is exactly what buyers look for. If you want the background on what these three [authorities](/concepts/authorities.md) actually control, read the concept page first.

{% hint style="danger" %}
**This cannot be undone.** Once this transaction confirms on-chain, there is no way to reverse it. Check every field before you sign.
{% endhint %}

## When to use this

* You are done setting up your token and want holders to trust it.
* You want a single action instead of revoking each authority by hand.
* You are about to add liquidity and want a clean, locked token first.

If you only want to revoke one authority, use [Revoke Mint](/tools/secure/revoke-mint.md), [Revoke Freeze](/tools/secure/revoke-freeze.md), or [Revoke Update Authority](/tools/secure/revoke-update-authority.md) instead. Whether your token is a classic SPL mint or a [Token-2022](/concepts/spl-vs-token2022.md) one, the tool reads the right authorities either way.

## Before you start

* A connected wallet that currently holds the token's authorities.
* The token's mint address. Pick it with the built-in token selector.
* A little SOL for the network fee plus a flat platform fee shown before you sign. See the [Fee schedule](/reference/fee-schedule.md) for the exact amount.

{% hint style="warning" %}
You must be the current authority to revoke it. If an authority was already handed to another wallet, this tool cannot remove it from your side.
{% endhint %}

## Step by step

{% stepper %}
{% step %}

### Select your token

Connect your wallet and choose the token from the selector. J Tools reads its current authorities so you can see what will change.
{% endstep %}

{% step %}

### Review what gets locked

Confirm that mint, freeze and update are all set to be revoked. The preview shows the before and after state.
{% endstep %}

{% step %}

### Sign once

Approve the transaction in your wallet. When it confirms, the token is immutable.
{% endstep %}
{% endstepper %}

[**Open Make Immutable in the app →**](https://j.tools/en/tools/make-immutable)

Locking authorities is the single biggest trust signal you can give a token. For the full checklist around it, the [rug-proof token guide](/guides/rug-proof-token.md) walks through every step a launch should cover.

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

## What each authority means

| Authority | What revoking it does                                          |
| --------- | -------------------------------------------------------------- |
| Mint      | No more tokens can ever be created. Supply is fixed.           |
| Freeze    | No holder account can be frozen. Balances stay free to move.   |
| Update    | The name, symbol and image are locked and can never be edited. |

## If something goes wrong

* **You are not the authority.** The connected wallet does not control one of the authorities. Connect the wallet that does.
* **Already revoked.** If an authority was removed earlier, there is nothing left to change for it.
* **Not enough SOL.** Top up and retry.

See the [Error codes reference](/reference/error-codes.md) for more.

## FAQ

<details>

<summary>Can I undo this?</summary>

No. Revoking an authority is permanent. There is no way to restore it.

</details>

<details>

<summary>Will I still be able to add liquidity or trade?</summary>

Yes. Locking authorities does not affect trading, liquidity, or transfers. It only removes your ability to mint, freeze, or edit metadata.

</details>

<details>

<summary>Should I lock metadata before or after setting it?</summary>

After. Get the name, symbol and image exactly right with [Update Metadata](/tools/token/update-metadata.md) first, because once you revoke the update authority you cannot change them.

</details>

## Related tools

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

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

{% content-ref url="/pages/z1CV4bXSoyMhrzsOjmUy" %}
[Revoke Update Authority](/tools/secure/revoke-update-authority.md)
{% endcontent-ref %}

{% content-ref url="/pages/gclVFAjMJFchUipqQNOZ" %}
[Update Metadata](/tools/token/update-metadata.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/make-immutable.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.
