> 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/token2022-creator.md).

# Token2022 Creator

[Token2022 Creator](https://j.tools/en/tools/token2022-creator) mints a token on Solana's Token Extensions program (Token-2022) and lets you switch on extensions like transfer fee, interest-bearing, default-frozen, permanent delegate, and non-transferable. You configure the token, the flow writes on-chain metadata through the metadata pointer extension, and everything mints in a single signed transaction. Reach for this when a plain SPL token is not enough. If the difference between the two programs is new to you, the [SPL vs Token-2022](/concepts/spl-vs-token2022.md) concept page lays it out, and the [Glossary](/getting-started/glossary.md) covers the terms used below.

{% 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

* Your launch needs an extension a standard SPL token cannot do: a transfer fee, interest accrual, frozen-by-default accounts, a permanent delegate, or a non-transferable (soulbound) mint.
* You want on-chain metadata through the metadata pointer extension instead of a separate Metaplex account.
* You want extension-aware validation and stricter controls in place before you sign.

If you only need a normal token with a name, symbol, supply, and image, the [Token Creator](/tools/launch/token-creator.md) is the simpler choice.

## Before you start

* A connected wallet. A standard adapter (Phantom, Solflare, Backpack) works, or an imported private-key signer through the wallet source selector.
* Mainnet SOL for the platform fee, the Solana network cost, and the mint and account rent. Token-2022 rent runs higher than classic SPL because extensions take up space, so the app warns you when it is significant. The flow rejects a zero-balance wallet and runs a balance pre-check before it sends anything.
* Your token details ready: name (2 to 32 characters), symbol (2 to 10), decimals (0 to 9), and a positive initial supply up to 1,000,000,000,000.
* If you plan to charge a transfer fee, a valid fee recipient wallet address in base58.

{% hint style="warning" %}
This is a live mainnet tool that moves funds. The platform fee plus network cost and Token-2022 mint rent leave your wallet inside the signing transaction. Add-ons stack on top of the base fee: each authority revoke, a custom mint address, and a vanity address each add their own amount. The right-hand fee box shows the full total, the platform fee plus the Solana network cost, before you confirm.
{% endhint %}

## Step by step

{% stepper %}
{% step %}

### Connect and open the form

Connect your wallet through the source selector at the top of the page. The form sits on the left; a live preview of extensions, authorities, and the mint address sits on the right alongside the fee box.
{% endstep %}

{% step %}

### Enter the token basics

Fill in the name, symbol, decimals, and initial supply. Add a description and a logo if you have them (PNG, JPG, GIF, or WEBP upload, or a URL) plus any social links. The image and metadata are uploaded to IPFS before minting and written on-chain through the metadata pointer.
{% endstep %}

{% step %}

### Pick your extensions

Open **Transfer Fee Settings** to set a fee percentage, a max fee cap per transfer, the required recipient wallet, and an optional whitelist. Open **Advanced Extension Settings** for interest-bearing, default-frozen, non-transferable, and permanent delegate. Transfer Fee and Non-Transferable cannot both be on. Memo Required appears in the panel but is not available yet, so leave it off.
{% endstep %}

{% step %}

### Choose authority and address options

Decide whether to revoke the mint, freeze, or update authority. If you are unsure what each one controls, the [Mint, freeze, and update authorities](/concepts/authorities.md) page explains them. Each revoke adds to the fee and is permanent once signed. You can also generate a custom mint address or grind a vanity prefix or suffix locally. Custom and vanity are mutually exclusive.
{% endstep %}

{% step %}

### Review the fee box and preview

Check the total in the fee box, the platform fee plus the Solana network cost, and confirm the live preview shows the extensions, authorities, and mint address you expect.
{% endstep %}

{% step %}

### Create and sign

Click **Create Token**. The flow uploads the image and metadata, builds the Token-2022 mint transaction, and simulates it. Your wallet signs first, the mint keypair signs after, and the app broadcasts. If the revoke or post-mint instructions are too large for one transaction, a second transaction is split off, simulated, signed, and confirmed automatically.
{% endstep %}
{% endstepper %}

[**Open Token2022 Creator in the app →**](https://j.tools/en/tools/token2022-creator)

{% 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 %}

When the mint confirms, a success modal and an explorer link appear, and the commission and tool run are recorded on the server.

## The options, explained

| Field                                     | What it does                                                                                                                                                                                                  |
| ----------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Name / Symbol / Decimals / Initial supply | Core identity. Name 2 to 32, symbol 2 to 10, decimals 0 to 9, supply 1 up to 1,000,000,000,000. Supply is minted to your wallet at creation.                                                                  |
| Description / Image / Socials             | Stored in the token metadata. Image takes a PNG, JPG, GIF, or WEBP upload or a URL, and is pinned to IPFS before minting.                                                                                     |
| Transfer Fee                              | Token-2022 transfer fee config. Set a percentage (converted to basis points), a max fee cap per transfer, a required base58 recipient, and an optional whitelist of wallets. Conflicts with Non-Transferable. |
| Interest Bearing                          | Sets an interest rate, stored as basis points on the mint. The form accepts 0 to 100 percent.                                                                                                                 |
| Default Frozen                            | New token accounts start frozen. The flow thaws your own associated token account before minting to it, and forces freeze-authority revocation when this is on.                                               |
| Permanent Delegate                        | A base58 wallet that can move or burn tokens from any account. Validated as base58 when enabled.                                                                                                              |
| Non-Transferable                          | Mints a soulbound token that cannot be transferred. Conflicts with Transfer Fee.                                                                                                                              |
| Memo Required                             | Shown in the panel but not available yet. Turning it on blocks creation with a validation error, and it is not built into the transaction.                                                                    |
| Metadata Pointer                          | Always on. The mint points at itself, with name, symbol, and URI written through the token metadata extension.                                                                                                |
| Revoke Mint / Freeze / Update             | Each revoke removes that authority in the same flow. Permanent once signed. Each adds to the fee.                                                                                                             |
| Custom Mint Address                       | Generates a random mint keypair in your browser and uses it as the mint. Adds to the fee. Mutually exclusive with Vanity.                                                                                     |
| Vanity Address                            | Grinds a mint keypair with your chosen prefix or suffix locally in the browser. Adds the vanity fee. Mutually exclusive with Custom Mint.                                                                     |

{% hint style="info" %}
The metadata pointer extension is always added for you, so your Token-2022 mint carries on-chain metadata without a separate Metaplex account. There is no toggle to turn it off.
{% endhint %}

## If something goes wrong

* **Extension conflict.** Transfer Fee and Non-Transferable cannot both be on. Turning one on while the other is active triggers the conflict guard (and a shake on the form). Pick one.
* **Memo Required blocks creation.** That option is not available yet. Leave it off to submit.
* **Not enough SOL.** Token-2022 rent can be high, and the flow runs a balance pre-check. Top up and try again.
* **Transaction expired or wallet rejected.** The network was busy and the blockhash aged out, or you declined the signature. Submit again.

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

## FAQ

<details>

<summary>How is this different from the Token Creator?</summary>

The Token Creator mints a standard SPL token. This tool mints on the Token-2022 (Token Extensions) program, which uses a different program ID and supports extensions like transfer fees, interest, and non-transferable mints. If you do not need an extension, the standard creator is simpler.

</details>

<details>

<summary>Will my Token-2022 token trade everywhere?</summary>

Token-2022 uses a different program ID than classic SPL, so support depends on the venue. This tool only mints the token; it does not create liquidity or list it anywhere. Check that your target venue supports Token-2022, and the specific extensions you enabled, before you launch. The [Launch a token](/guides/launch-a-token.md) guide walks through the wider flow, and [DEXes and liquidity](/concepts/dexes-and-liquidity.md) covers where a token actually trades.

</details>

<details>

<summary>What does Default Frozen do to other holders?</summary>

With Default Frozen on, every new token account starts frozen. The flow thaws only your own associated token account so the initial supply can land. Other holders' accounts stay frozen until an authority thaws them, so plan for that before you distribute.

</details>

<details>

<summary>Can I undo an authority revoke?</summary>

No. Revoking the mint, freeze, or update authority is permanent once you sign. Set your metadata exactly right first, then revoke when you are ready.

</details>

<details>

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

No. The token mints straight to your wallet, and you sign every transaction yourself.

</details>

## Related tools

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

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

{% content-ref url="/pages/gclVFAjMJFchUipqQNOZ" %}
[Update Metadata](/tools/token/update-metadata.md)
{% endcontent-ref %}

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

{% content-ref url="/pages/QjZonbkyi16SFPO78cT8" %}
[SPL vs Token-2022](/concepts/spl-vs-token2022.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/token2022-creator.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.
