All posts

How to create a token on Solana: steps, code and real costs

How to create a token on Solana in 2026: SPL Token vs Token-2022, CLI and TypeScript steps, metadata, revoking authorities, what it costs in SOL after the rent cut, and liquidity.

By , CEO & Founder at 23studio

Published 10 min read

How to create a token on Solana: steps, code and real costs

To create a token on Solana, you create a mint account with the SPL Token or Token-2022 program, add metadata (name, symbol, logo), mint the supply to a token account, then revoke the mint and freeze authorities if supply should be fixed. With the spl-token CLI that is about six commands. On-chain it costs roughly 0.005 to 0.02 SOL, under $2 at November 2026 prices. Liquidity is the real expense.

This guide walks through choosing between SPL Token and Token-2022, creating a token with the CLI and with TypeScript, what each step costs after Solana's 2026 rent reduction, how to add liquidity on Raydium, Meteora or Orca, when a launchpad like pump.fun makes more sense, and a security checklist we run before any mainnet mint.

What a Solana token actually is

Solana does not deploy a new contract per token the way an ERC-20 does on Ethereum. Every token is an account owned by one shared, audited program.

  • Mint account: stores supply, decimals, the mint authority (who can create more) and the freeze authority (who can freeze holders' accounts).
  • Token accounts: each holder has one per token, usually an Associated Token Account (ATA) derived from their wallet and the mint.
  • Metadata: name, symbol and a URI pointing to a JSON file with the logo and description. It lives either in a Metaplex metadata account or, with Token-2022, inside the mint itself.

Because you reuse the token program instead of writing your own, a standard Solana token needs no custom Rust code and no audit of new logic. You only write a program if you need custom behavior, such as a transfer hook. If you are weighing Solana against an EVM chain for that kind of work, see our comparison of Rust vs Solidity for smart contracts.

SPL Token vs Token-2022

There are two token programs. Pick before you mint, because you cannot move a mint from one to the other later.

SPL Token (original)Token-2022 (Token Extensions)
Program IDTokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DATokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb
MetadataSeparate Metaplex accountBuilt-in metadata extension on the mint
Transfer feesNoYes, basis points with a cap
Other extensionsNoneTransfer hooks, permanent delegate, non-transferable, interest-bearing, default account state, pausable, confidential transfers, and more
DEX and wallet supportUniversalBroad, but some pools and tools reject certain extensions
Best forPlain fungible tokens, memecoins, max compatibilityTokens with fees, compliance rules, stablecoins, RWAs

The Token-2022 extension list now includes mint close authority, transfer fees, default account state, immutable owner, non-transferable tokens, required memo, interest-bearing, permanent delegate, CPI guard, transfer hook, metadata pointer and metadata, groups and members, scaled UI amount, pausable and permissioned burn.

Two notes from experience:

  • Confidential transfers are live. Per the Token-2022 status page, all clusters run the version with confidential transfer support, and the ZK ElGamal Proof program it relies on is enabled on mainnet and devnet. Tooling is still thin, so budget extra integration time if you need private balances.
  • Extensions can hurt compatibility. A transfer fee or transfer hook changes how every DEX, wallet and bridge has to handle your token. Some pools refuse tokens with hooks or permanent delegates, and traders read a permanent delegate as a red flag. Only add extensions you will actually use.

For a plain community or utility token, we still use the original SPL Token program or Token-2022 with only the metadata extension.

How to create a Solana token with the CLI

You need the Solana CLI and the spl-token CLI installed, and a wallet keypair with some SOL. Always run the whole flow on devnet first.

1. Configure the network and wallet

solana config set --url devnet
solana-keygen new --outfile ~/.config/solana/id.json   # skip if you have one
solana airdrop 2

2. Create the mint (Token-2022 with metadata)

spl-token --program-id TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb \
  create-token --decimals 6 --enable-metadata

This prints the mint address. Use --decimals 9 if you want SOL-style precision. Add --enable-freeze only if you really need a freeze authority.

3. Add the metadata

Upload a JSON file with name, symbol, description and an image URL to permanent storage (Arweave, IPFS through a pinning service, or your own CDN if you accept the trust trade-off). Then:

spl-token initialize-metadata <MINT_ADDRESS> "My Token" "MTK" https://example.com/mtk.json

The mint authority has to sign this command, as described in the metadata extension docs.

4. Create your token account and mint the supply

spl-token create-account <MINT_ADDRESS>
spl-token mint <MINT_ADDRESS> 1000000000

5. Revoke authorities if supply is fixed

spl-token authorize <MINT_ADDRESS> mint --disable
spl-token authorize <MINT_ADDRESS> freeze --disable   # only if a freeze authority exists

Revoking is permanent. After mint --disable nobody can create more tokens, including you.

6. Repeat on mainnet

Switch with solana config set --url mainnet-beta, use a fresh, well-protected keypair or a multisig, and run the same commands. Check the token on Solana Explorer or Solscan before you announce it.

For an original SPL Token mint, drop the --program-id and --enable-metadata flags and create the metadata with Metaplex instead, for example with its Umi createFungible helper.

How to create a Solana token in TypeScript

For scripted launches, tests or a token factory in your own app, use @solana/spl-token. This example creates a classic SPL mint, mints the supply and revokes both authorities:

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

const connection = new Connection(clusterApiUrl("devnet"), "confirmed");
const payer = Keypair.fromSecretKey(/* load from a secure file, never hardcode */);

const decimals = 6;
const mint = await createMint(connection, payer, payer.publicKey, null, decimals);

const ata = await getOrCreateAssociatedTokenAccount(connection, payer, mint, payer.publicKey);
await mintTo(connection, payer, mint, ata.address, payer, 1_000_000_000n * 10n ** BigInt(decimals));

// Fixed supply: remove the mint authority for good.
await setAuthority(connection, payer, mint, payer, AuthorityType.MintTokens, null);
// Passing null as freezeAuthority in createMint means there is none to revoke.

Newer projects increasingly use @solana/kit (the successor to web3.js v1) and generated program clients, but the account model and the steps are identical. For Token-2022 mints, pass the Token-2022 program ID and include the extension initialization instructions before InitializeMint.

How much does it cost to create a token on Solana?

Most of the on-chain cost is rent: a refundable deposit that keeps each account alive. Solana is cutting rent in five steps under SIMD-0437. Steps 1 and 2 went live on mainnet on September 3 and September 11, 2026, taking rent from 6,960 to 5,080 lamports per byte. Steps 3 to 5 (2,575, 1,322 and finally 696 lamports per byte) are expected with Agave 4.4. At the time of writing, step 3 was still pending.

Rent for an account is (data size + 128 bytes) × the per-byte rate. At today's rate, and with SOL at about $93 on November 3, 2026:

ItemSizeRent before Sept 2026Rent now (5,080/byte)Approx. USD now
Mint account (SPL Token)82 bytes0.00146 SOL0.00107 SOL$0.10
Your token account (ATA)165 bytes0.00204 SOL0.00149 SOL$0.14
Metaplex metadata account~607 bytes0.00512 SOL0.00373 SOL$0.35
Metaplex Token Metadata create feen/a0.01 SOL0.01 SOL$0.93
Token-2022 mint with metadata extension~300 to 600 bytes0.003 to 0.005 SOL0.002 to 0.004 SOL$0.20 to $0.35
Transaction feesper signature5,000 lamports + priority feesamecents

A classic SPL token with Metaplex metadata comes to about 0.016 SOL, matching a line-by-line October 2026 breakdown. A Token-2022 token with built-in metadata skips the Metaplex fee and lands around 0.005 SOL. Once step 5 is live, rent alone drops to a fraction of a cent. Existing accounts keep their old deposits, but the excess above the new minimum can be withdrawn. Do not hardcode these numbers in code. Query getMinimumBalanceForRentExemption instead, because the rate changes three more times.

No-code token creators charge a service fee on top, typically 0.05 to 0.3 SOL. That is convenience, not a network cost.

The costs that actually matter:

ItemTypical cost
Raydium CPMM pool creation0.15 SOL fee plus about 0.04 SOL rent
Initial liquidityWhatever you pair: often $5,000 to $100,000+ in SOL or USDC
Custom program (transfer hook, vesting, staking)Development plus an audit; Rust audits carry a premium
Token design and launch work$2,000 to $15,000 for a standard token build per our cost breakdown

If you are comparing Solana with EVM chains on deployment costs more broadly, our smart contract cost comparison by chain has the numbers.

Adding liquidity: Raydium, Meteora or Orca

A token nobody can buy is a database entry. The three main Solana venues for a new pool:

  • Raydium CPMM. Constant-product pools that support Token-2022, with a 0.15 SOL creation fee. Simple and widely indexed by aggregators like Jupiter.
  • Meteora DAMM v2. Constant-product pools with an anti-sniper fee scheduler. The default frontend config starts the swap fee at 50% and decays it to 0.25% over 120 minutes, which makes bot-buying the first block expensive. Meteora's Alpha Vault can also give an allowlist a fair entry before trading opens.
  • Orca Whirlpools. Concentrated liquidity. Better capital efficiency once a price range is established, but harder to manage at launch.

What to decide before you add liquidity:

  1. Starting price. It is set by the ratio you deposit. 10% of supply against $20,000 of USDC implies a fully diluted value of $200,000.
  2. LP tokens. Burning or locking them shows you cannot pull the liquidity. Communities check this before buying.
  3. Market depth. Thin pools swing on small trades. Our token launch playbook covers how much liquidity a launch needs and when to bring in a market maker.

Should you use pump.fun or another launchpad?

Launchpads remove the setup work. On pump.fun, creating a coin is free and the token trades on a bonding curve until it fills, then moves to PumpSwap. The platform charges a 1% fee on bonding-curve trades, and tokens graduate at roughly $69,000 to $100,000 in market cap. It is also crowded. Solana Compass reported about 42,000 launches in one day in June 2026, with fewer than 2% of all pump.fun tokens ever graduating.

Use a launchpad for a community or meme token where speed and attention matter more than control. Create your own mint when the token has a product behind it: you control decimals, authorities, metadata, allocations and vesting, and can plan supply properly. Our guide to designing token economics covers how to split supply between team, investors, community and liquidity.

Security checklist before a mainnet mint

  1. Rehearse on devnet with the exact script, decimals and amounts you will use.
  2. Protect the authority keys. Use a hardware wallet or a Squads multisig for any authority you keep.
  3. Decide each authority on purpose. Mint authority: revoke for fixed supply, or move to a multisig or vesting program if emissions are planned. Freeze authority: revoke unless you have a compliance reason (stablecoins and RWAs often do). Metadata update authority: keep it until the logo and links are final, then lock it.
  4. Avoid alarming extensions. Permanent delegate, transfer hooks and high transfer fees will be flagged by scanners like RugCheck and by traders.
  5. Host metadata permanently. A dead image link makes the token look abandoned in every wallet.
  6. Distribute through vesting contracts, not manual transfers, for team and investor allocations.
  7. Check the token in a wallet and in a DEX aggregator before announcing it, so the name, logo and decimals display correctly.
  8. Get an audit if you wrote any program. Standard token program mints do not need one. Transfer hooks, vesting and staking programs do.

Frequently asked questions

How much SOL do I need to create a token?

About 0.005 to 0.02 SOL covers the mint, your token account, metadata and transaction fees at the November 2026 rent rate. Keep 0.2 SOL or so in the wallet for pool creation if you plan to add liquidity on Raydium, plus the liquidity itself. Most of the rent is refundable if you close the accounts later.

Should I use Token-2022 or the original SPL Token program?

Use Token-2022 when you need an extension: transfer fees, transfer hooks, built-in metadata, a permanent delegate for compliance, or confidential transfers. Use the original program, or Token-2022 with only metadata, when you want the widest compatibility with DEXs, wallets and bridges. You cannot switch programs after minting.

Can I create a Solana token without coding?

Yes. No-code creators and launchpads such as pump.fun handle the mint, metadata and authorities for you, usually for a small fee in SOL. You give up control over details like decimals, extensions and how supply is distributed, which matters more for project tokens than for meme tokens.

What does revoking mint authority do?

It permanently sets the mint authority to none, so nobody can ever mint more of the token. Buyers treat it as proof of fixed supply. It does not remove other risks such as a live freeze authority, mutable metadata, or a team wallet that holds most of the supply.

Do I need an audit for a Solana token?

Not for a standard mint created through the SPL Token or Token-2022 program, since those programs are already audited and you are not deploying new code. You do need one for any custom program around the token, such as vesting, staking, a transfer hook or a launch contract.

Launch your Solana token with 23studio

We build Solana tokens and the programs around them: Token-2022 setups with fees or compliance hooks, vesting and staking, liquidity and launch tooling. Look at our token creation services or send us your token plan, and we will tell you what to build, what to skip and what it will cost.

Keep reading

Ready when you are

Tell us what you are building and where you are stuck. You get a reply from an engineer and a scoped estimate for a PoC, MVP or full launch. We reply within 24 hours, usually the same business day.

23stud.ioWeb3 and blockchain development studio. Advice, development, team extension or complete project delivery.
Copyright © 2026 23stud.io. All rights reserved