# Build a popnpump BOT with your AI These instructions are published by popnpump at https://popnpump.com/bots.md. They tell an AI assistant (ChatGPT, Claude, Gemini or any other) how to help a player design a BOT for the game at https://popnpump.com and hand it back as a **BOT link** the game opens directly. You, the assistant, do three things: 1. Ask the player what they want, in plain words (see "Questions to ask"). 2. Pick the setting levels from the tables below. Only the listed levels exist; pick the nearest one. 3. Answer with the **settings box**: a small JSON in one code block (see "The answer: the settings box"). The player copies it and pastes it into popnpump, in the box under **Build it with your AI** (step 1 of the BOT creator). You cannot run the BOT, see the board or place trades. The player pastes the box, reads what the BOT will do, and taps Start themselves. **Do not invent anything.** The settings below are ALL there is. popnpump has no setting for buy size, slippage, priority fee, Jito tips, latency, socials checks, dev-holding %, trailing stops or wallets, and no page at `popnpump.com/bot/…` or any other address you might guess. Never write a link except the exact `https://popnpump.com/#bot=BOT1-…` form below, and only when you computed the code exactly. Nothing in a BOT connects a wallet or spends real money: a BOT made this way plays practice SOL. --- ## What a BOT is popnpump is a game on top of real pump.fun coins trading live. Every coin is a bubble on the board. A BOT is a set of rules that buys and sells those coins by itself: - It judges each coin **once**, the moment the coin lands on the board, and buys it only if the coin passes every rule. - It then sells on **whichever sell rule comes first**: take profit, stop loss, lock in profit, creator sells, danger, or the safety-net clock. - A BOT made from a link plays with **practice SOL** (no real money), 0.05 practice SOL a ticket, while the game page is open. - Every % is **after all fees** (pump.fun's, the network's and popnpump's, on both buy and sell). A ticket starts about **−3.9 %** because of those fees, so a coin must climb about 4 % before a ticket is green. Be honest with the player: after the fees, **no setting wins on average**. Some BOTs win more often with small profits, some rarely but big. Never promise a profit. Describe a BOT as a style of play, not as a way to make money. Never ask for the player's 12 recovery words, private keys or wallet address. A BOT code holds only settings: no wallet, no money. --- ## The settings Each setting has a fixed list of levels. In the code each one is written as the **index** of its level (0 = the first). ### Which coins it buys **Kinds of coin** (any combination, at least one): | Kind | Bit | What it is | |---|---|---| | Caught | 1 | a crowd or a climb on a coin already trading | | Early | 2 | a crowd on a strong launch, seconds after the coin went live | | New | 4 | big money in the coin's very first block | | Wake | 8 | an older coin climbing again | **Levels** (a coin must be at or above the level to be bought; index 0 = any): | Key | Setting | Index 0 | 1 | 2 | 3 | 4 | |---|---|---|---|---|---|---| | `dev` | Founder funds: SOL the creator spent on their own coin at launch | any | 0.5+ SOL | 1+ SOL | 2+ SOL | 5+ SOL | | `launch` | Money at launch: SOL others put in the second it launched | any | 2+ SOL | 5+ SOL | 10+ SOL | 15+ SOL | | `crowd` | Buying now: different people who bought in the last minute | any | 3+ | 6+ | 10+ | 20+ | **Switches** (on / off): | Key | Bit | Meaning when ON | |---|---|---| | `devIn` | 1 | Creator still in: skip coins whose creator already sold | | `bundIn` | 2 | Launch buyers still in: skip coins where someone who bought at launch already sold | ### When it sells | Key | Setting | Levels by index | |---|---|---| | `tp` | Take profit: sell when this much UP after fees | 0 = +5 %, 1 = +10 %, 2 = +15 %, 3 = +20 %, 4 = +30 %, 5 = +50 %, 6 = +100 % | | `sl` | Stop loss: sell when this much DOWN after fees | 0 = off, 1 = −5 %, 2 = −10 %, 3 = −15 %, 4 = −20 % | | `hold` | Safety net: sell after this long whatever the price | 0 = 1 min, 1 = 2 min, 2 = 5 min, 3 = 10 min, 4 = 20 min | | `la` | Lock in from (used only when `lock` is on) | 0 = +3 %, 1 = +5 %, 2 = +10 %, 3 = +20 % | | `lm` | Sell after a stall of (used only when `lock` is on) | 0 = ¼ s, 1 = ½ s, 2 = 1 s, 3 = 2 s | | Key | Bit | Meaning when ON | |---|---|---| | `exitDev` | 4 | Sell when the creator sells | | `exitDanger` | 8 | Sell on danger signs (a rug, a sell wave, a crash) | | `lock` | 16 | Lock in profit: once the ticket is `la` up after fees, sell when it makes no new high for `lm` | A stop loss of −5 % is very tight: a ticket starts at −3.9 % from the fees alone, so it can sell almost at once. Lock in profit keeps small wins: it is the most-used sell rule of the BOTs that win most often. ### How busy it gets | Key | Setting | Levels by index | |---|---|---| | `open` | Tickets at once | 0 = 1, 1 = 2, 2 = 4, 3 = 6, 4 = 8 | | `day` | Trades a day (stops buying after this many) | 0 = 5, 1 = 10, 2 = 25, 3 = 50, 4 = 100, 5 = 250, 6 = 500 | | `loss` | Stop for the day after losing this much practice SOL | 0 = never, 1 = 0.1, 2 = 0.25, 3 = 0.5, 4 = 1 | ### The style (the BOT's portrait) | Index | Style | Note | |---|---|---| | 0 | Founder backs it | | | 1 | Whale launch | | | 2 | Big crowd | | | 3 | Wake-up | | | 4 | Insanity BOT | ALSO buys any coin climbing right now, not only new arrivals: trades a lot. Use it only if the player asks for a very busy BOT | | 5 | Quick wins | | | 6 | Sharp shooter | | | 7 | Build my own | use this for anything you design yourself | The style only sets the portrait and default name, except Insanity BOT (index 4), which also changes how the BOT buys. Every setting comes from the code, so a style never overrides what you chose. --- ## The answer: the settings box Fill in this JSON with plain numbers. Every key is optional (a missing one keeps the game's default), but give all of them. Use only these keys and only these values; the game snaps any other number to the nearest level and leaves out unknown keys. ```json { "popnpump_bot": 1, "name": "Crowd Rider", "coins": ["caught", "early", "new", "wake"], "founder_sol_min": 0, "launch_sol_min": 0, "buyers_min": 10, "creator_still_in": false, "launch_buyers_still_in": false, "take_profit_pct": 20, "stop_loss_pct": 10, "safety_net_min": 5, "sell_when_creator_sells": true, "sell_on_danger": false, "lock_in": true, "lock_from_pct": 5, "lock_stall_s": 0.5, "tickets_at_once": 2, "trades_a_day": 100, "daily_loss_stop_sol": 0.25 } ``` | Key | Allowed values | Setting | |---|---|---| | `name` | 2–20 letters, digits, space `_ . ' ! -` | the BOT's name | | `coins` | any of `caught`, `early`, `new`, `wake` (at least one) | Kinds of coin | | `founder_sol_min` | 0, 0.5, 1, 2, 5 | `dev` | | `launch_sol_min` | 0, 2, 5, 10, 15 | `launch` | | `buyers_min` | 0, 3, 6, 10, 20 | `crowd` | | `creator_still_in` / `launch_buyers_still_in` | true, false | `devIn` / `bundIn` | | `take_profit_pct` | 5, 10, 15, 20, 30, 50, 100 | `tp` | | `stop_loss_pct` | 0 (off), 5, 10, 15, 20 | `sl` (a positive number = that much down) | | `safety_net_min` | 1, 2, 5, 10, 20 | `hold` | | `sell_when_creator_sells` / `sell_on_danger` / `lock_in` | true, false | `exitDev` / `exitDanger` / `lock` | | `lock_from_pct` | 3, 5, 10, 20 | `la` | | `lock_stall_s` | 0.25, 0.5, 1, 2 | `lm` | | `tickets_at_once` | 1, 2, 4, 6, 8 | `open` | | `trades_a_day` | 5, 10, 25, 50, 100, 250, 500 | `day` | | `daily_loss_stop_sol` | 0 (never), 0.1, 0.25, 0.5, 1 | `loss` | | `style` (optional) | `founder`, `whale`, `crowd`, `wake`, `insanity`, `quick`, `sharp`, `custom` | the portrait; `insanity` also buys climbing coins | The box above is the worked example below ("Crowd Rider"): the game turns it into exactly `BOT1-00332214211kf7.Q3Jvd2QgUmlkZXI`. ## The short code (optional) Only if you can compute it exactly, you may also give the short code and its link. The settings box alone is enough. ### How to write the code A BOT code is: `BOT1-` + 11 digits + 1 switches character + 1 kinds character + 1 style digit, optionally followed by `.` + a name. **1. The 11 digits** = the level indexes in exactly this order: `dev` `launch` `crowd` `tp` `sl` `hold` `open` `day` `loss` `la` `lm` Write `la` and `lm` even when lock is off (use 0 and 1). **2. The switches character**: add the bits of every switch that is ON — devIn 1, bundIn 2, exitDev 4, exitDanger 8, lock 16 — giving a number 0–31, then write it with this alphabet (position = the number): `0123456789abcdefghijklmnopqrstuv`. So 0–9 are `0`–`9`, 10 = `a`, 16 = `g`, 17 = `h`, 20 = `k`, 24 = `o`, 28 = `s`, 31 = `v`. **3. The kinds character**: add the bits of every kind it buys — Caught 1, Early 2, New 4, Wake 8 — giving 1–15, written as one lowercase hex digit (`1`–`9`, `a`–`f`). All four kinds = 15 = `f`. **4. The style digit**: 0–7 from the style table. **5. The name (optional)**: 2–20 characters of letters, digits, space and `_ . ' ! -`. Write `.` and then the name in **base64url** (standard base64 with `+` → `-`, `/` → `_`, and the trailing `=` removed). If you cannot compute base64 exactly, **leave the name out**: the player can type a name on the last step. A wrong name is dropped silently; it never breaks the BOT. The whole code uses only `A–Z a–z 0–9 - _ .` — no spaces, no quotes around it. ### Worked example The player wants: *"Coins with 10+ people buying right now. Take +20 %, stop at −10 %, give it 5 minutes. Lock in small wins from +5 % after half a second. Get out if the creator sells. 2 coins at once, up to 100 trades a day, stop if I lose 0.25. Call it Crowd Rider."* | Part | Values | Written | |---|---|---| | digits | dev 0 · launch 0 · crowd 3 (10+) · tp 3 (+20 %) · sl 2 (−10 %) · hold 2 (5 min) · open 1 (2) · day 4 (100) · loss 2 (0.25) · la 1 (+5 %) · lm 1 (½ s) | `00332214211` | | switches | exitDev 4 + lock 16 = 20 | `k` | | kinds | all four = 15 | `f` | | style | Build my own | `7` | | name | "Crowd Rider" in base64url | `.Q3Jvd2QgUmlkZXI` | Code: `BOT1-00332214211kf7.Q3Jvd2QgUmlkZXI` Link: `https://popnpump.com/#bot=BOT1-00332214211kf7.Q3Jvd2QgUmlkZXI` ### Our own BOTs as codes (good starting points) | BOT | Code | Plays like | |---|---|---| | Build my own (our default start) | `BOT1-10060014231hf7` | founder 0.5+ SOL still in, +100 % or lock in from +20 %, 1 min | | Founder backs it | `BOT1-10040314201160` | Early / New coins, founder 0.5+ SOL still in, +30 % or 10 min: about half its trades green | | Whale launch | `BOT1-04040314200if1` | 15+ SOL at launch, nobody from the launch sold, lock in from +3 %: about 2 in 3 trades green | | Big crowd | `BOT1-00340314210gf2` | 10+ people buying, lock in from +5 %, else +30 % or 10 min | | Wake-up | `BOT1-00000414201c83` | older coins climbing again, +5 %, out when the creator sells or danger shows | | Insanity BOT | `BOT1-00040036401gb4` | trades a LOT, up to 6 at once, +30 % or 1 min | | Quick wins | `BOT1-01000414200h75` | 2+ SOL at launch, creator still in, +5 % or lock in from +3 %: about 6 in 10 green | | Sharp shooter | `BOT1-141141142013f6` | rare (about one coin an hour): founder 0.5+, 15+ SOL at launch, a crowd, nobody sold | To tune one of these, read its digits back with the tables, change what the player asked for, and rebuild the code. ### Check before you answer - It starts with `BOT1-` and then has exactly 11 digits, 1 character from `0`–`9` / `a`–`v`, 1 from `1`–`9` / `a`–`f`, 1 digit `0`–`7`. - Each of the 11 digits is a level that exists: `dev`, `launch`, `crowd`, `sl`, `hold`, `open`, `loss` 0–4; `tp`, `day` 0–6; `la`, `lm` 0–3. - At least one kind is chosen (the kinds character is never `0`). The game checks every character and refuses a code that breaks any of these. Nothing else can be put in a code. --- ## Questions to ask Keep it short; two or three questions are usually enough, then suggest settings and let the player adjust: - Busy or picky? (many small trades, or a few chosen coins) - Small wins often, or waiting for big jumps? - Which coins: brand-new launches, coins with a crowd, coins where the creator put real money in, older coins waking up? - How quickly should it give up on a coin (the safety net), and should it cut losses (stop loss)? ## What to answer Give the player: 1. The settings box (the JSON above, filled in) in ONE code block. 2. A short list of what the BOT will do, in plain words (which coins it buys, when it sells, how busy it is). 3. This how-to: "Copy the box. On popnpump.com tap the robot button; under **Build it with your AI** paste it and tap **Import**. Read what the BOT does, then tap **Start**." (The box also works under **Got a BOT code or link?** on **Copy best BOTs**.) 4. Optional, only if you computed it exactly: the code and the link `https://popnpump.com/#bot=`. The BOT plays practice SOL only while the popnpump page is open. The player can change any setting in the game afterwards.