How to Create a Mintable SPL Token on Solana: No-Code, CLI & Mint Authority Guide
Learn how to create a mintable SPL token on Solana, mint supply, set metadata, avoid decimals mistakes, and manage mint authority with no-code, CLI, and TypeScript options.

How to Create a Mintable SPL Token on Solana: No-Code, CLI & Mint Authority Guide
A mintable SPL token is a Solana token whose mint authority is still active. That means new supply can be minted later for rewards, vesting, ecosystem incentives, treasury operations, or staged token launches.
That flexibility is useful, but it also creates a trust problem: if the mint authority is controlled by the wrong wallet, poorly secured, or never revoked, holders may worry that supply can be inflated later. Charming little nightmare, because apparently token launches needed more ways to go wrong.
This guide explains how to create a mintable Solana token using three practical paths:
- No-code: fastest path with the DEXArea Solana Token Creator
- CLI: direct
spl-tokenworkflow for developers - TypeScript: programmatic creation and minting with
@solana/web3.jsand@solana/spl-token
Security note
A mintable token is not automatically unsafe, but it requires clear authority management. Test on Devnet first, keep authority wallets secure, and never revoke mint authority until you are certain no future minting is needed.
- Token Creator— Create SPL or Token-2022 tokens
- Revoke Mint Authority— Permanently revoke minting capability
TL;DR
- A mint account represents the token itself: decimals, supply, mint authority, and freeze authority.
- A token account / ATA holds a wallet's balance for a specific mint.
- A token is mintable when its mint authority has not been revoked.
- A token becomes fixed supply after mint authority is revoked.
- For most token launches, create the token, mint the intended supply, set metadata, then decide whether to keep, transfer, or revoke authority.
- If you do not want CLI commands, use the Solana Token Creator and sign the transaction from your wallet.
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 called mintable when the mint authority is still present. That authority can sign a mint instruction later and increase total supply.
A token is called fixed supply when mint authority has been revoked. After that, new supply cannot be minted for that mint.
Mintable vs fixed-supply token
| Token type | Mint authority status | Can new tokens be minted? | Common use case |
|---|---|---|---|
| Mintable token | Active | Yes | Rewards, emissions, vesting, staged launches |
| Fixed-supply token | Revoked | No | Meme coins, public launches, trust-focused tokens |
Important
Mint authority controls supply. Metadata authority controls token metadata. Freeze authority controls whether token accounts can be frozen. These are different authorities, and confusing them is how people invent expensive mistakes for sport.
Option 1: Create a mintable SPL token with no code
The fastest way to create a mintable token is to use a wallet-based token creator. This is the better path if your goal is to launch a token, not spend your evening arguing with terminal flags like it owes you money.
Basic no-code flow
- Open the Solana Token Creator.
- Connect your Solana wallet.
- Choose the network: Devnet for testing or Mainnet for production.
- Enter token name, symbol, decimals, image, and metadata.
- Set the initial supply.
- Decide whether the token should remain mintable.
- Create the token and confirm the transaction in your wallet.
- 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 token
- You want to reduce holder concerns about future inflation
- Your launch page or community promises no more minting
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.
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
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
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, do not use a randomly generated payer like this. Use wallet signing, secure key management, multisig, 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.
| Program | Best for | Notes |
|---|---|---|
| Token Program | Standard SPL tokens | Broad wallet and exchange compatibility |
| Token-2022 | Advanced token extensions | Useful for transfer fees and extension-based features |
If you are creating a simple token for broad compatibility, standard SPL is usually the safer default. If you need transfer fees or specific Token-2022 extensions, use Token-2022 intentionally and test compatibility with wallets, explorers, and dApps before launch.
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.
Metadata is not the same as supply authority
Changing token metadata does not give you the ability to mint tokens. Mint authority, freeze authority, and metadata update authority are separate controls.
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 be safer than keeping it on a normal wallet. You may transfer authority to:
- A multisig
- A governance-controlled wallet
- A program-derived address (PDA)
- A more secure cold wallet
Revoke mint authority
Revoking mint authority permanently disables future minting for that token mint. This is common when projects want to prove the supply is fixed.
CLI example:
spl-token authorize <MINT_ADDRESS> mint --disable
Revoking is permanent
Once mint authority is revoked, you cannot mint more supply for that mint. Do not revoke it unless your final 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. Once the mint is created, decimals cannot realistically be changed. If you choose the wrong value, you usually need to create 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. That is not exactly the branding moment most projects dream of.
5. Revoking too early
If you revoke mint authority before minting the intended final supply, the token is permanently capped at the current supply.
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.
Recommended launch checklist
- Create the token on Devnet first.
- Confirm name, symbol, decimals, image, and metadata URI.
- Mint the intended initial supply.
- Verify supply in a Solana explorer.
- Test transfers to another wallet.
- Test burning a small amount if burn functionality matters.
- Decide whether to keep, transfer, or revoke mint authority.
- Decide whether to keep or revoke freeze authority.
- Document authority status for your community.
- Repeat on Mainnet only after the Devnet flow works.
For a stronger launch security flow, combine:
- Token Creator
- Mint Tokens
- Update Metadata
- Revoke Mint Authority
- Revoke Freeze Authority
- Make Token Immutable
FAQ
Final thoughts
Creating a mintable SPL token on Solana is straightforward. Managing it responsibly is the real work.
A clean launch flow looks like this:
- Create the token.
- Add metadata.
- Mint the intended supply.
- Verify the mint and token accounts.
- Transfer or distribute tokens if needed.
- Revoke or secure authority based on your tokenomics.



