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.
π© Need help or a custom build? Contact me on Telegram β @Kei4650
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.
| 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. |
| 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 |
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
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
Result: 2 buys for every 1 sell, and a unique maker address every cycle.
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.
- 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:
inquirerinteractive prompts
- 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
# 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 settingsSet 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 SOLin the main wallet as a fee buffer (FEE_BUFFER). Token mints ending inpumptrade on the bonding curve until they migrate to PumpSwap.
Start the interactive CLI:
npm start # or: npm run bot / npx ts-node cli-bot.tsYou'll be presented with the main menu:
π Pump.fun Volume Bot
ββββββββββββββββββββββββββββ
πΌ Wallet Manager
π€ Market Maker Mode
π° Sell Mode
β Exit
- π 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
Launch the market-maker engine for a custom runtime and monitor its progress.
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.
npm run gather # sell leftover tokens, then collect SOL
npm run gather_without_sell # collect SOL only (leave tokens untouched)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)
- Never commit real keys.
wallet.jsonand.envhold 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.
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.
Kei Novak
Reach out for help, custom features, or other Solana trading projects.