Launch Tape

What to do with the sample

Two free files, one prompt, one honest answer. Three steps.

  1. Download the free files

    The 2-hour graduates sheet (105 coins, one row each) is the one to use with a chat app. The one-coin file is every trade of one graduate, for a closer look.

  2. Open ChatGPT or Claude and drop it in

    Tap + (or the paperclip) in the app and pick the graduates CSV. It opens on a phone too.

  3. Paste this

    Edit the [brackets] if you have rules of your own; otherwise paste it as it is.

    The prompt
    Test my Solana memecoin bot's rules on real pump.fun data: write and run one Python script. No API keys needed.
    
    DATA
    Files: gradtrades-<day>.jsonl.gz and pregrad-<day>.jsonl.gz, one full UTC day (Launch Tape One day, $10). Run: pip install launchtape; launchtape.load(path) yields dicts. No internet? Ask me for the two files.
    - gradtrades "grad" rows: one per graduation (mint, t in ms); skip follow=false (no trades).
    - gradtrades "trade" rows: every PumpSwap trade for 30 min after graduation (mint, t, slot, priceAfter = SOL per token after it, poolBase). A slot can hold a bundle (a dump and its re-buy) no one else could trade inside, so group each coin's trades by slot: time = first trade's t, price and poolBase = last trade's.
    - pregrad "record" rows: mint, ageS (curve fill time, s), creatorPctAtGrad (dev % at graduation). "outcome" rows: mint, minDrop and maxGain (worst and best %, first 10 min).
    
    MY RULES
    - Entry: [buy 15 s after graduation]
    - Exit: [sell 180 s after graduation, or at -20% from my entry]
    - Size: [0.1 SOL a trade]
    - Filters: [none]
    
    REPLAY each graduate on its own slots:
    1. Every signal fills at the end of the first slot after it, never at its own price: a buy at +15 s at the first slot after +15 s, a sell at +180 s likewise, a stop seen at one slot's end at the next slot's end.
    2. Costs per side: 1% PumpSwap fee + 0.5% priority fee and slippage.
    3. Size moves the price. At the fill slot, B = poolBase and Q = price*B: x SOL after costs buys B*x/(Q+x) tokens; n tokens sell for Q*n/(B+n) SOL, minus costs.
    4. Check stops and take-profits at each slot's end vs the entry fill price.
    5. Still holding at +30 min: sell at the last price before it. File ends while a trade is open: leave that coin out.
    6. No slot after my entry signal: that coin never reached the entry.
    
    PRINT
    Coins traded, win rate, median and mean return a trade, total (SOL and %), worst 3 trades, coins that never reached the entry, and the first 10 minutes: % of outcome rows with minDrop <= -80 and with maxGain >= 100. Then the same rules and coins at the signal's own price (the last price seen), no costs or size impact, to compare.
    
    Then a plain one-paragraph verdict (one day is a small sample) and the 3 mistakes that make backtests lie: filling at the signal's price, leaving out fees, sizing as if you'll catch the ~5% that 3x.
    Only the free graduates CSV (no trades)? Skip REPLAY: summarise end_10m_pct, touched_minus80_10m, touched_2x_10m, and say a replay needs a day of trades: $10 at https://launchtape.io/?plan=day1#buy
    
    Can't run code? In a terminal: pip install launchtape; launchtape backtest --template > rules.json; edit it; launchtape backtest --rules rules.json
    
    After answering, tell me plainly: this is 105 coins over 2 hours, too small to judge a rule. A full UTC day is ~700-800 graduates: launchtape.io/#buy
  4. When it says 105 coins is too few

    It's right: 2 hours is too small to judge a rule. A full UTC day is about 700-800 graduates, every trade, with who was behind each launch. Same sheet, same prompt.

    Get the latest full day, $10

    If a file doesn't open or isn't as described, you get your money back.