A high-performance Rust application that generates Solana mint addresses ending with specific suffixes for pump.fun and lets.bonk tokens. The generator runs on all CPU cores at maximum utilization and saves addresses to a Supabase database.
- 🚀 High Performance: Utilizes all CPU cores at 100% capacity
- 🎯 Targeted Generation: Generates addresses ending with "pump" and "bonk" (case sensitive)
- 💾 Database Integration: Saves addresses to Supabase with batch upload support
- 💾 Local Backup: Saves addresses to local CSV files
- 🔄 Batch Processing: Configurable batch sizes for optimal database performance
- 🛠️ Cross-Platform: Works on Windows, Linux, and macOS
- 📊 Real-time Monitoring: Progress tracking and performance metrics
- Rust (latest stable version)
- Git
- Supabase Account (free tier works)
- Windows Server (for production deployment)
git clone https://github.com/ReactOnAuth/Rust-Minter-Supabase.git
cd Rust-Minter-Supabase
# Copy the example environment file
cp .env.example .env
# Edit .env with your Supabase credentials
# SUPABASE_URL=your_supabase_project_url
# SUPABASE_ANON_KEY=your_supabase_anon_key
Run the SQL script in your Supabase SQL editor:
-- Copy contents of setup_database.sql
# Build release version
cargo build --release
# Test with a single address
cargo run --release -- pump --count 1
# Generate 1000 pump addresses
cargo run --release -- pump --count 1000 --batch-size 0 --save-local
cargo run --release -- [COMMAND] [OPTIONS]
Commands:
pump Generate pump.fun addresses (ending with "pump")
bonk Generate lets.bonk addresses (ending with "bonk")
both Generate both types of addresses
Options:
-c, --count <COUNT> Number of addresses to generate [default: 1]
-b, --batch-size <SIZE> Batch size for database upload (0 = bulk upload) [default: 25]
-s, --save-local Save addresses to local CSV files
-h, --help Print help
# Generate 1000 pump addresses with bulk upload
cargo run --release -- pump --count 1000 --batch-size 0 --save-local
# Generate 500 bonk addresses with batch upload
cargo run --release -- bonk --count 500 --batch-size 25 --save-local
# Generate both types (250 each)
cargo run --release -- both --count 250 --batch-size 0 --save-local
# Interactive menu
run.bat
# Performance benchmark
benchmark.bat
# Continuous generation (PUMP only)
auto_start.bat
# Continuous generation (both types)
auto_both.bat
# Manage backup files
manage_backups.bat
- Go to supabase.com
- Create a new project
- Note your project URL and anon key
Execute this SQL in your Supabase SQL editor:
-- Create mint_addresses table
CREATE TABLE IF NOT EXISTS mint_addresses (
id BIGSERIAL PRIMARY KEY,
mint_address VARCHAR(44) UNIQUE NOT NULL,
private_key TEXT NOT NULL,
address_type VARCHAR(10) NOT NULL CHECK (address_type IN ('pump', 'bonk')),
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);
-- Enable Row Level Security
ALTER TABLE mint_addresses ENABLE ROW LEVEL SECURITY;
-- Create policy to allow anonymous inserts
CREATE POLICY "Allow anonymous inserts" ON mint_addresses
FOR INSERT WITH CHECK (true);
-- Create index for faster queries
CREATE INDEX IF NOT EXISTS idx_mint_addresses_type ON mint_addresses(address_type);
CREATE INDEX IF NOT EXISTS idx_mint_addresses_created ON mint_addresses(created_at);
Update your .env
file:
SUPABASE_URL=https://your-project.supabase.co
SUPABASE_ANON_KEY=your-anon-key-here
- 2-core CPU: ~200K attempts/second
- 4-core CPU: ~400K attempts/second
- 8-core CPU: ~800K attempts/second
- 16-core CPU: ~1.6M attempts/second
- 32-core CPU: ~3.2M attempts/second
- Use
--batch-size 0
for maximum throughput on large generations - Enable
--save-local
for backup and offline access - Run on dedicated hardware for sustained performance
- Use SSD storage for faster binary loading
- Close unnecessary applications to free up CPU resources
rustminter/
├── src/
│ └── main.rs # Main application logic
├── Cargo.toml # Rust dependencies
├── .env.example # Environment template
├── setup_database.sql # Database setup script
├── run.bat # Interactive Windows menu
├── auto_start.bat # Continuous PUMP generation
├── auto_both.bat # Continuous both types
├── benchmark.bat # Performance testing
├── manage_backups.bat # Backup management
└── README.md # This file
Addresses are stored in the mint_addresses
table with:
mint_address
: The generated Solana addressprivate_key
: Base58-encoded private keyaddress_type
: "pump" or "bonk"created_at
: Timestamp
When using --save-local
, addresses are saved to:
pump_addresses_YYYYMMDD_HHMMSS.txt
: PUMP addressesbonk_addresses_YYYYMMDD_HHMMSS.txt
: BONK addresses
Format: mint_address,private_key
-
Supabase Connection Error
- Verify your
.env
file has correct credentials - Check internet connection
- Ensure RLS policies are set up correctly
- Verify your
-
Compilation Errors
rustup update cargo clean cargo build --release
-
Low Performance
- Check CPU usage in Task Manager
- Close unnecessary applications
- Use
--batch-size 0
for large generations
-
Database Insert Errors
- Run the RLS policy fix:
fix_rls_policy.sql
- Check Supabase dashboard for errors
- Verify table structure matches setup script
- Run the RLS policy fix:
# Check CPU cores
wmic cpu get NumberOfCores,NumberOfLogicalProcessors
# Monitor process
tasklist /FI "IMAGENAME eq solana-mint-generator.exe"
- Use environment variables for sensitive data
- Monitor database usage in Supabase dashboard
- Set up database backups
- Consider rate limiting for public deployments
- Use VPN for remote server access
- Private keys are stored in base58 format
- Keys are saved locally when using
--save-local
- Database access should be restricted in production
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
For issues and questions:
- Check the troubleshooting section
- Review error messages carefully
- Test with small batches first
- Check Supabase dashboard for database issues
- Open an issue on GitHub
Happy address generating! 🚀