A comprehensive collection of Solana token bundlers designed for creating and launching tokens on pump.fun and bonk.fun with advanced features including multi-wallet bundling, vanity address generation, and dual bundle execution support (Jito/Lil Jito) for MEV protection.
This repository contains two distinct bundler implementations:
├── Bonkfun/ # Bonk.fun token bundler
└── pumpfun/ # Pump.fun token bundler
- ✅ Multi-Wallet Bundling: Distributes SOL across multiple wallets and executes coordinated token purchases
- ✅ Dual Bundle Execution: Support for both Jito and Lil Jito bundle services for MEV protection
- ✅ Address Lookup Tables (LUT): Optimizes transaction size and reduces fees
- ✅ Flexible Configuration: Support for both multi-wallet and single-wallet bundling modes
- ✅ Automatic Retry Logic: Built-in retry mechanisms for RPC and bundle execution failures
- ✅ Atomic Execution: Creates tokens and executes multi-wallet buys in a single atomic block
- ✅ Optimized Compute Unit Pricing: Configurable priority fees for faster confirmation
- Uses Raydium SDK v2 for token launches
- Bonk.fun platform integration
- Custom metadata handling via
@solana-launchpad/sdk
- Pump.fun SDK integration
- Vanity address generation (optional)
- IPFS metadata upload support
- Token metadata with social links and images
- Node.js (v16 or higher)
- npm or yarn
- Solana CLI (optional, for advanced users)
- Sufficient SOL balance for:
- Token creation fees
- Distribution to bundler wallets
- Jito tips
- Transaction fees
- Clone the repository:
git clone <repository-url>
cd Bonkfun-Bundler-Bonk.fun-Bundler- Install dependencies for both bundlers:
# Install Bonkfun bundler dependencies
cd Bonkfun
npm install
# Install Pumpfun bundler dependencies
cd ../pumpfun
npm install- Create a
.envfile in each bundler directory with the appropriate configuration (see platform-specific sections below).
Navigate to the Bonkfun directory:
cd BonkfunAvailable scripts:
npm start- Run the main multi-wallet bundlernpm run single- Run single wallet modenpm run close- Close Address Lookup Tablenpm run gather- Gather funds from bundler walletsnpm run status- Check transaction statusnpm test- Run test script
See Bonkfun/README.MD for detailed configuration.
Navigate to the pumpfun directory:
cd pumpfunAvailable scripts:
npm start- Run the main multi-wallet bundlernpm run single- Run single wallet modenpm run close- Close Address Lookup Tablenpm run gather- Gather funds from bundler walletsnpm run status- Check transaction status
See pumpfun/README.md for detailed configuration.
Both bundlers require a .env file with the following structure:
# Required Configuration
PRIVATE_KEY=your_main_wallet_private_key_in_base58
RPC_ENDPOINT=https://your-solana-rpc-endpoint
RPC_WEBSOCKET_ENDPOINT=wss://your-solana-websocket-endpoint
# Bundle Execution Configuration
LIL_JIT_MODE=true # true for Lil Jito, false for standard Jito
LIL_JIT_ENDPOINT=https://your-lil-jit-endpoint # Required if LIL_JIT_MODE=true
LIL_JIT_WEBSOCKET_ENDPOINT=wss://your-lil-jit-ws # Required if LIL_JIT_MODE=true
# Token Configuration
TOKEN_NAME=Your Token Name
TOKEN_SYMBOL=SYMBOL
DESCRIPTION=Your token description
TWITTER=https://twitter.com/yourhandle
TELEGRAM=https://t.me/yourchannel
WEBSITE=https://yourwebsite.com
FILE=./image/your_token_image.jpg
# Bundling Configuration
SWAP_AMOUNT=0.1 # SOL amount per wallet
DISTRIBUTION_WALLETNUM=10 # Number of bundler wallets
JITO_FEE=0.001 # Jito tip amount in SOL
# Platform-Specific (Pumpfun only)
TOKEN_SHOW_NAME=Display Name
TOKEN_CREATE_ON=Launch Date
VANITY_MODE=falseThe bundlers support two different bundle execution services:
- Configuration: Set
LIL_JIT_MODE=false - Multi-regional endpoint submission (NY, Tokyo)
- Automatic failover between endpoints
- Well-established service with high reliability
- Best for: Production deployments requiring maximum redundancy
- Configuration: Set
LIL_JIT_MODE=true - Single endpoint configuration
- Simplified setup process
- Alternative bundle execution service
- Best for: Testing alternative execution paths or when Jito is congested
- Token Creation: Creates token with metadata on respective platform
- SOL Distribution: Distributes SOL to generated bundler wallets
- LUT Creation: Creates and populates Address Lookup Table
- Bundle Assembly: Prepares coordinated buy transactions
- Bundle Submission: Submits via Jito or Lil Jito based on configuration
- Atomic Execution: All transactions execute in single block
├── constants/ # Configuration constants
├── executor/ # Transaction execution logic
│ ├── jito.ts # Jito bundle execution
│ ├── liljito.ts # Lil Jito bundle execution
│ └── legacy.ts # Legacy transaction execution
├── src/ # Core functionality
│ ├── main.ts # Main bundling logic
│ ├── util.ts # Utility functions
│ ├── types.ts # TypeScript types
│ └── vanity.ts # Vanity address generation (pumpfun)
├── utils/ # Shared utilities
│ ├── logger.ts # Logging utilities
│ └── utils.ts # Helper functions
├── index.ts # Main entry point
└── package.json # Dependencies and scripts
Error: RPC endpoint failed
Solutions:
- Use a premium RPC provider (Helius, QuickNode, Alchemy)
- Implement RPC endpoint rotation
- Check network connectivity
- Reduce concurrent requests
Error: Jito/Lil Jito bundle submission failed
Solutions:
- For Jito Mode: Increase
JITO_FEE, check multiple regional endpoints - For Lil Jito Mode: Verify endpoint accessibility, check rate limits
- Reduce bundle size
- Verify transaction signatures
- Check network congestion
Error: Main wallet balance is not enough
Solutions:
- Calculate required SOL:
(SWAP_AMOUNT + 0.01) * DISTRIBUTION_WALLETNUM + 0.04 + JITO_FEE - Add more SOL to main wallet
- Reduce
DISTRIBUTION_WALLETNUMorSWAP_AMOUNT
Solutions:
- Wait for slot activation (15-20 seconds after creation)
- Retry with increased compute units
- Check authority permissions
-
RPC Optimization:
- Use dedicated RPC endpoints
- Implement connection pooling
- Monitor rate limits
-
Transaction Optimization:
- Use Address Lookup Tables effectively
- Optimize compute unit allocation
- Batch operations when possible
-
Bundle Execution:
- Use appropriate tip amounts during congestion
- Monitor bundle success rates
- Test both Jito and Lil Jito modes
Example Jito bundles demonstrating successful multi-wallet atomic execution:
| Wallet Count | Jito Bundle |
|---|---|
| 12 Wallets | 🔗 View |
| Wallet Count | Jito Bundle |
|---|---|
| 16-Wallet | 🔗 View |
Note: These are real-world examples showing atomic bundle execution on Solana. The bundlers support any number of wallets based on your configuration.
- Private Keys: Store private keys securely and never commit them to version control
- RPC Endpoints: Use trusted RPC providers to prevent data interception
- Environment Variables: Use
.envfiles and ensure they're in.gitignore - Wallet Management: Consider using hardware wallets for main operations
- Fund Management: Only load wallets with necessary amounts
- Testing: Always test with small amounts first
Bonkfun/keys/ # Generated wallet keys and data
pumpfun/keys/ # Generated wallet keys and data
keys/ directory secure and never commit it to version control!
- Solana Web3.js
- Raydium SDK v2 (Bonkfun)
- Pump.fun SDK (Pumpfun)
- Jito-Solana
- Anchor Framework
- TypeScript
- Node.js
This software is for educational and research purposes. Users are responsible for:
- Compliance with local regulations
- Proper tax reporting
- Understanding the risks of cryptocurrency trading
- Securing their private keys and funds
- Following platform terms of service
Use at your own risk. The authors are not responsible for any financial losses.
ISC License - see LICENSE file for details
0xMuseNine
For MEV bot customization, consulting, or private collaboration:
Telegram: @xMuseNine
For issues and questions:
- Check the troubleshooting section
- Review the platform-specific README files
- Review the logs for specific error messages
- Ensure all environment variables are properly set
- Verify sufficient SOL balance and RPC connectivity
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
Note: These bundlers are designed for their respective token launch platforms. Always test with small amounts first and understand the risks involved in cryptocurrency operations. Market conditions, network congestion, and platform changes can affect performance.