> 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 Creator: Custom Mint Address

[Vanity Token](https://j.tools/en/tools/vanity-token) mints an ordinary SPL token, but the mint address (the contract address everyone copies and pastes) starts or ends with characters you pick. Your browser grinds Solana keypairs locally until one matches your pattern, and that keypair becomes the real mint when you sign the create transaction. The point is a memorable, branded CA instead of a random 44-character string.

## What it is / what it does

A Solana mint address is the public key of the keypair you create the token under. Normally that key is random, so you get something like `9xQe...kRvT` that nobody can recognize or recall. Vanity Token lets you choose part of it ahead of time. You tell the tool which characters the address should begin with, end with, or both, and it keeps generating fresh keypairs until the public key matches.

The match is purely cosmetic. A vanity mint is the same kind of account as any other SPL mint, with the same security and the same behavior on-chain. The only difference is that the address reads the way you wanted. Once it exists, you mint a standard token under it: name, symbol, decimals, supply, metadata, and the usual [authority toggles](/concepts/authorities.md), exactly like [Token Creator](/tools/launch/token-creator.md).

If you want a branded address with no token attached, the [Vanity Wallet Generator](/tools/wallets/vanity-wallet-generator.md) runs the same search for plain wallet keypairs.

## Why use this tool

A contract address is the one piece of your token that every holder, scanner, and listing site quotes verbatim. People paste it into wallets, screenshot it, and trust it as the canonical identity of your project. A CA that starts with your ticker or ends in a clean run of characters is easier to recognize at a glance and harder to spoof with a lookalike that does not share the same opening.

You could grind a vanity keypair yourself with a command-line tool, then feed that key into a separate minting flow. That path has sharp edges. The grinder spits out a raw private key as a file or a string, you have to keep it safe, import it correctly, and trust that the minting step actually uses the address you ground. One mistake and you have either leaked the key or launched under the wrong mint. Vanity Token folds both steps into one screen: the search runs in the same browser session that builds the create transaction, the matched key never has to be saved or pasted by hand, and you sign in your own wallet.

This tool is for anyone launching a meme coin, a community token, or a branded asset where the public mint identity is part of the pitch, or prepping a listing where the address goes out to thousands of people.

## How it works (under the hood)

There are two distinct phases, and they happen in different places.

**Phase one: the local grind.** When you click Generate, your browser spins up a pool of Web Workers, one per CPU core you allow, and they brute-force keypairs in parallel off the main thread. Each attempt creates a brand-new Ed25519 keypair, encodes its public key in Base58 (the same encoding Solana uses to display addresses), and checks whether that string starts with your prefix and/or ends with your suffix. If it does not match, the keypair is thrown away and the worker tries again. This runs entirely client-side. No key, candidate or final, is sent anywhere during the search. The reason longer patterns get so much harder is the math of Base58: each extra fixed character cuts the odds of a random match by roughly 58 times, so a 5-character prefix is on the order of 58 times rarer than a 4-character one. Case-sensitive matching makes it harder still, because it removes the slack of accepting either capitalization for each letter. A live difficulty meter estimates the expected attempts before you start.

**Phase two: minting under the matched key.** Once a public key matches, that keypair is held in the browser as the intended mint. Nothing is on-chain yet. When you fill in the token details and submit, the app builds a single Solana transaction that does what a normal token creation does, only the new mint account is the address you just ground instead of a fresh random one. That transaction:

* Creates and initializes the SPL mint account (via the SPL Token program), with your chosen decimals and mint/freeze authorities.
* Creates an associated token account for your wallet and mints the initial supply into it.
* Writes the token metadata (name, symbol, image URI, links) through the metadata program, the same Metaplex-style metadata a standard SPL token carries.
* Attaches the flat platform fee as an explicit transfer instruction inside the same transaction, so the fee and the mint settle together or not at all.

The transaction needs two signatures: yours, from your connected wallet, as the fee payer and authority, and one from the ground keypair, because creating an account at a specific address requires that address to sign its own creation. The ground keypair signs in-browser and lives only in that tab, so treat it as sensitive until you sign. After both signatures are in place, the app broadcasts the transaction to the network through its RPC layer. From that moment the vanity mint is live, and you can revoke its mint, freeze, and update authorities like any other token, for example with [Make Immutable](/tools/secure/make-immutable.md).

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

Use it when:

* You are launching a token and want the contract address to carry your brand, ticker, or a clean recognizable pattern.
* You want the vanity address and the full token setup (metadata, supply, authority toggles) in one flow rather than stitching two tools together.
* You are heading into a listing or a community announcement where the CA gets quoted widely and a memorable one helps.

Skip it when:

* You want a vanity address with no token. Use the [Vanity Wallet Generator](/tools/wallets/vanity-wallet-generator.md).
* You need on-chain extensions like a transfer fee, interest accrual or a permanent delegate. Those live in the [Token2022 Creator](/tools/launch/token2022-creator.md); see [SPL vs Token2022](/concepts/spl-vs-token2022.md) for the tradeoffs.
* You need a long, case-sensitive pattern on a tight deadline. The grind can run far longer than the meter suggests, and very hard patterns are blocked outright.

## 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 the rent for the new mint, the token account, and the metadata account.
* A prefix and/or suffix using valid Base58 characters. The input strips anything that is not Base58 as you type.
* 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. There is 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). To lock them 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 exact capitalization matters. A live difficulty meter shows roughly how many attempts to expect.
{% endstep %}

{% step %}

### Pick the CPU cores (optional)

A slider sets how many CPU cores the search runs on. More cores grind faster in parallel; fewer cores leave the rest of your computer more headroom while it works.
{% endstep %}

{% step %}

### Generate the address

Click Generate. Your browser tries fresh keypairs in batches until one matches. 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 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

* **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 the mint address should start with. Optional, Base58 only.
* **Suffix:** The characters the mint address should end with. Optional, Base58 only.
* **Case-sensitive:** When on, the match must hit exact capitalization, which is harder and slower. When off, the search ignores case and runs much faster.
* **CPU cores:** How many cores the parallel search uses. More cores search faster but can slow the rest of your computer down.
* **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 by about 58, and case-sensitivity multiplies it further. Setting both a prefix and a suffix compounds the odds too, so a two-ended search runs longer than either side alone. Patterns that would take more than a trillion expected attempts are blocked outright. The difficulty meter is a probability estimate, so real times vary and a strict pattern can run far longer than the meter suggests.
{% 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 base.** Each authority you revoke at creation (mint, freeze or update) adds 0.05 SOL, so the fee runs up to 0.35 SOL.

| Cost                 | Amount                                                                     |
| -------------------- | -------------------------------------------------------------------------- |
| J Tools platform fee | 0.2 SOL base + 0.05 SOL per revoked authority (max 0.35 SOL)               |
| Solana network fee   | a small amount paid to validators, plus rent for any new on-chain accounts |

Three separate costs apply, and they are all denominated in SOL.

* **Solana network fee.** The base fee for landing the transaction, 5000 lamports per signature (a fraction of a cent). You pay this for any on-chain action.
* **Account rent.** Creating a token means opening new accounts: the mint, your associated token account, and the metadata account. Solana charges rent-exempt deposits to keep those accounts alive. This is not a fee to J Tools or anyone else. It stays locked in the accounts and is refundable if an account is ever closed and the rent is reclaimed.
* **Platform fee.** The base plus any revoke surcharges, shown in the summary before you sign, attached as an explicit transfer instruction inside the same transaction. You see the exact amount up front, and the fee only settles if the mint settles.

The grinding itself costs nothing on-chain. It uses your CPU, not the network, so you can search, pause, and restart as many times as you like without spending SOL. You only pay when you sign the create transaction. For the current numbers, see the fee schedule referenced in the disclaimer above.

## Common mistakes and troubleshooting

* **The search ran out of attempts.** The grind has a budget of 50 million attempts, split across the workers you allow. When it is spent the run stops with "Failed to generate vanity address after N attempts. Try a shorter pattern." Shorten the pattern, 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.** Expected. Mint addresses are Base58, so the input drops characters that cannot appear in one (no `0`, `O`, `I`, or `l`).
* **Create button is disabled.** It reads "Generate Vanity Address First" until a match exists. Run the search to completion, then submit.
* **Wallet rejected or transaction expired.** A recent blockhash expires after about 150 slots (roughly a minute). Reconnect and submit again.
* **Your computer slows down during the grind.** The search runs in parallel Web Workers off the main thread, so the tab itself stays responsive. If the rest of your machine lags, lower the CPU cores slider to grind on fewer cores.

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

## Advanced tips

* **Aim for a suffix, not a long prefix, if you want recognizability cheaply.** Both cost the same per character, but a short ticker as a prefix plus a one or two character suffix reads as branded without pushing the difficulty into the millions.
* **Grind in advance.** Because the search is free and local, you can run it the night before a launch, leave the match on screen, and only mint when you are ready. Just keep the tab open and the wallet handy, since the keypair lives in that session. Closing or refreshing the tab clears the attempts and any unsaved match.

## Related tools

{% content-ref url="/pages/9r2rW9r83CsCoJpYE8gL" %}
[Solana 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" %}
[Solana Token Clone](/tools/launch/token-clone.md)
{% endcontent-ref %}

{% content-ref url="/pages/gbx1RbByQOVKZzt0PQkP" %}
[Make a Token Immutable](/tools/secure/make-immutable.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/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.
