Skip to content

Repository files navigation

πŸš€ Pump.fun Volume Bot

An automated multi-wallet volume & market-making bot for Pump.fun and PumpSwap tokens on Solana.

Distribute SOL across a rotating fleet of fresh wallets and generate organic-looking volume, new makers, and steady buy pressure β€” fully automated from an interactive CLI.

Solana TypeScript Node.js Pump.fun

Telegram

πŸ“© Need help or a custom build? Contact me on Telegram β†’ @Kei4650


πŸ“– Overview

This bot automates the distribution of SOL to many freshly-generated wallets and runs endless buy / sell swaps against a target token simultaneously. It trades directly through the Pump.fun bonding curve and routes to PumpSwap once a token has migrated β€” no third-party aggregator required.

Unlike fixed-wallet volume bots, every trading round rotates SOL into a brand-new wallet, so each round adds a unique maker to the chart instead of reusing the same handful of addresses.

✨ Features

Feature Description
βš™οΈ Automated SOL distribution Splits SOL from your main wallet across a configurable fleet of generated wallets.
πŸ”„ Endless buy & sell swaps Runs continuous, randomized buy/sell cycles to produce steady volume.
πŸ‘₯ Maker growth A new wallet is created every round, increasing the unique maker count β€” not just volume.
πŸ“ˆ More buys than sells Each wallet buys twice and sells once, leaving net buy pressure.
🧹 Sell-before-gather When collecting funds, leftover tokens are sold first so only SOL is gathered (token-account rent reclaimed).
⚑ Jito bundle support Optional Jito MEV bundles for faster, more reliable landing (JITO_MODE).
πŸ–₯️ Interactive CLI Menu-driven interface for wallet management, market making, and selling.

πŸ” Why V2? (Improvements over fixed-wallet bots)

Old behavior ❌ New behavior βœ…
Repetitive buy/sell from the same wallets (obvious on DexScreener) Each round rotates SOL into a fresh wallet
Volume increased, but maker count stayed flat New makers created every round
Gathered leftover tokens to the main wallet Sells tokens first, gathers only SOL + reclaims rent
Equal buys and sells β†’ net sell pressure 2Γ— buys per sell β†’ net buy pressure

πŸ—οΈ Architecture

flowchart TD
    CLI["πŸ–₯️ Interactive CLI<br/>(cli-bot.ts)"] --> MAIN["πŸ’Ό Main Wallet"]
    MAIN -->|distributeSol| POOL["πŸͺ™ Wallet Pool<br/>(wallet.json)"]

    POOL --> V["πŸ“ˆ Volume Bot<br/>buy Γ—2 β†’ sell β†’ rotate"]
    POOL --> M["πŸ€– Market Maker Bot<br/>balanced cycles"]
    POOL --> B["πŸ’° Big Trade Bot<br/>large swaps"]

    V & M & B --> SWAP{"Token migrated?"}
    SWAP -- no --> PF["🟒 Pump.fun<br/>Bonding Curve"]
    SWAP -- yes --> PS["πŸ”΅ PumpSwap<br/>AMM"]

    PF & PS --> EXEC["πŸ“€ Executor<br/>Jito bundle / legacy tx"]
    EXEC --> SOL(("β—Ž Solana"))

    BIRD["🐦 Birdeye API"] -.->|price data| V & M & B
    POOL -.->|gather.ts| MAIN
Loading

βš™οΈ How the Volume Strategy Works

Each volume wallet follows a rotating lifecycle that adds one new maker per round while keeping net buy pressure:

flowchart LR
    A([Fund fresh wallet]) --> B[First buy<br/>random pct of SOL]
    B --> C[Wait<br/>BUY_INTERVAL]
    C --> D[Second buy<br/>random pct of SOL]
    D --> E[Wait<br/>SELL_INTERVAL]
    E --> F[Sell ALL tokens]
    F --> G[Transfer leftover SOL<br/>to a NEW wallet]
    G --> A
Loading

Result: 2 buys for every 1 sell, and a unique maker address every cycle.

πŸ€– Bot Modes

When you split a fleet into the three engines, wallets are allocated as:

Mode Wallet share Behavior
πŸ“ˆ Volume Bot 20% Continuous randomized buy/sell to build steady volume.
πŸ€– Market Maker Bot 30% Balanced buy/sell cycles that maintain two-sided activity.
πŸ’° Big Trade Bot 50% Larger swaps that create more noticeable price movement.

All three run in parallel for the configured runtime.

🧰 Tech Stack

  • Runtime: Node.js + TypeScript (ts-node)
  • Chain: Solana β€” @solana/web3.js, @solana/spl-token
  • Programs: Pump.fun + PumpSwap (Anchor IDLs via @coral-xyz/anchor)
  • Execution: Jito bundles (jito-ts) or legacy transactions
  • Data: Birdeye API for price, Helius/any RPC for the chain
  • CLI: inquirer interactive prompts

πŸ“‹ Requirements

  • Node.js β‰₯ 18
  • A funded Solana main wallet (base58 private key)
  • A reliable RPC endpoint (e.g. Helius, QuickNode)
  • (Optional) A Birdeye API key for price data

πŸ“¦ Installation

# 1. Clone the repository
git clone https://github.com/keidev-sol/Pumpfun-Volume-Bot.git
cd Pumpfun-Volume-Bot

# 2. Install dependencies
npm install

# 3. Create your environment file
cp .env.example .env
#    then edit .env with your keys and settings

πŸ”§ Configuration

Set the following variables in your .env file:

# ── Connection ──────────────────────────────
PRIVATE_KEY=                 # Base58 secret key of your main wallet
RPC_ENDPOINT=                # Solana RPC URL
RPC_WEBSOCKET_ENDPOINT=      # Solana WebSocket RPC URL

# ── Distribution ────────────────────────────
DISTRIBUTE_WALLET_NUM=5      # Wallets running in parallel (recommended ≀ 20)
SOL_AMOUNT_TO_DISTRIBUTE=0.05 # SOL sent to each generated wallet
DISTRIBUTE_INTERVAL_MIN=300  # Min delay between distributions (ms)
DISTRIBUTE_INTERVAL_MAX=500  # Max delay between distributions (ms)

# ── Buy settings ────────────────────────────
BUY_UPPER_PERCENT=50         # Max % of a wallet's SOL used per buy
BUY_LOWER_PERCENT=30         # Min % of a wallet's SOL used per buy
BUY_INTERVAL_MIN=100         # Min seconds between buys
BUY_INTERVAL_MAX=200         # Max seconds between buys

# ── Sell settings ───────────────────────────
SELL_INTERVAL_MIN=100        # Min seconds before selling
SELL_INTERVAL_MAX=150        # Max seconds before selling

# ── Trade / fees ────────────────────────────
SLIPPAGE=50                  # Slippage in percent
FEE_LEVEL=10                 # Priority-fee level (10 = standard)
JITO_MODE=false              # Use Jito bundles (true/false)
JITO_FEE=0.0001              # Jito tip in SOL when JITO_MODE=true

# ── Token & addresses ───────────────────────
TOKEN_MINT=                  # Mint address of the token to trade
BIRDEYE_KEY=                 # Birdeye API key (price data)
GATHER_ADDRESS=              # Destination wallet for gathered SOL
AIRDROP_ADDRESS=             # (Optional) airdrop destination

⚠️ Keep at least ~0.005 SOL in the main wallet as a fee buffer (FEE_BUFFER). Token mints ending in pump trade on the bonding curve until they migrate to PumpSwap.

πŸš€ Usage

Start the interactive CLI:

npm start      # or: npm run bot   /   npx ts-node cli-bot.ts

You'll be presented with the main menu:

πŸš€ Pump.fun Volume Bot
────────────────────────────
  πŸ’Ό Wallet Manager
  πŸ€– Market Maker Mode
  πŸ’° Sell Mode
  ❌ Exit

πŸ’Ό Wallet Manager

  • πŸ”„ Generate Wallets + Distribute SOL β€” create wallets and fund them
  • πŸ‘€ View Wallets β€” check SOL & token balances across the fleet
  • πŸ’° Sell Tokens β€” rotate through wallets selling a chosen %
  • πŸ’Έ Collect SOL β€” gather all SOL back to your main wallet
  • πŸ”„ Transfer All Tokens to 1 Wallet & Sell β€” consolidate, sell, then collect

πŸ€– Market Maker Mode

Launch the market-maker engine for a custom runtime and monitor its progress.

πŸ’° Sell Mode

Continuously rotates through wallet.json, selling a set percentage from each wallet on a fixed time interval (e.g. sell 1% every 1 minute) until stopped.

πŸ’Έ Gather funds back

npm run gather                 # sell leftover tokens, then collect SOL
npm run gather_without_sell    # collect SOL only (leave tokens untouched)

πŸ“ Project Structure

Pumpfun-Volume-Bot/
β”œβ”€β”€ cli-bot.ts          # Interactive CLI entry point (menus, wallet manager)
β”œβ”€β”€ index.ts            # Core bot logic: distribute, buy, sell, run* engines
β”œβ”€β”€ gather.ts           # Sell-then-collect SOL from all wallets
β”œβ”€β”€ gather_without_sell.ts
β”œβ”€β”€ constants/          # RPC, program IDs, env-driven config
β”œβ”€β”€ contract/           # Pump.fun + PumpSwap IDLs and typed clients
β”œβ”€β”€ executor/           # Jito bundle & legacy transaction senders
β”œβ”€β”€ utils/              # Bonding curve, swap helpers, file/wallet utils
└── wallet.json         # Generated wallet data (DO NOT share / commit)

πŸ”’ Security Notes

  • Never commit real keys. wallet.json and .env hold private keys β€” keep them out of version control and rotate any key that leaks.
  • Use a dedicated funding wallet, not your main holdings.
  • Test with small amounts first and confirm RPC stability before scaling up.

⚠️ Disclaimer

This software is provided for educational purposes only. Generating artificial trading volume may violate the terms of service of certain platforms and the laws or regulations of your jurisdiction. You are solely responsible for how you use this tool. The authors assume no liability for any losses, damages, or legal consequences.

πŸ‘€ Author

Kei Novak

Reach out for help, custom features, or other Solana trading projects.

About

Pumpfun Volume Bot Pumpfun Volume Maker Bot Pumpfun Market Maker Bot

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages