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

# Wallet Generator

[Wallet Generator](https://j.tools/en/tools/wallet-generator) builds new Solana wallets in bulk, right in your browser. Each one comes with a public address, a private key, and a 24-word [recovery phrase](/getting-started/glossary.md). You pick how many you need, generate them locally, and export the whole set to CSV, XLSX, or JSON. Nothing touches the chain and no keys ever leave the page.

{% 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 and runs entirely client-side. There is no platform fee and no on-chain transaction.

## When to use this

* You need a large set of Solana wallets for a test environment, a payout run, or a campaign setup.
* You want repeatable bulk creation with a clean export instead of making wallets one at a time.
* You need the keys in more than one format (Base58, Base64, or a JSON array) for import into Phantom or Solflare, or for programmatic use.

Once you have the set, a payout run pairs well with [Multi Sender](/tools/wallets/multi-sender.md), and sweeping leftovers back later is what [Batch Collector](/tools/wallets/batch-collector.md) is for.

## Before you start

* No wallet connection is needed. The tool is fully client-side, so there is no SOL to spend and no transaction to sign.
* Have a safe place ready to store the exported file. The private keys and recovery phrases inside it are sensitive, and there is no way to recover them if the file is lost.

{% hint style="danger" %}
The export includes full private keys and 24-word recovery phrases in plain text. Treat the file like cash. Store it offline, never share it, and never paste a private key back into chat or any web form.
{% endhint %}

## Step by step

{% stepper %}
{% step %}

### Open the tool

Go to the Wallet Generator page. There is nothing to connect, so you can start right away.
{% endstep %}

{% step %}

### Set the wallet count

Enter how many wallets you want, anywhere from 1 to 5000. The field defaults to 10. Large runs are processed in batches of 100 so the page stays responsive.
{% endstep %}

{% step %}

### Choose your mnemonic mode

Leave **Use Shared Mnemonic** off to give each wallet its own 24-word phrase. Turn it on to derive every wallet from a single phrase, each at its own index. Either way, every wallet is independent and holds its own balance.
{% endstep %}

{% step %}

### Generate

Click **Generate Wallets**. Keys are created locally in your browser from a 24-word BIP39 mnemonic and the standard Solana derivation path `m/44'/501'/{index}'/0'`. Nothing is sent to a server.
{% endstep %}

{% step %}

### Review the results

Check the Summary panel for Requested, Generated, and Failed counts. The preview terminal shows the first 150 rows. Use the per-row Copy Public, Copy Private, and Copy All buttons as needed.
{% endstep %}

{% step %}

### Export the full set

Download the complete batch as CSV, XLSX, or JSON. Files are named `wallet-generator-{timestamp}.{ext}` and built in the browser. The preview only shows the first 150 wallets, so the export is the only place the full set lives.
{% endstep %}
{% endstepper %}

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

## The options, explained

| Field               | What it does                                                                                                                                                                                                                                                         |
| ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Wallet Count        | How many wallets to generate. Any whole number from 1 to 5000. Defaults to 10, and input is clamped to that range.                                                                                                                                                   |
| Use Shared Mnemonic | Off by default, so each wallet gets its own fresh 24-word phrase. Turn it on and one phrase is generated once, then reused, with each wallet derived at a distinct index on `m/44'/501'/{i}'/0'`. Derived wallets are still separate and each must hold its own SOL. |

{% hint style="info" %}
Shared mnemonic mode is handy when you want one phrase to back up a whole set. It does not pool funds. Each derived address is a distinct wallet with its own balance.
{% endhint %}

## What you get per wallet

Every generated wallet includes its public address, the private key in Base58, Base64, and JSON-array form, the 24-word recovery phrase, and the derivation path. The export carries all of these. That is why the file is sensitive: it holds everything needed to control the wallets.

## If something goes wrong

* **The count is rejected.** The valid range is 1 to 5000. Values outside it are clamped, so check the field if the number changed on you.
* **The preview looks incomplete.** That is expected. The preview caps at 150 rows. The full batch is in the export file, not the on-screen list.
* **The browser slows on a big run.** Large batches generate in chunks of 100. Give it a moment and let the Summary panel finish counting.

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

## FAQ

<details>

<summary>Does J Tools store these wallets or keys?</summary>

No. Generation and key handling run locally in your browser session. J Tools does not store wallet logs or private keys on any server. If you lose the keys or the recovery phrase, access cannot be recovered.

</details>

<details>

<summary>Are the wallets funded?</summary>

No. Every generated wallet starts empty. Each one is independent and must be funded with its own SOL before it can transact, even in shared mnemonic mode.

</details>

<details>

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

Yes. The export gives the private key in Base58, Base64, and JSON-array form, plus the 24-word phrase, which covers the common import paths for Phantom, Solflare, and programmatic use. If you want a memorable address instead of a random one, generate it with the [Vanity Wallet Generator](/tools/wallets/vanity-wallet-generator.md) first.

</details>

<details>

<summary>What is the difference between the two mnemonic modes?</summary>

With shared mnemonic off, each wallet gets a brand new 24-word phrase. With it on, one phrase backs the whole set and each wallet sits at a different derivation index. Both produce independent wallets.

</details>

## Related tools

{% content-ref url="/pages/mWQIUBQRJfkUsesYGSHo" %}
[Vanity Wallet Generator](/tools/wallets/vanity-wallet-generator.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 %}

{% content-ref url="/pages/eyvl1w0Ri5KEBHvrUAxz" %}
[Many to Many](/tools/wallets/many-to-many.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/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.
