A tool to analyze Meteora DLMM (Dynamic Liquidity Market Maker) pools and identify optimal market making opportunities.
- Real-time data from DexScreener and Meteora APIs
- DLMM-optimized metrics and analysis
- Capital efficiency focus
- Dynamic fee evaluation
- Risk assessment and scoring system
- Investment recommendations
- Optimized batch processing and rate limiting
- Customizable output format (CSV or color-coded Excel)
- Respects DexScreener's 300 requests/minute limit
- Uses 80% safety buffer (240 effective requests/minute)
- Dynamic delay between requests to prevent rate limit errors
- Processes up to 30 addresses per API request
- Runs 20 concurrent requests in parallel
- Progress tracking with ETA and pairs/second metrics
- Memory-efficient response processing
The tool uses a 100-point scoring system specifically designed for DLMM characteristics:
-
Capital Efficiency (45 pts)
- Focuses on volume/TVL ratio instead of raw volume
- Rewards efficient use of liquidity
- Full points for daily volume/TVL ratio ≥ 5.0
- Scaled linearly for lower ratios
-
Fee Yield (20 pts)
- Emphasizes fee generation relative to TVL
- Aligns with DLMM's dynamic fee feature
- Full points for daily fee/TVL ratio ≥ 0.2%
- Scaled linearly for lower ratios
-
Volatility (10 pts)
- Treats moderate volatility as positive (DLMMs increase fees during volatility)
- Up to 5 pts each for momentum in:
- 5m timeframe (0.5-2.0 range)
- 1h timeframe (0.5-2.0 range)
- 6h timeframe (0.5-2.0 range)
- Penalties for extreme volatility
-
Base Liquidity (15 pts)
- Minimum TVL requirement
- Full points for TVL ≥ $100,000
- Scaled linearly for lower amounts
- Additional penalties for very low TVL
-
Bin Quality (10 pts)
- DLMM-specific metric
- 10 pts for ideal bin step range (20-100)
- 5 pts for acceptable range (10-200)
- 0 pts for suboptimal configuration
Risk factors specific to DLMM operations:
1 - Very Safe - Bluechip pair with optimal metrics 2 - Safe - Good metrics with manageable volatility 3 - Moderate - Decent opportunity but watch bin positioning 4 - High - Multiple concerns need monitoring 5 - Very High - Multiple efficiency/safety concerns
Risk factors considered:
- Low capital efficiency (volume/TVL < 1.0)
- Poor fee generation (fee/TVL < 0.1%)
- Extreme volatility (momentum > 3x)
- Poor bin configuration (outside 10-200 range)
- Low TVL (< $10,000)
- Not on Jupiter strict list
- Not a bluechip pair
- Strong Buy: Score ≥ 90 and Risk ≤ 2
- "Well positioned DLMM"
- Buy: Score ≥ 80 and Risk ≤ 3
- "Good DLMM metrics"
- Hold: Score ≥ 70 and Risk ≤ 4
- "Monitor bin efficiency"
- Watch: Everything else
- "Suboptimal DLMM setup"
- Volume/TVL ratios for all timeframes
- Measures how efficiently liquidity is being used
- Higher ratios indicate better capital utilization
- Raw fees for each timeframe
- Fee/TVL ratios to measure yield
- Benefits from DLMM's dynamic fee mechanism
- Higher during periods of volatility
- Optimal bin step range: 20-100
- Acceptable range: 10-200
- Maximum allowed: 300
- Affects concentrated liquidity efficiency
- 5m/1h ratio: Immediate trend
- 1h/6h ratio: Short-term trend
- 6h/24h ratio: Medium-term trend
- Values > 1.2 indicate good volatility for DLMM
- Values > 3.0 indicate excessive volatility
Comprehensive comma-separated values file with:
- All core metrics and calculations
- Risk factors and scoring details
- Hyperlinks to:
- RugCheck token analysis
- DexScreener price charts
- GeckoTerminal analytics
- DexTools market data
- Meteora trading interface
Color-coded spreadsheet with enhanced formatting:
- Volume columns (5m, 1h, 24h): Light blue (#E3F2FD)
- Fee columns (5m, 1h, 24h): Light purple (#F3E5F5)
- Momentum indicators:
- Green (#E8F5E9) for optimal range (0.5-2.0)
- Yellow for borderline values
- Red (#FFEBEE) for concerning values
- Conditional formatting for scores and risk ratings
- Auto-adjusted column widths
- Frozen header row for easy scrolling
- Integrated market analysis links
# Generate CSV output (default)
python meteora_analyzer.py
# Generate color-coded Excel output
python meteora_analyzer.py --format xlsx
The script will:
- Fetch current market data
- Filter for active DLMM pools
- Process data in optimized batches
- Analyze capital efficiency and metrics
- Generate scored and sorted recommendations
- Save results to either:
- market_opportunities.csv (CSV format)
- market_opportunities.xlsx (Excel format)
Progress updates are displayed during execution, showing:
- Processed pairs / Total pairs
- Processing speed (pairs/second)
- Estimated time remaining
- Current batch progress
# Analyze specific pools only
python meteora_analyzer.py --pools <pool1,pool2,pool3>
# Set custom TVL threshold
python meteora_analyzer.py --min-tvl 50000
# Adjust risk tolerance
python meteora_analyzer.py --max-risk 3
# Custom output directory
python meteora_analyzer.py --output-dir /path/to/dir
# Debug mode with verbose logging
python meteora_analyzer.py --debug
# Rate limiting
export METEORA_MAX_REQUESTS=300
export METEORA_SAFETY_BUFFER=0.8
# API endpoints
export DEXSCREENER_API_URL=custom_url
export METEORA_API_URL=custom_url
# Output formatting
export DEFAULT_OUTPUT_FORMAT=xlsx
- Run during UTC 12:00-20:00 for highest liquidity periods
- Avoid running during known high-volatility events
- Consider running multiple times per day to catch market shifts
-
High-Quality Pairs
- Both tokens on Jupiter strict list
- Combined market cap > $10M
- Consistent trading history
-
Ideal Configuration
- Bin step: 20-50 for stable pairs
- Bin step: 50-100 for volatile pairs
- Active price within 20% of bin range
-
Red Flags to Avoid
- Extreme price impact (>2% for 1000 USD)
- Single-sided liquidity (>80% imbalance)
- Inactive bins for >48 hours
- Size positions based on bin concentration
- Monitor bin utilization rates
- Rebalance when price moves >30% from entry
- Consider gas costs in rebalancing decisions
-
Rate Limit Errors
Solution: Increase safety buffer or reduce concurrent requests export METEORA_SAFETY_BUFFER=0.7
-
Stale Data
Solution: Clear cache directory rm -rf ~/.meteora/cache/*
-
High Memory Usage
Solution: Reduce batch size python meteora_analyzer.py --batch-size 15
-
Missing Pool Data
Solution: Verify pool address and retry python meteora_analyzer.py --retry-failed
-
Speed Up Analysis
- Use SSD for cache directory
- Increase concurrent requests if stable
- Filter out low-TVL pools early
-
Reduce API Load
- Cache responses locally
- Use compressed data format
- Implement smart retry logic
-
Memory Efficiency
- Stream large datasets
- Clean up old cache files
- Use generator patterns
E001
: Rate limit exceededE002
: Invalid pool addressE003
: API connection failedE004
: Data parsing errorE005
: Output write failed
- DexScreener: Market data, volumes
- Meteora: Pool configs, bin data
- Jupiter: Token validation
- Solana RPC: Chain data
- DexScreener: 99.9% uptime
- Meteora API: 99.8% uptime
- Update frequency: 15s
- Data latency: ~3s
- Check releases page for latest versions
- Enable update notifications
- Review changelog before upgrading