> 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/concepts/spl-vs-token2022.md).

# SPL vs Token-2022

Solana has two token programs. Classic **SPL** is the original standard that most tokens still use. **Token-2022** is the newer program that keeps everything SPL does and adds optional on-chain features through extensions, like a transfer fee baked into the token itself.

Both mint real, tradable tokens. The choice is about what behavior you want built into the token, and whether the extra features are worth a few practical trade-offs. This page lays out the difference so you can pick before you launch.

J Tools ships a creator for each program: classic SPL through the [Token Creator](/tools/launch/token-creator.md), and the extended program through the [Token2022 Creator](/tools/launch/token2022-creator.md). Once you know which one fits, you mint in a couple of minutes from your own wallet.

[**Explore the tools in the app →**](https://j.tools/en/tools)

```mermaid
flowchart TD
    A{"Need a Token-2022 only feature?"} --> B["Transfer fees"]
    A --> C["Confidential transfers"]
    A --> D["Interest-bearing or metadata on the mint"]
    B --> E["Token-2022"]
    C --> E
    D --> E
    A -->|None of these| F["Classic SPL"]
    classDef brand fill:#EF2A2A,stroke:#EF2A2A,color:#ffffff,font-weight:bold;
    classDef soft fill:#1f2937,stroke:#374151,color:#e5e7eb;
    class E,F brand;
    class A,B,C,D soft;
```

## The short version

* **Classic SPL** is the safe default. It is the most widely supported, every wallet and DEX handles it, and there are no surprises. Most launches want this.
* **Token-2022** is for when you need a feature SPL cannot do natively, the most common being a **transfer fee** (a tax taken on every transfer, on-chain, automatically).
* Some pools and scanners read Token-2022 differently from classic SPL. That is not a flaw in your token, but it changes how a few tools display value and labels. More on that below.

{% hint style="info" %}
Pick the program **before** you mint. A token's program is fixed at creation. You cannot convert a classic SPL token into a Token-2022 token, or the other way around, after the fact.
{% endhint %}

## Compare the two

{% tabs %}
{% tab title="Classic SPL" %}
**What it is:** the original Solana token program. Plain, predictable, supported everywhere.

**Good for:**

* Community coins, memes, and most project tokens.
* Anyone who wants the widest wallet and DEX compatibility.
* Launches that do not need an on-chain tax or other special behavior.

**What you get:** name, symbol, supply, decimals, metadata, and the standard mint, freeze, and update authorities you can revoke later.

**Mint it with:** [Token Creator](/tools/launch/token-creator.md) ([open it in the app](https://j.tools/en/tools/token-creator)).
{% endtab %}

{% tab title="Token-2022" %}
**What it is:** the extended token program. Everything SPL does, plus optional extensions you turn on at creation.

**Good for:**

* Tokens that need a **transfer fee** (a percentage taken on every transfer, enforced on-chain).
* Projects that want behavior the base SPL program cannot express.

**Trade-offs to know:**

* Slightly less universal support than classic SPL across older tooling.
* A few pools and scanners treat it differently when reading liquidity or labeling tokens.
* Extensions are set at creation. Plan them before you mint.

**Mint it with:** [Token2022 Creator](/tools/launch/token2022-creator.md) ([open it in the app](https://j.tools/en/tools/token2022-creator)).
{% endtab %}
{% endtabs %}

## When to choose which

Run through these in order. The first one that fits decides it.

{% stepper %}
{% step %}

### Do you need a transfer fee or another extension?

If yes, you need **Token-2022**. A transfer fee (tax on every transfer) is the headline reason most teams reach for it, and classic SPL cannot do it natively. Open the [Token2022 Creator](/tools/launch/token2022-creator.md) and [launch it in the app](https://j.tools/en/tools/token2022-creator).
{% endstep %}

{% step %}

### Do you just want a normal token?

If you only need name, symbol, supply, and metadata with nothing fancier, go with **classic SPL**. It is the most compatible and the simplest path. Open the [Token Creator](/tools/launch/token-creator.md) and [launch it in the app](https://j.tools/en/tools/token-creator).
{% endstep %}

{% step %}

### Still unsure?

Default to **classic SPL**. You can always launch a second token later if a project genuinely needs an extension. Picking SPL keeps the most doors open with the fewest edge cases.
{% endstep %}
{% endstepper %}

## The practical caveat: pools and scanners

Token-2022 mints carry extra on-chain data that older, SPL-only tooling does not expect. When a tool reads only the classic SPL layout, a Token-2022 token can come back looking wrong even though the token itself is fine.

Two things you might run into:

* **LP value reads as zero or off.** A naive scanner that assumes classic SPL can mis-read a Token-2022 liquidity position, so a pool's value may show as `$0.00` when it actually holds funds.
* **Labels show as "Unknown".** A tool that detects token type by the classic mint program alone can mislabel a Token-2022 mint, for example tagging it as `Unknown` in a burn or pool view.

J Tools detects Token-2022 mints where it matters and reads them with the right layout, so the figures stay correct. If a Token-2022 token looks mis-valued in some third-party scanner, that is the scanner reading the old layout, not a problem with your token.

{% hint style="warning" %}
PumpSwap liquidity-pool mints can themselves be Token-2022. If you are working with a PumpSwap position and the value or label looks off in any tool, check whether the LP mint is Token-2022 before assuming something is broken.
{% endhint %}

## Fees

Both creators charge a platform fee on top of the Solana network cost, and you see the full breakdown on the fee card before you confirm. Token-2022 creation may sit a little higher than classic SPL because of the extra on-chain setup, but every fee is admin-configurable, so check the in-app summary for the live number.

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

## FAQ

<details>

<summary>Can I convert an SPL token to Token-2022 later?</summary>

No. The token program is fixed at creation. If you decide you need a Token-2022 extension after minting a classic SPL token, you would launch a new token on the Token-2022 program instead.

</details>

<details>

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

It trades on the DEXes and pools that support the program. J Tools works with Raydium (V4, CPMM, and CLMM), Meteora, Orca (Whirlpool), and PumpSwap, so that covers the main venues. A handful of older or SPL-only tools may not read it cleanly. If broad, no-questions-asked compatibility is your priority, classic SPL is the safer pick.

</details>

<details>

<summary>What is a transfer fee?</summary>

It is a percentage taken automatically on every transfer of the token, enforced on-chain by the Token-2022 program. It is the most common reason to choose Token-2022 over classic SPL.

</details>

<details>

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

No. Either creator mints the token straight to your wallet, and you sign everything yourself. Keys never leave your wallet.

</details>

## Related

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

{% content-ref url="/pages/S6GEvm5jvY9iGdFWrfBD" %}
[Token2022 Creator](/tools/launch/token2022-creator.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/concepts/spl-vs-token2022.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.
