> 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/launch/vanity-token.md).

# Vanity Token

[Vanity Token](https://j.tools/en/tools/vanity-token) mints a normal SPL token, but with one extra touch: the mint address (the contract address everyone sees) matches a custom prefix and/or suffix you pick. Your browser brute-forces a matching keypair locally, then that keypair becomes the real mint when you sign the create transaction. The result is a memorable, branded CA instead of a random string. If you only need a vanity address with no token attached, the [Vanity Wallet Generator](/tools/wallets/vanity-wallet-generator.md) does the same search for plain wallet keypairs.

{% 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 are launching a meme coin or branded token and want a recognizable contract address as part of the brand.
* You want a pattern-matched mint without giving up the usual token controls: metadata, supply, and authority toggles.
* You are prepping for a listing or community sharing where a cleaner public mint identity matters.
* You specifically want a token-focused vanity flow, not a generic vanity wallet or address tool. For that, see [Vanity Wallet Generator](/tools/wallets/vanity-wallet-generator.md).

## Before you start

* A connected wallet ([how to connect](/getting-started/quick-start.md)). This wallet signs, pays, and owns the new token.
* Enough SOL for the platform fee plus network fees and rent for the new mint and metadata accounts.
* A prefix and/or suffix using valid Base58 characters. The input strips anything that is not Base58 for you.
* Some patience. Longer or case-sensitive patterns can take many millions of local attempts.

{% hint style="info" %}
The Vanity Token page opens with the search panel already on. It runs the Token Creator in vanity mode, so you get the full token setup plus the vanity search in one place. No toggle to flip.
{% endhint %}

## Step by step

{% stepper %}
{% step %}

### Open Vanity Token and connect

Connect your wallet if you have not already. You will see the standard token form alongside the vanity search panel.
{% endstep %}

{% step %}

### Fill in the token basics

Enter the name, symbol, decimals and supply. Add a logo and a short description, plus any social links. Set your [authority toggles](/concepts/authorities.md) (revoke mint, freeze, or update) the same way you would in [Token Creator](/tools/launch/token-creator.md). If you want to lock those down later, [Make Immutable](/tools/secure/make-immutable.md) revokes them in one pass.
{% endstep %}

{% step %}

### Enter your prefix and/or suffix

Type the characters you want the mint address to start with, end with, or both. At least one is required to run a search. Turn on case-sensitive matching if the exact capitalization matters. A live difficulty meter shows roughly how many attempts to expect.
{% endstep %}

{% step %}

### Tune the CPU load (optional)

A slider trades search speed against browser responsiveness. Push it up to search faster, or ease it down to keep the tab smooth while it works.
{% endstep %}

{% step %}

### Generate the address

Click Generate. Your browser tries fresh keypairs in batches until one matches the pattern. You can Pause, Resume, or Stop at any time, and watch live attempts, speed, estimated time, and progress as it runs.
{% endstep %}

{% step %}

### Confirm and mint

When a match is found, the mint address appears (copyable, with a clear option). The create button stays disabled until a vanity address exists. Review the fee summary, then sign one transaction. The keypair you found becomes the real SPL mint, launching your token at that custom address.
{% endstep %}
{% endstepper %}

[**Open Vanity Token in the app →**](https://j.tools/en/tools/vanity-token)

{% 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                                                                                                                                    |
| ----------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| Name                          | The full token name shown in wallets and explorers.                                                                                             |
| Symbol                        | The short ticker for your token.                                                                                                                |
| Decimals                      | How divisible each token is. Nine is standard on Solana.                                                                                        |
| Initial supply                | How many tokens are minted to your wallet at creation.                                                                                          |
| Prefix                        | The characters you want the mint address to start with. Optional, Base58 only.                                                                  |
| Suffix                        | The characters you want the mint address to end with. Optional, Base58 only.                                                                    |
| Case-sensitive                | When on, the match respects exact capitalization, which is harder and slower to find. When off, the search is case-insensitive and much faster. |
| CPU load                      | Controls search speed. Higher is faster but heavier on the browser.                                                                             |
| Description / image / socials | Optional metadata for the token, same as standard Token Creator.                                                                                |

{% hint style="warning" %}
Difficulty grows fast with pattern length. A short pattern can resolve in seconds, but each extra character multiplies the work, and case-sensitive patterns multiply it further. Patterns that would take more than a trillion expected attempts are blocked outright. The difficulty meter is an estimate based on probability, so real times vary and a strict pattern can run much longer than the meter suggests.
{% endhint %}

## How the search works

The brute-force runs entirely in your browser. It keeps generating fresh keypairs and checking whether the public key, in Base58, matches your prefix and/or suffix. Nothing leaves your machine during the search. No private key is sent anywhere; the matching keypair only ever becomes a real mint after you sign the create transaction yourself.

A few practical notes:

* Case-insensitive patterns search a smaller effective character space, so they land far faster than case-sensitive ones of the same length.
* The search runs on the main thread, so very heavy patterns can make the tab feel busy. Lowering the CPU load slider keeps things responsive.
* A single run is capped, so an unrealistic pattern will stop rather than spin forever. Shorten it or drop case-sensitivity and try again.

{% hint style="info" %}
Treat the generated mint keypair as sensitive until you have signed the create transaction. It is the address you are about to launch under.
{% endhint %}

## If something goes wrong

* **The search runs forever.** Your pattern is too hard. Make it shorter, or turn off case-sensitive matching, then generate again.
* **Pattern blocked as impossible.** The expected attempts crossed the safety cap. Pick a simpler prefix or suffix.
* **Invalid characters disappear as you type.** That is expected. Mint addresses are Base58, so the input drops characters that cannot appear in one.
* **Create button is disabled.** It reads "Generate Vanity Address First" until a match exists. Run the search to completion, then submit.
* **Not enough SOL.** Creation needs SOL for the fee plus rent for new accounts. Top up and retry.
* **Wallet rejected or transaction expired.** Reconnect and submit again.

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

## FAQ

<details>

<summary>Is the vanity address as safe as a normal one?</summary>

Yes. The keypair is generated the same way a normal Solana keypair is, just repeatedly until the public key matches your pattern. The private key never leaves your browser, and it only becomes a live mint once you sign the create transaction.

</details>

<details>

<summary>Why is a case-sensitive pattern so much slower?</summary>

Case-sensitive matching has to hit the exact capitalization, which roughly doubles the character space the search works against. Each extra character then compounds that. If you do not need exact case, leave it off and the search finishes much sooner.

</details>

<details>

<summary>Can I run a prefix and a suffix at the same time?</summary>

Yes. You can set either one or both. Requiring both at once makes the match rarer, so expect it to take longer than a single side.

</details>

<details>

<summary>What kind of token does this create?</summary>

A standard SPL token with Metaplex-style metadata, the same as [Token Creator](/tools/launch/token-creator.md). If you need transfer fees or other on-chain extensions, use the [Token2022 Creator](/tools/launch/token2022-creator.md) instead. The [SPL vs Token2022](/concepts/spl-vs-token2022.md) explainer covers when each makes sense.

</details>

<details>

<summary>Does J Tools hold my token or keys?</summary>

No. The keypair is generated locally in your browser, the token is minted straight to your wallet, and you sign everything yourself.

</details>

## Related tools

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

{% content-ref url="/pages/mWQIUBQRJfkUsesYGSHo" %}
[Vanity Wallet Generator](/tools/wallets/vanity-wallet-generator.md)
{% endcontent-ref %}

{% content-ref url="/pages/V8dzEpBXd6VfIgTcKdKq" %}
[Token Clone](/tools/launch/token-clone.md)
{% endcontent-ref %}

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

{% content-ref url="/pages/QT0nYfDbGpJo4Cm5Tbs6" %}
[Create LP](/tools/liquidity/create-lp.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/launch/vanity-token.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.
