Meme Token Development on Solana
Create, launch, and manage SPL tokens and meme tokens on Solana.
Overview
Solana has become the dominant platform for meme token launches, driven by low transaction costs, fast confirmation times, and a vibrant community. Platforms like Pump.fun have made token creation accessible to non-developers, but building the infrastructure around tokens — monitoring launches, providing liquidity, building trading interfaces — requires deep technical knowledge.
SPL Token Standard
All fungible tokens on Solana use the SPL Token program (or its successor, Token-2022). Unlike Ethereum where each token is a separate smart contract, all Solana tokens share the same program. This means token creation is fast, cheap, and standardized.
Creating a Token
import {
createMint,
getOrCreateAssociatedTokenAccount,
mintTo,
TOKEN_PROGRAM_ID,
} from '@solana/spl-token';
import { Connection, Keypair, clusterApiUrl } from '@solana/web3.js';
const connection = new Connection(clusterApiUrl('mainnet-beta'));
const payer = Keypair.fromSecretKey(/* your keypair */);
// Create a new token mint
const mint = await createMint(
connection,
payer, // Fee payer
payer.publicKey, // Mint authority
payer.publicKey, // Freeze authority (null to disable)
9, // Decimals (9 = standard for most tokens)
undefined,
undefined,
TOKEN_PROGRAM_ID
);
console.log('Token mint address:', mint.toBase58());
// Create token account for the payer
const tokenAccount = await getOrCreateAssociatedTokenAccount(
connection,
payer,
mint,
payer.publicKey
);
// Mint initial supply
await mintTo(
connection,
payer,
mint,
tokenAccount.address,
payer, // Mint authority
1_000_000_000 * 10**9 // 1 billion tokens
);Adding Token Metadata
Token metadata (name, symbol, image, description) is stored using the Metaplex Token Metadata program. Without metadata, tokens appear as raw addresses in wallets and DEX interfaces.
import { createUmi } from '@metaplex-foundation/umi-bundle-defaults';
import { createFungible } from '@metaplex-foundation/mpl-token-metadata';
import { publicKey, percentAmount } from '@metaplex-foundation/umi';
const umi = createUmi('https://api.mainnet-beta.solana.com');
// Create token with metadata in one transaction
await createFungible(umi, {
mint: mintKeypair,
name: 'My Meme Token',
symbol: 'MEME',
uri: 'https://arweave.net/your-metadata-json',
sellerFeeBasisPoints: percentAmount(0), // 0% royalty for fungible tokens
decimals: 9,
isMutable: true,
}).sendAndConfirm(umi);Pump.fun Integration
Pump.fun is the dominant meme token launch platform on Solana. Understanding its mechanics is essential for building monitoring tools, trading bots, or competing platforms. Pump.fun uses a bonding curve model where tokens are priced algorithmically based on supply.
Monitoring New Token Launches
import Client, { CommitmentLevel } from "@triton-one/yellowstone-grpc";
const PUMP_FUN_PROGRAM = "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P";
const client = new Client("https://grpc.your-provider.com:10000", "token", {});
const stream = await client.subscribe();
stream.write({
transactions: {
pumpFunLaunches: {
vote: false,
failed: false,
accountInclude: [PUMP_FUN_PROGRAM],
},
},
commitment: CommitmentLevel.PROCESSED,
});
stream.on("data", (data) => {
if (!data.transaction) return;
const tx = data.transaction.transaction;
const logs = tx?.meta?.logMessages || [];
// Detect new token creation
if (logs.some(log => log.includes("InitializeMint"))) {
const mintAddress = extractMintFromLogs(logs);
console.log("New Pump.fun token:", mintAddress);
// Execute snipe logic here
sniperBot.evaluateAndSnipe(mintAddress);
}
});Raydium Liquidity Pool Creation
After a Pump.fun token reaches its bonding curve target (~$69K market cap), liquidity is automatically migrated to Raydium. Monitoring this migration event is critical for trading strategies that target newly listed tokens.