> 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/wallets/vanity-wallet-generator.md).

# Vanity Wallet Generator: Custom Address

[Vanity Wallet Generator](https://j.tools/en/tools/vanity-wallet-generator) makes Solana wallets right in your browser, with an extra trick: it can hunt for an address that matches a pattern you pick, like one that starts with `SoL`. In Normal mode it mass-produces fresh keypairs. In Vanity mode it keeps deriving fresh addresses until each one fits your chosen prefix, suffix, or contains string. Every wallet arrives with its public key, private key, recovery phrase, and derivation path, ready to export as CSV, XLSX, or JSON.

## What it is

A client-side keypair generator. You set a wallet count and, optionally, a Base58 pattern. Normal mode hands you that many fresh wallets immediately. Vanity mode grinds addresses locally until each one matches the pattern, then keeps the matches. The matching is cosmetic. A vanity address is a normal Solana wallet that happens to read nicely, and it carries no special powers or extra security.

## Why use this tool

A recognizable address is easier to spot in a list of transfers, a treasury record, or a campaign payout sheet. Picking out `SoL...` at a glance beats scanning a wall of random Base58. Normal mode also covers the plain case, a large batch of wallets with their phrases and paths already laid out for export. Everything runs on your own machine, so there is nothing to connect and no SOL to spend.

## How it works (under the hood)

The whole process happens in your browser. The tool never sends your wallets, keys, or recovery phrases to any server, and it signs nothing, because no transaction is involved in generating a keypair.

In Normal mode the tool derives each wallet from a fresh BIP39 24-word phrase (or from one shared phrase using sequential derivation paths, if you turn that on). That is it. There is no searching.

In Vanity mode the tool first auto-generates one shared 24-word phrase for the run, then spreads the search across parallel Web Workers, one per CPU core you allow. Each worker derives addresses from that phrase at increasing derivation indices (m/44'/501'/{index}'/0') and checks each resulting Base58 address against your prefix, suffix, or contains pattern. Misses are discarded and the worker moves to the next index, thousands of times per second, until enough matches are found. Every extra character you require multiplies the search space by roughly 58, so the wait grows fast as the pattern gets longer. The CPU cores slider sets how many workers run at once, trading speed against keeping the rest of your machine usable. None of this touches the network.

## When to use it

* You want branded or recognizable wallet addresses (for example, ones starting with `SoL`) for a campaign, an ops set, or a treasury.
* You need a batch of plain wallets fast, with no pattern, using Normal mode.
* You want exportable wallets with mnemonic and derivation path to import into Phantom, Solflare, or another Solana wallet.

If you want a custom token *mint* address instead of a wallet address, that is the separate paid [Vanity Token](/tools/launch/vanity-token.md) tool (0.2 to 0.35 SOL); wallet addresses stay free here. For a plain bulk run with no pattern, [Wallet Generator](/tools/wallets/wallet-generator.md) does the same Normal-mode job. To create wallets for distribution flows, pair this with [Multi Sender](/tools/wallets/multi-sender.md) or [Batch Collector](/tools/wallets/batch-collector.md). New to the terms? The [Glossary](/getting-started/glossary.md) covers keypair, mnemonic, and derivation path.

## Before you start

* A modern browser. Everything runs client-side, so you do not need to connect a wallet or hold any SOL.
* A wallet count between 1 and 5000 (whole numbers only).
* For Vanity mode, at least one pattern: a prefix, a suffix, or a contains string. Each must be Base58 (no `0`, `O`, `I`, or `l`) and at most 8 characters.
* A realistic pattern length. Keep vanity patterns to 2 to 4 characters. A 5- or 6-character exact match can run for hours and may never finish in a browser.

{% hint style="danger" %}
Exports and the on-screen results always reveal full private keys and recovery phrases: in Normal mode one phrase per wallet, or the single shared phrase when the toggle is on; in Vanity mode always the run's one shared phrase. The tool says so directly: **Sensitive Export Is Always Enabled.** Store these files somewhere safe. If you lose them, the wallets cannot be recovered.
{% endhint %}

## Step by step

{% stepper %}
{% step %}

### Set the wallet count

Open the tool and choose how many wallets to generate, from 1 to 5000. Optionally turn on **Use Shared Mnemonic** if you want all wallets derived from a single recovery phrase instead of one phrase per wallet.
{% endstep %}

{% step %}

### Generate plain wallets (Normal mode)

Click **Generate Normal** to bulk-create that many wallets with no pattern. Each one is derived from a fresh BIP39 24-word phrase, or from the shared phrase if you turned the toggle on. The Normal Generator Output panel previews the first few results.
{% endstep %}

{% step %}

### Set up a vanity pattern

In the Vanity Address block, enter at least one of **Prefix**, **Suffix**, or **Contains** (Base58, up to 8 characters each). Toggle **Case Sensitive** if the casing must match exactly, and set the **CPU cores** slider to choose how many cores join the search, balancing speed against keeping your PC responsive.
{% endstep %}

{% step %}

### Check the difficulty, then start

Read the live **Estimated Difficulty** before you commit. It grows by roughly 58x for every extra character. When you are happy, click **Generate Vanity**. A modal shows live Found, Done, Attempts, Rate, and an ETA.
{% endstep %}

{% step %}

### Let it search, or stop anytime

The worker pool keeps deriving and checking addresses locally in your browser until enough wallets match the pattern. Click **Stop Search** whenever you want. Any matches found so far are kept.
{% endstep %}

{% step %}

### Review and export

Inspect matches in the results panel. Per row you can **Copy Public**, **Copy Private**, or **Copy All** (public, private, and mnemonic). Then export every matched wallet as CSV, XLSX, or JSON.
{% endstep %}
{% endstepper %}

[**Open Vanity Wallet Generator in the app →**](https://j.tools/en/tools/vanity-wallet-generator)

## The options, explained

* **Wallet Count:** how many wallets to generate this run. A whole number from 1 to 5000. Applies to both Normal and Vanity modes.
* **Prefix:** Base58 text the address must start with. Optional, up to 8 characters.
* **Suffix:** Base58 text the address must end with. Optional, up to 8 characters.
* **Contains:** Base58 text the address must contain anywhere. Optional, up to 8 characters. At least one of prefix, suffix, or contains is required for vanity mode.
* **Case Sensitive:** off by default, so matching ignores case. Turn it on to require exact casing, which roughly doubles the difficulty for each letter in the pattern (a 3- or 4-letter pattern gets around 8 to 16 times harder).
* **CPU cores:** a slider from 1 up to your machine's core count, and it starts at every core. It sets how many parallel Web Workers run the search. Drag it down if you need the rest of the machine responsive; leave it where it is for the fastest grind.
* **Use Shared Mnemonic:** off by default, and it only affects Normal mode. On, one 24-word phrase is reused across all wallets with sequential derivation paths. Off, each wallet gets its own fresh 24-word phrase. Vanity mode ignores this toggle: every vanity run derives all matches from one auto-generated shared phrase.

{% hint style="info" %}
Patterns use Base58, the same alphabet Solana addresses use. It leaves out `0`, `O`, `I`, and `l` to avoid look-alikes, so those characters are not valid in a pattern.
{% 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 %}

**This tool is free.** There is no platform fee. The grinding runs locally in your browser, so you pay nothing.

| Cost                 | Amount                                 |
| -------------------- | -------------------------------------- |
| J Tools platform fee | Free (0 SOL)                           |
| On-chain cost        | None, it runs entirely in your browser |

There is also no network fee. Generating a keypair is pure math on your own device, not an on-chain transaction, so no SOL leaves any wallet and there is no rent or signature fee. You only start spending SOL later, when you actually fund or transact with one of these wallets on mainnet.

## Security and custody

The exports always carry full private keys and recovery phrases, one phrase per wallet or a single shared one, and whoever holds those files controls the wallets. In Vanity mode every match in a run derives from one shared phrase, so a single leaked phrase from that export exposes every wallet the run found. Keys are created on your own machine and never uploaded, which also means nobody (including J Tools) can recover them if you lose the file. Store it offline, not in a folder a screenshot, sync service, or shared drive might leak.

## Common mistakes and troubleshooting

* **The search never finishes.** Longer or case-sensitive patterns blow up the search space. A 5- or 6-character pattern can mean billions or trillions of tries and may not complete in a browser. Shorten the pattern, turn off Case Sensitive, or use Contains instead of an exact prefix.
* **The tab freezes or slows down.** The search runs in a Web Worker pool off the main page, but a very strict pattern can still strain the machine. Lower the CPU cores slider, or click Stop Search and try an easier pattern.
* **Invalid pattern.** The prefix, suffix, or contains value has a character outside Base58 (like `0`, `O`, `I`, or `l`) or is longer than 8 characters. Fix the value and try again.
* **Wallet count rejected.** The count must be a whole number from 1 to 5000.
* **Closed the tab before exporting.** Wallets live only in the page while it is open. If you close or refresh without exporting, the run is gone. Export CSV, XLSX, or JSON before you leave.

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

## Advanced tips

* **Use Contains for speed.** A contains match has many more valid positions than an exact prefix, so it lands far faster for the same character count. Reach for it when you just want the pattern somewhere in the address.
* **Generate plain wallets for the batch, vanity for the few that matter.** Use Normal mode for a large funding set, then run Vanity mode only for the one or two addresses people will actually read.

## Related tools

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

{% content-ref url="/pages/SZW5Dy4404uBRAQWvGqI" %}
[Vanity Token Creator](/tools/launch/vanity-token.md)
{% endcontent-ref %}

{% content-ref url="/pages/ABVX2mBQDoCv7DEdVmKp" %}
[Multi Sender and Airdrop](/tools/wallets/multi-sender.md)
{% endcontent-ref %}

{% content-ref url="/pages/7CPBHR61Y6akMdkeSBGW" %}
[Batch SOL and Token Collector](/tools/wallets/batch-collector.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/wallets/vanity-wallet-generator.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.
