Smart Money Surveillance · Helius + DexScreener · Solana
● LIVE

Solana Plays

Meme token launches, pump.fun activity, and Solana strategy research

Launcher Script
Ready
Mode
DRY RUN
Target Platform
pump.fun
Strategy
Meme Launch
🚀 Meme Token Launch Strategy

LAUNCH MECHANICS

Platformpump.fun (Solana)
Token Supply1,000,000,000 (1B)
Initial Liquidity0.1 SOL dev buy
Bonding CurveAuto via pump.fun
Graduation TargetRaydium (69 SOL threshold)
Script Status✓ Built (dry-run)
Go-LiveAwaiting manual approval

CHARACTER PIPELINE

Based BobbyBible Done
Bitcoin Billionaire on Base
Token 2Pending
TBD by Mev
Token 3Pending
TBD by Mev
🛠 Launcher Script Preview (tools/solana_launcher.py)
DRY RUN ONLY
#!/usr/bin/env python3
"""
solana_launcher.py — Solana meme token launcher for Project Alpha

Supports two modes:
  1. pump.fun launch (recommended — zero creator cost, auto-graduation)
  2. SPL-only creation (for Raydium CPMM or custom pools — NOT IMPLEMENTED YET)

SAFETY DEFAULTS:
  --dry-run is ON by default. Pass --execute to send real transactions.
  All real-money actions require explicit Mev approval.

Usage:
  # Dry run with Bobby config (default)
  python3 tools/solana_launcher.py --config projects/alpha/launch_configs/bobby.json

  # Estimate costs only
  python3 tools/solana_launcher.py --config projects/alpha/launch_configs/bobby.json --estimate

  # Upload metadata to IPFS (Pinata) — no blockchain tx
  python3 tools/solana_launcher.py --config projects/alpha/launch_configs/bobby.json --upload-metadata

  # REAL LAUNCH (requires explicit flag + env vars set)
  python3 tools/solana_launcher.py --config projects/alpha/launch_configs/bobby.json --execute

Author: Otto (Project Alpha)
Date: 2026-02-21
"""

import argparse
import json
import os
import sys
import time
import hashlib
from pathlib import Path
from typing import Optional

import httpx

# Load .env from alpha project if present
_alpha_env = Path(__file__).parent.parent / "projects" / "alpha" / "bot" / ".env"
if _alpha_env.exists():
    from dotenv import load_dotenv as _load_dotenv
    _load_dotenv(_alpha_env)

# ─── Config ──────────────────────────────────────────────────────────────────

HELIUS_API_KEY = os.environ.get("HELIUS_API_KEY", "")
HELIUS_RPC_URL = (
    f"https://mainnet.helius-rpc.com/?api-key={HELIUS_API_KEY}"
    if HELIUS_API_KEY
    else "https://api.mainnet-beta.solana.com"
)

PINATA_JWT = os.environ.get("PINATA_JWT", "")
PINATA_API_URL = "https://api.pinata.cloud"

PUMPPORTAL_BASE = "https://pumpportal.fun/api"
JUPITER_QUOTE_URL = "https://quote-api.jup.ag/v6/quote"
RUGCHECK_URL = "https://api.rugcheck.xyz/v1/tokens"

# SOL price estimate for cost display (updated manually or from API)
SOL_USD_ESTIMATE = 170.0

# ─── Cost estimates (SOL) ────────────────────────────────────────────────────

COSTS = {
    "spl_mint_account":         0.00144,   # 82 bytes rent-exempt
    "spl_metadata_account":     0.015,     # Metaplex PDA ~679 bytes
    "pumpfun_creation_fee":     0.02,      # First buyer cost (creator free)
    "jito_bundle_tip":          0.005,     # Anti-bot bundle tip
    "raydium_cpmm_pool":        0.20,      # Pool creation (CPMM, no OpenBook needed)
    "tx_fees_estimate":         0.001,     # 3-5 transactions
}

# ─── Helpers ─────────────────────────────────────────────────────────────────

def sol_to_usd(sol: float) -> str:
    return f"${sol * SOL_USD_ESTIMATE:.2f}"

def print_section(title: str):
    print(f"\n{'─' * 60}")
    print(f"  {title}")
    print('─' * 60)

def confirm(prompt: str) -> bool:
    resp = input(f"{prompt} [yes/no]: ").strip().lower()
    return resp in ("yes", "y")

# ─── Config loader ──────────────────────────────────────
📋 Meme Launch Research Notes
# Solana Meme Token Launch Infrastructure
**Research Date:** 2026-02-21
**Status:** Research complete — actionable within 1 week
**Author:** Otto (task research)

---

## TL;DR

- **Easiest path:** pump.fun — zero cost to creator, live in minutes, auto-graduates to PumpSwap at ~$69k market cap
- **Best for control:** Raydium CPMM direct — ~1.5–6 SOL total, full customization
- **For Bobby specifically:** pump.fun launch + Jito bundle to protect creator allocation from bots
- **Copy trading:** Helius webhooks (already have key) + Birdeye PnL API for wallet discovery
- **Total launch cost estimate:** 0.02–2 SOL depending on platform + optional initial buy

---

## 1. Launch Platforms

### pump.fun (Recommended — Dominant Platform)

**How it works:**
- Creator deploys token at **zero cost** — the first buyer pays ~0.02 SOL ($2–3) for token creation
- 1B total supply: 800M on bonding curve for sale, 200M reserved for graduation LP
- Constant-product AMM with **virtual reserves** (30 SOL / 1.073B tokens at start)
- Initial price: ~0.0000000280 SOL/token (~$0.000004)
- Trades happen on the bonding curve until 800M tokens are sold
- **Graduation:** When bonding curve fills (~85 SOL total volume), token automatically migrates to **PumpSwap** (pump.fun's own DEX, launched March 2025)
- Creator earns **+0.5 SOL bonus** at graduation

**Fees (Project Ascend model):**
| Market Cap | Trading Fee |
|---|---|
| Under $300k | 0.95% |
| Scaling up | Sliding scale |
| Over $20M | 0.05% |
| PumpSwap post-graduation | 0.25% (0.2% LPs, 0.05% protocol) |

**Why it works for memes:**
- Zero friction, massive distribution (handles 80%+ of Solana new token launches)
- DEX Screener auto-lists immediately
- Community knows the pump.fun flow — any CT (Crypto Twitter) participant can buy instantly
- LP permanently locked at graduation — rug-proof after bonding curve fills

**Limitation:** You cannot pre-allocate tokens to yourself; pump.fun prohibits presales. All supply goes through the bonding curve. Bots will snipe the first blocks unless you use a Jito bundle.

---

### Moonshot / moon.it (DEX Screener Native)

- No-code launch built into DEX Screener's ecosystem
- **Graduation threshold: 500 SOL** — much higher than pump.fun
- Upon graduation, liquidity migrates to **Raydium** and LP tokens are burned
- Native visibility on DEX Screener platform
- Suitable if the token concept aligns with DEX Screener's community

**When to use:** When targeting traders who live on DEX Screener and want Raydium liquidity.

---

### Meteora Dynamic Bonding Curve

- Open-source bonding curve program — fully customizable
- **Anti-sniping fees:** Fee starts at 50% at launch, drops exponentially over 120 minutes to 0.25% permanently
- Creator earns fees on locked liquidity indefinitely (LP locked, fee revenue not locked)
- TVL: $1.1B+, growing rapidly
- **Alpha Vault:** Anti-sniping tool for fair distribution

**When to use:** Larger, more serious launches where you want fee customization and anti-bot protection baked in. Overkill for a first meme launch.

---

### Raydium CPMM (Direct Pool Creation)

- Create a liquidity pool directly without a launchpad
- Full control over initial price, liquidity, and supply allocation
- **Cost:** ~0.15–0.3 SOL pool creation + however much liquidity you seed
- Supports Token-2022 standard
- No OpenBook market ID required (vs older AMM V4 which needed ~1.5–2 SOL extra)

**When to use:** When you want creator allocation (buy tokens before opening pool) and full control. Requires Jito bundle to atomically seed LP + make initial buy.

---

### Jupiter LFG — NOT FOR MEMES

Jupiter LFG is a curated, DAO-voted launchpad for serious DeFi projects. Requires community forum post, discussion period, and JUP token holder vote. Not suitable for meme launches.

---

## 2. SPL Token Creation — Technical Steps

### What Gets Created On-Chain

| Account | Size | Cost (SOL) | Purpose |
|---|---|---|---|
| Mint Account | 82 bytes | ~0.00144 SOL | Stores supply, decimals, mint/freeze authority |
| Metadata Account (Metaplex PDA) | ~679 bytes | ~0.01–0.015 SOL | Name, symbol, URI pointer |
| Token Account (per holder) | 165 bytes | ~0.002 SOL | Holds token balance for each wallet |

**Total bare minimum:** ~0.015 SOL for the token to exist (no liquidity)

### Token Parameters for Meme Launches

```
decimals: 6           (pump.fun standard)
supply:   1,000,000,000,000,000  (1B * 10^6)
mint_authority: revoked after mint (builds trust)
freeze_authority: null (honeypot prevention)
update_authority: revoked for immutability (or keep to update metadata)
```

### Metadata JSON (Upload to IPFS First)

```json
{
  "name": "Based Bobby",
  "symbol": "BOBBY",
  "description": "Bitcoin Billionaire. Base Chain educator. Bringing a billion people on-chain.",
  "image": "https://ipfs.io/ipfs/QmXXX.../bobby_logo.png",
  "external_url": "https://basedbobby.xyz",
  "extensions": {
    "twitter": "https://x.com/basedbobby",
    "telegram": "https://t.me/basedbobbygroup",
    "discord": "https://discord.gg/basedbobby",
    "website": "https://basedbobby.xyz"
  }
}
```

### Programmatic Token Creation (TypeScript + Metaplex Umi)

```bash
npm install @metaplex-foundation/umi \
  @metaplex-foundation/mpl-token-metadata \
  @metaplex-foundation/umi-bundle-defaults \
  @solana/web3.js
```

```typescript
import { percentAmount, generateSigner, signerIdentity, createSignerFromKeypair } from '@metaplex-foundation/umi'
import { TokenStandard, createAndMint, mplTokenMetadata } from '@metaplex-foundation/mpl-token-metadata'
import { createUmi } from '@metaplex-foundation/umi-bundle-defaults'

const umi = createUmi('https://mainnet.helius-rpc.com/?api-key=YOUR_HELIUS_KEY');

const userWallet = umi.eddsa.createKeypairFromSecretKey(new Uint8Array(secretKeyArray));
const userWalletSigner = createSignerFromKeypair(umi, userWallet);
umi.use(signerIdentity(userWalletSigner));
umi.use(mplTokenMetadata());

const mint = generateSigner(umi);

await createAndMint(umi, {
  mint,
  authority: umi.identity,
  name: "Based Bobby",
  symbol: "BOBBY",
  uri: "https://ipfs.io/ipfs/QmXXX.../metadata.json",
  sellerFeeBasisPoints: percentAmount(0),
  decimals: 6,
  amount: 1_000_000_000_000_000n,  // 1B tokens
  tokenOwner: userWallet.publicKey,
  tokenStandard: TokenStandard.Fungible,
}).sendAndConfirm(umi);

// After mint: revoke mint authority to prevent inflation
// await setAuthority(umi, { mint, authority: umi.identity, authorityType: 'MintTokens', newAuthority: null })
```

### Revoking Mint Authority (Trust Signal)

After minting total supply, revoke mint authority so no more tokens can ever be created:
```typescript
import { setAuthority, AuthorityType } from '@solana/spl-token'
// authorityType: AuthorityType.MintTokens, newAuthority: null
```

---

## 3. Pump.fun Bonding Curve — Technical Detail

### Formula

```
k = virtual_sol_reserves * virtual_token_reserves
  = 30 * 1,073,000,191
  = 32,190,005,730 (constant)

Initial price = 30 SOL / 1,073,000,191 tokens ≈ 0.0000000280 SOL/token

Tokens received for x SOL:
  y = 1,073,000,191 - 32,190,005,730 / (30 + x)
```

### Supply Distribution

| Allocation | Amount | Notes |
|---|---|---|
| Bonding curve (for sale) | 800,000,000 | Public buys through this |
| Graduation LP | 200,000,000 | Locked in PumpSwap at graduation |
| Dev/creator allocation | 0 | Prohibited by pump.fun |

### Graduation

- Occurs when all 800M bonding curve tokens are purchased
- ~85 SOL of real SOL accumulated → ~79 SOL net after fees seeds PumpSwap pool
- Market cap at graduation: ~$69,000 (varies with SOL price)
- LP permanently locked — no rug possible post-graduation
- Creator earns **+0.5 SOL bonus** automatically

---

## 4. Cost Summary

### By Launch Method

| Method | Creator Cost | Min Initial Buy | Notes |
|---|---|---|---|
| pump.fun (fair launch) | **0 SOL** | 0 SOL (optional) | First buyer pays ~0.02 SOL |
| pump.fun + creator initial buy | ~0.02–1+ SOL | Creator's choice | Get token

All Solana launches are DRY RUN only. No actual transactions will be executed until Mev explicitly approves go-live. Launcher script requires SOL wallet funding and explicit authorization before live deployment.