Automates bundled token trading on Solana for PumpFun/Raydium using Jito for first-block execution. Designed to create liquidity, distribute SOL across multiple wallets, simulate organic volume via randomized buy/sell cycles, and gather funds back reliably.
- Jito bundling: First-block inclusion (when enabled) for fast, reliable execution
- Volume simulation: Randomized buy/sell intervals and amounts to mimic organic flow
- Multi-wallet orchestration: Distributes SOL to N sub-wallets and gathers profits back
- Raydium/PumpFun support: Uses Raydium SDK and Jupiter routes to swap
- Config via .env: Tune timing, slippage, fees, wallet counts, and token mint
- Resilience: Retries on failures and cleans up sub-wallet balances
- Distribute SOL from the main wallet to
DISTRIBUTE_WALLET_NUMtemporary wallets - Each wallet executes buy twice (split amounts), waits randomized intervals, then sells
- Close token accounts and transfer remaining SOL back to the main wallet
- Repeat after a randomized round interval
pumpfun-amm-bundler-volume-maker/
├─ index.js # main loop: distribute, buy/sell, gather
├─ gather.js # utility to gather SOL from wallets
├─ constants/ # environment-driven runtime config
├─ utils/ # Jupiter swap builders, file utils, helpers
├─ executor/ # legacy/jito transaction executors
├─ package.json # scripts: start, gather
└─ README.md
- Node.js 16+
- A funded Solana keypair (base58 private key)
- RPC endpoint and (optional) Jito bundle relayer access
npm install
# or
yarn installCreate a .env in the project root:
# Wallet and network
PRIVATE_KEY=base58_private_key_here
RPC_ENDPOINT=https://your-rpc
RPC_WEBSOCKET_ENDPOINT=wss://your-rpc-ws
# Token and trading params
TOKEN_MINT=So11111111111111111111111111111111111111112
SLIPPAGE=1 # %
JITO_MODE=false # true to enable Jito
JITO_FEE=0 # lamports or relayer-specific
# Distribution and volume shaping
DISTRIBUTE_WALLET_NUM=10
SOL_AMOUNT_TO_DISTRIBUTE=1.0 # total SOL to distribute each round
DISTRIBUTE_INTERVAL_MIN=60 # seconds
DISTRIBUTE_INTERVAL_MAX=120
BUY_LOWER_PERCENT=5 # % of wallet SOL (excluding reserve)
BUY_UPPER_PERCENT=15
BUY_INTERVAL_MIN=5 # seconds
BUY_INTERVAL_MAX=15
SELL_INTERVAL_MIN=30 # seconds
SELL_INTERVAL_MAX=90Notes:
PRIVATE_KEYis base58 of the main wallet (will fund sub-wallets).TOKEN_MINTis the token to trade (base58).- When
JITO_MODE=true, transactions are submitted via the Jito executor.
# Start the bundler/volume bot
npm run start
# or
yarn startYou should see logs showing:
- Main wallet address and SOL balance
- Token mint
- Configured buy/sell intervals
- Distribution results, swap tx links, and gather steps
Optional utility:
# Run standalone gather (if provided) to sweep SOL from sub-wallets
npm run gather
# or
yarn gather- Missing env var: the bot will print which variable is not set and exit
- Low SOL: ensure the main wallet has enough SOL for distribution and fees
- Slippage: increase
SLIPPAGEif swaps are failing due to price movement - RPC instability: try a more reliable RPC or reduce concurrency
Use at your own risk; on-chain trading is volatile. Fund the main wallet carefully and start with small amounts. Ensure RPC endpoints and (optional) Jito access are stable. Comply with local laws and exchange/AMM policies.