> 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-update-authority.md).

# Revoke Update Authority and Lock Metadata

[Revoke Update Authority](https://j.tools/en/tools/revoke-update-authority) permanently locks your token's Metaplex metadata in a single transaction by flipping its `isMutable` flag to false. Once it confirms, the name, symbol, image, description, and social links are frozen forever, and no wallet can edit them again. Teams reach for this right before a [DEX listing](/concepts/dexes-and-liquidity.md) so holders know the branding is final and cannot be swapped out after launch.

## What it is

Every Solana token with on-chain metadata has a Metaplex Token Metadata account, and that account names an **update authority**: the one wallet allowed to change the name, symbol, image URI, description, and links. Revoke Update Authority does not clear that field. It flips the account's `isMutable` flag to false instead, which the Metaplex program treats as a permanent lock: immutable metadata can never be edited again, by any wallet. The tool checks that a metadata account exists for the mint you choose, builds the one instruction that locks it, and broadcasts the transaction you sign. The [authority](/concepts/authorities.md) requirement is enforced by the Metaplex program itself, which only accepts the change when the current update authority signs.

This is a one-way operation. The `isMutable` flag can only ever move from true to false, and the Metaplex program has no instruction that makes immutable metadata editable again. It is also a narrow lock: balances, total supply, and the mint and freeze authorities stay exactly as they were, so locking metadata on its own does not make the whole token immutable.

## Why use this tool

A token whose branding can still be edited is a token whose branding can be rugged. Anyone holding the update authority can change the name and image at any time, even after a listing, and that uncertainty is something experienced buyers check for. Locking the metadata removes the doubt: the identity a holder sees today is the identity they keep.

Doing this by hand means fetching the metadata account, decoding it, building an `UpdateMetadataAccountV2` instruction with `isMutable` set to false, and signing it correctly. This tool does that derivation and construction for you. It is built for token creators and project teams finishing a launch, and for anyone who holds the update authority on an existing [SPL](/concepts/spl-vs-token2022.md) mint and wants to retire it for good.

## How it works (under the hood)

When you select a mint, J Tools derives its Metaplex Token Metadata account address (a program-derived address tied to the mint) and reads it. If no metadata account exists, there is nothing to revoke and the tool stops you. If it exists, the check passes. The tool also decodes the account and checks two things before it lets you sign: that the metadata is still mutable, and that your connected wallet is the current update authority. If the metadata is already immutable, or the authority belongs to another wallet, the action is blocked in preflight with a plain error instead of being pushed into a failing wallet simulation.

When you confirm, the tool builds an `UpdateMetadataAccountV2` instruction against the **Metaplex Token Metadata program** that flips the metadata's `isMutable` flag to false and leaves every other field untouched, including the update authority address itself. Your connected wallet must currently be that update authority, because the Metaplex program only accepts the change from the existing authority. The tool checks this on-chain first, so a mismatch is blocked with a not-authority error before your wallet is ever opened. The transaction carries two things: the metadata instruction that locks the account, and a SOL transfer instruction that pays the platform fee. Both ride in the same transaction, so the fee is paid only if the revoke succeeds.

After the transaction confirms, the tool reads the metadata back and verifies `isMutable` is now false. The update authority address still shows on the account, but it can never change the metadata again.

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

Use it when:

* You have finished branding the token (name, symbol, image, links) and want to lock it before listing.
* You want to signal to holders that the token identity cannot be silently changed after launch.
* You hold the metadata update authority for an existing SPL mint and want to retire it for good.

Do not use it when:

* You still might edit the metadata. Once revoked there is no way back. Get everything right with [Update Metadata](/tools/token/update-metadata.md) first.
* You want to fix supply or remove freezing instead. To fix supply only, use [Revoke Mint](/tools/secure/revoke-mint.md); to remove account freezing, use [Revoke Freeze](/tools/secure/revoke-freeze.md).
* You want to remove every authority at once (mint, freeze, and update). Use [Make Immutable](/tools/secure/make-immutable.md) for a single full lock.

## Before you start

* A connected wallet ([how to connect](/getting-started/quick-start.md)) that currently holds the token's metadata update authority. This is the wallet that signs. If it is not the update authority, the tool blocks the action before you sign.
* The token's [mint address (CA)](/getting-started/glossary.md). Pick it with the built-in token selector.
* A token that already has a Metaplex metadata account. The status check must show **Metadata Found** before you can proceed.
* Enough SOL in that wallet for the network fee and the platform fee.

{% hint style="warning" %}
Finish every metadata edit first. Get the name, symbol, image, and links exactly right with [Update Metadata](/tools/token/update-metadata.md), because once you revoke the update authority there is no way back. The `isMutable` flag only moves from true to false, and the Metaplex program exposes no instruction that makes immutable metadata editable again.
{% endhint %}

## Step by step

{% stepper %}
{% step %}

### Connect and paste the mint

Connect the wallet that holds the update authority (the header wallet or an imported private key through the Wallet Source selector). Paste the token mint address into the selector.
{% endstep %}

{% step %}

### Check the metadata status

J Tools derives the metadata account for the mint and shows a status badge: **Metadata Found**, **Metadata Missing / Invalid**, or **Loading**. You cannot continue if metadata is missing, so confirm the badge reads **Metadata Found**.
{% endstep %}

{% step %}

### Read the warning, then revoke

Review the irreversible-action notice. When you are sure the branding is final, click **Revoke Update Authority**. J Tools builds the transaction that flips the metadata's `isMutable` flag to false, adds the platform fee to the same transaction, and asks you to sign. Approve it in your wallet.
{% endstep %}

{% step %}

### Confirm and copy the signature

The page waits for confirmation and records the fee. On success it shows the signature with **Copy Signature** and **View On Solscan** so you can verify the change on-chain.
{% endstep %}
{% endstepper %}

[**Open Revoke Update Authority in the app →**](https://j.tools/en/tools/revoke-update-authority)

{% 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 whose update authority will be revoked, entered through the built-in token selector. As you type, J Tools derives the metadata account and shows whether it was found.
* **Wallet Source:** Picks which wallet signs, either your connected header wallet or a key imported through the Wallet Source selector. Whichever you choose must currently be the update authority on the mint's metadata.
* **Metadata status badge:** A read-only indicator showing **Metadata Found**, **Metadata Missing / Invalid**, or **Loading**. It gates the action: you can only revoke when it reads **Metadata Found**.
* **Revoke Update Authority button:** Builds and submits the transaction that locks the metadata by setting `isMutable` to false and attaches the platform fee. This is the irreversible step.

## 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 small amount paid to validators, plus rent for any new on-chain accounts |

On top of the platform fee you pay the standard Solana network fee, a few thousand lamports, for including the transaction on-chain. There is no rent to deposit here, because you are updating an existing account rather than creating a new one. You pay once, per revoke.

## Common mistakes and troubleshooting

* **Metadata account was not found.** The mint has no Metaplex metadata account, or the address is wrong. Double-check the CA. A token with no metadata account has no update authority to revoke.
* **Wrong wallet.** The connected wallet does not hold the update authority. Connect the wallet that does, then retry.
* **Metadata is already immutable.** The `isMutable` flag is already false, so there is nothing left to lock. The run is blocked in preflight and nothing is charged.
* **Lock did not verify.** After the transaction confirms, the tool re-reads the metadata account. If `isMutable` is still true it reports the revoke as not applied rather than treating a no-op as a success.
* **Revoked too early.** If you locked the metadata before finishing the branding, there is no recovery. The metadata is now permanent. Edit before you revoke, never after.

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

## Advanced tips

* **Order does not matter across the three.** Revoking update, [mint](/tools/secure/revoke-mint.md), and [freeze](/tools/secure/revoke-freeze.md) are independent. You can do them in any order, or in one batch, without affecting each other.
* **Verify after.** Open the token's metadata on Solscan and confirm it shows **Mutable: No**, so you have proof for holders and listing reviewers. The update authority address still appears on the account; that is expected, and it can no longer change anything.

## Related tools

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

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

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

{% content-ref url="/pages/3mfyP8upN3tiDTB59aRi" %}
[Revoke Freeze Authority](/tools/secure/revoke-freeze.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-update-authority.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.
