> 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

[Vanity Wallet Generator](https://j.tools/en/tools/vanity-wallet-generator) creates Solana wallets right in your browser. In Normal mode it mass-produces fresh keypairs. In Vanity mode it keeps spinning up random keypairs until each address matches a Base58 pattern you choose, like an address that starts with `Sol`. Every wallet comes with its public key, private key, recovery phrase, and derivation path, ready to export as CSV, XLSX, or JSON.

This tool is free and runs entirely on your machine. There is no fee, no signing, and no wallet connection required.

## When to use this

* 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, use [Vanity Token](/tools/launch/vanity-token.md). 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.

{% hint style="danger" %}
Exports and the on-screen results always reveal full private keys, and the recovery phrase when shared mnemonic is on. 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. 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 / Load** slider to balance 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 search loops random keypairs locally in your browser until each wallet matches 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

| Field               | What it does                                                                                                                                              |
| ------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 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.                                       |
| CPU / Load          | A slider from 5 to 30 (default 30) that caps the search rate. Lower keeps your PC responsive; higher searches faster but can slow the machine.            |
| Use Shared Mnemonic | Off by default. On, one 24-word phrase is reused across all wallets with sequential derivation paths. Off, each wallet gets its own fresh 24-word 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 %}

## If something goes wrong

* **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.** Generation is single-threaded JavaScript. A very strict pattern can lock up the page. Lower the CPU / Load 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.

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

## FAQ

<details>

<summary>Is this really free? I saw a fee mentioned somewhere.</summary>

Yes, it is free. There is no platform fee and no on-chain transaction. Some older in-app help text wrongly mentions a `0.6 SOL` fee for vanity mode. That copy is out of date. The tool charges nothing. You can confirm it on the [Fee schedule](/reference/fee-schedule.md).

</details>

<details>

<summary>Where do the wallets get created?</summary>

Entirely in your browser, on your own device. Nothing is sent to a server and no wallet connection is needed. That is also why securing the exported files is on you.

</details>

<details>

<summary>What is the difference between shared and per-wallet mnemonics?</summary>

With Use Shared Mnemonic off, each wallet has its own separate 24-word recovery phrase. With it on, one phrase is generated once and every wallet is derived from it using sequential paths. Shared is handy when you want a single phrase to restore the whole set; separate phrases keep each wallet independent.

</details>

<details>

<summary>How long should a vanity pattern take?</summary>

Difficulty rises by about 58x per extra character, so a 2- or 3-character pattern is quick and a 5- or 6-character one can be impractical in a browser. Watch the live Estimated Difficulty before you start, and remember Case Sensitive makes it harder.

</details>

<details>

<summary>Can I import these wallets into Phantom or Solflare?</summary>

Yes. Each export includes the mnemonic and derivation path, which is what Solana wallets use to import. Keep those files private, since anyone with them controls the wallets.

</details>

## Related tools

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

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

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

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