solana

How to Create a Mintable SPL Token on Solana

Learn how to create a mintable SPL token on Solana, understand mint authority, mint more supply later, and decide when to revoke authority.

December 16, 2025
How to Create a Mintable SPL Token on Solana

How to Create a Mintable SPL Token on Solana

A mintable SPL token is a Solana token whose mint authority is still active. That means the current authority holder may be able to mint more supply later for rewards, vesting, treasury operations, staged launches, or other planned token mechanics.

This guide explains how to create a mintable SPL token on Solana, how mint authority works, how decimals affect supply, how to mint more tokens later, and when to revoke mint authority after your final supply plan is ready.

DEXArea provides a no-code, non-custodial token creation workflow. Your wallet signs transactions, and your private keys stay in your wallet.

You can create a token with the DEXArea Token Creator, mint more supply with Mint Tokens, and revoke authority with Revoke Mint Authority when your plan is complete. For deeper context, see What Is Mint Authority on Solana?.

Security note

A mintable token requires clear authority management. Test on Devnet first, keep authority wallets secure, and do not revoke mint authority until your planned supply is complete.

Create, Mint, and Manage Mint Authority

TL;DR

  • A mint account represents the token itself, including decimals, supply, mint authority, and optional freeze authority.
  • A token account / ATA holds a wallet's balance for a specific mint.
  • A token is mintable when mint authority is active.
  • If mint authority is revoked, future minting is unavailable in most standard cases.
  • Create the token, set metadata, mint the planned supply, then decide whether to keep, transfer, or revoke mint authority.
  • Use DEXArea Token Creator for a no-code wallet-based flow, then Mint Tokens or Revoke Mint Authority when needed.

What is a mintable SPL token?

SPL tokens are Solana's standard token format. They are managed by Solana's Token Program or Token-2022 Program. A token's mint account stores the shared state for that token, including supply, decimals, mint authority, and optional freeze authority.

A token is mintable when its mint authority is active. The mint authority can approve additional minting through standard token minting flows. This can be useful when a project has planned emissions, rewards, vesting, treasury releases, or staged distribution.

A token is commonly described as fixed supply when mint authority has been revoked. In most standard SPL token cases, that means future minting through normal mint authority flows is unavailable. Existing token balances remain unchanged. Read What Is Mint Authority on Solana? for a full authority overview.

Mintable vs fixed-supply token

Token typeMint authority statusFuture mintingCommon use case
Mintable tokenActiveMay be possible by the authority holderRewards, emissions, vesting, staged launches
Fixed-supply tokenRevokedUsually unavailable in standard mint flowsPublic launches after final supply is ready

Important

Mint authority controls supply. Metadata authority controls token metadata. Freeze authority controls whether token accounts can be frozen. These are separate authorities—review each before launch.


Option 1: Create a Mintable SPL Token with DEXArea

The no-code path is best if you want to create a Solana token through a wallet-based interface instead of writing CLI commands or TypeScript code. DEXArea lets you enter token details, review metadata, choose supply settings, and sign the creation transaction from your wallet.

Use the DEXArea Token Creator for a non-custodial flow. Your wallet signs the transaction; DEXArea does not hold your private keys. For a broader no-code overview, see how to create a Solana token without coding.

Basic no-code flow

  1. Open the Solana Token Creator.
  2. Connect your Solana wallet.
  3. Choose the network: Devnet for testing or Mainnet for production.
  4. Enter token name, symbol, decimals, image, and metadata.
  5. Set the initial supply.
  6. Decide whether the token should remain mintable.
  7. Create the token and confirm the transaction in your wallet.
  8. Verify the mint address in a Solana explorer.

When to keep mint authority active

Keeping mint authority active can make sense if your project needs:

  • Future emissions
  • Staking or reward distribution
  • Vesting unlocks
  • Treasury-controlled supply expansion
  • Programmatic minting through a smart contract or PDA

When to revoke mint authority

You should consider revoking mint authority when:

  • The full supply is already minted
  • You want a fixed-supply launch plan after minting is complete
  • You want future minting unavailable in most standard cases
  • Your public communication states no further minting is planned
You can use Revoke Mint Authority after creation if your planned supply is complete and you want future minting to be unavailable in most standard cases. See how to revoke mint authority on Solana.

Option 2: Create a mintable SPL token with Solana CLI

The CLI path is useful when you want direct control and a repeatable developer workflow.

CLI commands can change over time. Before using commands on Mainnet, verify syntax with official Solana/SPL documentation or your local CLI help output.

Use Devnet first

The commands below should be tested on Devnet before Mainnet. Mainnet transactions use real SOL and create real on-chain assets.

1. Set your CLI to Devnet

solana config set --url https://api.devnet.solana.com
solana address
solana balance

If you need Devnet SOL:

solana airdrop 2

2. Create the token mint

Create a standard SPL token mint with 9 decimals:

spl-token create-token --decimals 9

The CLI will print a mint address. Save it.

Creating token <MINT_ADDRESS>
Signature: <TRANSACTION_SIGNATURE>

That mint address is the token's unique on-chain identifier.

3. Create your token account / ATA

A mint account is not where wallet balances live. You also need a token account, usually an Associated Token Account (ATA), to hold your balance.

spl-token create-account <MINT_ADDRESS>

4. Mint the initial supply

For the spl-token CLI, the displayed token amount is commonly entered as a UI amount. For example, this mints 100 tokens to your default token account for that mint:
spl-token mint <MINT_ADDRESS> 100

Then verify:

spl-token balance <MINT_ADDRESS>
spl-token supply <MINT_ADDRESS>

Decimals still matter

CLI tools may accept human-readable token amounts, while SDK instructions often use raw base units. With 9 decimals, 1 UI token equals 1,000,000,000 base units. Always check the tool or SDK you are using before minting supply.

5. View mint details

spl-token account-info <MINT_ADDRESS>

Check:

  • Decimals
  • Supply
  • Mint authority
  • Freeze authority
  • Token program

Option 3: Create and mint a token with TypeScript

Use TypeScript if your app needs to create token mints programmatically or prepare transactions for wallet signing.

Install dependencies:

npm install @solana/web3.js @solana/spl-token

TypeScript example

import {
  Connection,
  Keypair,
  clusterApiUrl,
  LAMPORTS_PER_SOL,
} from "@solana/web3.js";
import {
  createMint,
  getOrCreateAssociatedTokenAccount,
  mintTo,
  TOKEN_PROGRAM_ID,
} from "@solana/spl-token";

async function main() {
  const connection = new Connection(clusterApiUrl("devnet"), "confirmed");

  const payer = Keypair.generate();
  const airdropSignature = await connection.requestAirdrop(
    payer.publicKey,
    2 * LAMPORTS_PER_SOL
  );
  await connection.confirmTransaction(airdropSignature, "confirmed");

  const decimals = 9;
  const mintAuthority = payer;
  const freezeAuthority = payer.publicKey;

  const mint = await createMint(
    connection,
    payer,
    mintAuthority.publicKey,
    freezeAuthority,
    decimals,
    undefined,
    undefined,
    TOKEN_PROGRAM_ID
  );

  const ata = await getOrCreateAssociatedTokenAccount(
    connection,
    payer,
    mint,
    payer.publicKey
  );

  const uiAmount = 100n;
  const rawAmount = uiAmount * 10n ** BigInt(decimals);

  await mintTo(
    connection,
    payer,
    mint,
    ata.address,
    mintAuthority,
    rawAmount
  );

  const supply = await connection.getTokenSupply(mint);

  console.log("Mint:", mint.toBase58());
  console.log("ATA:", ata.address.toBase58());
  console.log("Supply:", supply.value.uiAmountString);
}

main().catch((error) => {
  console.error(error);
  process.exit(1);
});

Why rawAmount is multiplied

The SDK mintTo amount is a raw token amount. If decimals are 9, minting 100 UI tokens means minting 100 * 10^9 raw units.

For production apps, this example is for Devnet learning only. Do not use generated keypairs as authority wallets. Use wallet signing, secure key management, multisig, governance, or a program-controlled authority depending on your architecture.


Token Program vs Token-2022

Solana has the original Token Program and the newer Token-2022 Program. Most basic SPL tokens use the original Token Program. Token-2022 supports extensions such as transfer fees, metadata pointer patterns, confidential transfer features, and other advanced options.

ProgramBest forNotes
Token ProgramStandard SPL tokensBroad wallet and exchange compatibility
Token-2022Advanced token extensionsUseful for transfer fees and extension-based features
If you are creating a simple token for broad compatibility, the standard Token Program is a common default. If you need transfer fees or Token-2022 extensions, test compatibility with wallets, explorers, liquidity tools, and downstream dApps before launch. You can create tokens with either program using the DEXArea Token Creator when supported in the live form.

You can create Token-2022 mints with the Token-2022 program ID:

spl-token --program-id TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb create-token --decimals 9

Metadata: name, symbol, image, and URI

Wallets and explorers need metadata to display your token properly. Metadata usually includes:

  • Token name
  • Symbol
  • Description
  • Image URL
  • Metadata JSON URI

For standard SPL tokens, metadata is commonly handled with the Metaplex Token Metadata Program. For Token-2022 mints, metadata can also use extension-based patterns.

If you use DEXArea Token Creator, the creation flow can handle the metadata fields through the UI. If you already created a token and need to change metadata later, use Update Metadata, assuming you still control the update authority and the metadata is mutable. See how to view Solana token metadata and View Metadata to verify fields on-chain.

Metadata is not the same as supply authority

Metadata authority is separate from mint authority. Updating metadata does not change token supply, and revoking mint authority does not make metadata immutable.


Mint authority: keep, transfer, or revoke?

After creating a mintable SPL token, you need a plan for the mint authority.

Keep mint authority

Keep it only if future minting is part of your token design. For example:

  • Reward programs
  • Staking emissions
  • Vesting schedules
  • Treasury releases
  • DAO-controlled supply expansion

Transfer mint authority

Transferring mint authority can reduce hot-wallet exposure compared with keeping it on a single active wallet. You may transfer authority to:

  • A multisig
  • A governance-controlled wallet
  • A program-derived address (PDA)
  • A more secure cold wallet
Use Transfer Authority if you need to move token authority to another address.

Revoke mint authority

Revoking mint authority makes future minting unavailable in most standard cases and is usually irreversible. This is commonly done after the planned supply has been minted and verified.

CLI example (verify syntax with official docs or local CLI help):

spl-token authorize <MINT_ADDRESS> mint --disable
Or use Revoke Mint Authority if you prefer a no-code wallet flow.

Revoking is usually irreversible

After mint authority is revoked, future minting is unavailable in most standard cases. Do not revoke it unless your planned supply is already minted and verified.


Common mistakes when creating mintable Solana tokens

1. Choosing the wrong decimals

Most Solana tokens use 6 or 9 decimals. Decimals are effectively fixed after the mint is initialized. Changing them usually requires creating a new mint.

2. Minting to the wrong token account

A wallet address and a token account address are not the same thing. Each wallet usually needs an ATA for each token mint.

3. Forgetting metadata

A token without metadata may look broken or suspicious in wallets and explorers.

4. Keeping mint authority on a hot wallet

If your mint authority wallet is compromised, an attacker may mint new supply. This can create serious supply and reputation issues for a project.

5. Revoking too early

If you revoke mint authority before minting the intended planned supply, future minting is unavailable in most standard cases and the on-chain supply may remain capped at the current amount.

6. Testing directly on Mainnet

Always test the full flow on Devnet first: create token, mint supply, update metadata, transfer tokens, revoke authority, and verify on explorer.


  • Test the full flow on Devnet before Mainnet: create token, mint supply, update metadata, transfer tokens, and review authority changes.
  • Confirm name, symbol, decimals, image, and metadata URI.
  • Mint the planned initial supply and verify supply in a Solana explorer.
  • Check mint authority status on View Metadata.
  • Check freeze authority status; see Revoke Freeze Authority and how to revoke freeze authority when appropriate.
  • Check metadata/update authority; use Make Token Immutable when appropriate.
  • Decide whether mint authority should be kept, transferred, or revoked.
  • Decide whether freeze authority should be kept or revoked.
  • Test transfers to another wallet; test Burn Tokens if burn behavior matters for your plan.
  • Document authority status for your community.
  • Repeat on Mainnet only after the Devnet flow works.
For a broader launch review, see the Solana token security checklist. Tool links:

FAQ


Final thoughts

Creating a mintable SPL token on Solana is straightforward. Managing mint authority, metadata, and launch planning is the longer-term work.

If you want a wallet-based flow, start with Token Creator. If you need repeatable developer control, use CLI or TypeScript on Devnet first. Decide what should happen to mint authority before your token reaches users.

A practical launch flow:

  1. Create the token (Devnet first).
  2. Add metadata.
  3. Mint the planned supply.
  4. Verify the mint and token accounts.
  5. Transfer or distribute tokens if needed.
  6. Keep, transfer, or revoke authority based on your tokenomics plan.
DEXArea provides non-custodial tools for creating tokens, minting SPL tokens, updating metadata, and revoking mint authority.

References

DEXArea Knowledge Team - Blockchain documentation experts
DEXArea Knowledge TeamOur team has hands-on experience building Solana tooling, Web3 infrastructure, and DeFi applications. We create accurate, structured documentation based on official sources and real-world testing. Trusted by thousands of token creators since 2024. Learn more about our expertise
Last updated: Dec 16, 2025

Related Posts

View all