> 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/token/update-metadata.md).

# Update Token Metadata: Name, Symbol, Logo

[Update Metadata](https://j.tools/en/tools/update-metadata) edits the on-chain metadata of an existing Solana token: its name, symbol, description, logo, and social links. You sign once from the wallet that holds the [update authority](/concepts/authorities.md), and the token contract address, supply, and balances all stay the same. Only the display info changes.

Fix a typo, swap a logo, or add a website and socials without redeploying the mint. The tool writes the Metaplex metadata account, so it covers classic [SPL](/concepts/spl-vs-token2022.md) mints and any Token-2022 mint that has one. A Token-2022 token that stores its metadata inside the mint itself, which is what [Token-2022 Creator](/tools/launch/token2022-creator.md) produces, has no Metaplex account, and the tool stops with **Metadata Account Not Found**.

## How it works (under the hood)

Token metadata on Solana lives in a separate account managed by the Metaplex Token Metadata program. That account stores the name, symbol, and a URI that points to an off-chain JSON file holding the description, image link, and socials. The mint itself only tracks supply and authorities. Your branding sits in this companion metadata account.

When you submit, the tool first uploads any new image and the metadata JSON to J Tools asset storage, then builds an `UpdateMetadataAccountV2` instruction. That instruction rewrites the on-chain name, symbol, and URI, and points the URI at the freshly uploaded JSON. The program enforces one rule above all others: the transaction is only valid if it is signed by the current update authority on that metadata account. Connect any other wallet and the program rejects the write. This is why a text-only edit still needs a real signature. You are authorizing an on-chain state change, not saving a draft.

The platform fee is attached to the same transaction as a separate transfer instruction, so the fee and the metadata update settle together or not at all.

## When to use it

* You hold the update authority and need to fix or refresh your token's branding after launch.
* You want to swap a logo, correct a name or symbol typo, or add a website, Twitter, or Telegram link.
* You just want to inspect a token's current on-chain metadata. The Load step reads it back so you can see what is set before you touch anything.

## Before you start

* A connected wallet that holds the token's update authority ([how to connect](/getting-started/quick-start.md)). The update transaction only goes through if this wallet is the current update authority on the mint.
* The token's mint address (contract address). Pick it with the built-in token selector.
* Enough SOL for the network fee and the platform fee.
* A logo ready to upload if you plan to change it (PNG, JPG, GIF, or WEBP, up to 1 MB).

{% hint style="warning" %}
The token must already have a metadata account. If the mint has never had metadata attached, the tool stops with **Metadata Account Not Found** and you need to create metadata first. Tokens minted with [Token Creator](/tools/launch/token-creator.md) already have a metadata account, so they load and edit straight away. This tool edits existing metadata, it does not create it from scratch.
{% endhint %}

## Step by step

{% stepper %}
{% step %}

### Connect the update-authority wallet

Connect the wallet that holds the mint's update authority. Only that wallet can authorize the change. If you connect a different wallet, the Solana program rejects the transaction.
{% endstep %}

{% step %}

### Enter the mint address

Paste the token's contract address into the mint field, or pick it from the selector.
{% endstep %}

{% step %}

### Load the current metadata

Click **Load** to read the token's current name, symbol, description, image, and socials from chain. The fields pre-fill so you can inspect everything before editing. This step is optional, but it keeps you from overwriting fields you meant to leave alone.
{% endstep %}

{% step %}

### Edit only what you need

Change the name, symbol, or description, upload a new logo, and update the website, Twitter, or Telegram links. Fields you do not touch stay as they were loaded.
{% endstep %}

{% step %}

### Submit and sign

Click **Update Metadata**. The tool uploads your image (if you changed it) and the metadata JSON, then builds the update transaction. Review the fee summary and sign in your wallet. On confirmation you get the transaction signature with Copy and View on Solscan actions.
{% endstep %}
{% endstepper %}

[**Open Update Metadata in the app →**](https://j.tools/en/tools/update-metadata)

{% 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:** The token whose metadata you are editing. Required. Pick it with the token selector.
* **Name:** The token name shown in wallets and explorers. The Metaplex account holds 32 characters. The form does not cut you off, so a longer name is only rejected when you sign.
* **Symbol:** The ticker. Force-uppercased, up to 10 characters.
* **Description:** A short blurb written into the off-chain metadata JSON. Up to 2000 characters.
* **Logo / image:** Upload a new logo, or point to an existing image. Uploaded files and image URLs are copied to J Tools asset storage before the update, and the on-chain record points at the copy. The copy lives at a permanent public HTTPS link, and files are addressed by hash, so re-uploading the same image returns the same URL.
* **Website:** Your project's site. Must be a valid public http or https URL.
* **Twitter:** Your X / Twitter profile. Validated as a public URL.
* **Telegram:** Your Telegram group or channel. Validated as a public URL.

{% hint style="info" %}
Every submit rewrites the full metadata from the form. A field left blank is written as empty, so use Load to pre-fill the current values and never clear a field you want to keep. A blank name is written as `Unknown` and a blank symbol as `UNK`. At least one field has to be filled in before the tool will build the transaction. The rewrite also clears the creator list, the collection and the uses field, and sets the royalty (seller fee) to 0, so a token that carried Metaplex creators or royalties loses them on the first update. The mint, freeze and update authorities are never touched, and the account stays mutable, so this tool never locks a token.
{% endhint %}

## 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.2 SOL.** The tool shows it in the fee summary before you sign. The amount lives in the tool's own config and only moves with a new release, so the number here and the number in the app are the same. The Update button also stays disabled until the wallet holds 0.202 SOL, the fee plus a small network-fee margin.

| Cost                 | Amount                                 |
| -------------------- | -------------------------------------- |
| J Tools platform fee | 0.2 SOL                                |
| Solana network fee   | about 0.000005 SOL, paid to validators |

On top of the platform fee you pay the standard Solana network fee, about 0.000005 SOL for this one-signature transaction. Both costs ride in the same transaction, so the wallet needs a little SOL beyond the platform fee. Nothing here pays rent: the metadata account already exists and you are only rewriting its contents.

## Common mistakes and troubleshooting

* **Metadata Account Not Found.** The mint has no metadata account to edit. You need to create metadata for this token first.
* **You are not the update authority.** The connected wallet does not control this token's update authority, so the program rejects the change. Connect the wallet that does.
* **Editing the wrong field.** Skipping the Load step and typing into an empty form can overwrite values you meant to keep. Load first, then change only what you need.
* **Metadata is locked.** The metadata account is immutable, usually because [Make Immutable](/tools/secure/make-immutable.md) has already run on this mint. The tool stops at the pre-flight check and nothing is signed.

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

## Advanced tips

* **Keep the logo small.** Heavier files slow the upload and gain you nothing at the size wallets and explorers actually render.
* **Keep your socials valid.** Broken or private links get flagged by some explorers. Use full public http or https URLs.

## FAQ

<details>

<summary>Can I still edit metadata after I revoke the update authority?</summary>

No. Once you revoke the update authority, the metadata is frozen for good. Get the name, symbol, and image right here first, then revoke it with [Revoke Update Authority](/tools/secure/revoke-update-authority.md) or [Make Immutable](/tools/secure/make-immutable.md).

</details>

<details>

<summary>How long until wallets show the new branding?</summary>

The on-chain record updates the moment your transaction confirms. Wallets, explorers, and price aggregators cache metadata, so the new name and logo can take from minutes to a few hours to appear everywhere.

</details>

## Related tools

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

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

{% content-ref url="/pages/9r2rW9r83CsCoJpYE8gL" %}
[Solana Token Creator](/tools/launch/token-creator.md)
{% endcontent-ref %}

{% content-ref url="/pages/El6oae0bfwSTjeoxgA0u" %}
[Burn Solana Tokens](/tools/token/burn-tokens.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/token/update-metadata.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.
