Files
mev-beta/PRODUCTION_DEPLOYMENT_GUIDE.md
Administrator 0788bd0b93 feat(safety): add comprehensive production safety documentation
- Created .env.production.safe with all safety settings
  - Conservative profit thresholds (0.05 ETH min)
  - Strict risk limits (1 ETH max position, 10 ETH daily)
  - Circuit breaker configuration
  - Emergency stop mechanisms
  - Dry-run mode for testing

- Created PRODUCTION_DEPLOYMENT_GUIDE.md (20+ pages)
  - 4-phase deployment sequence (dry-run → testnet → micro-test → scale-up)
  - Safety mechanisms documentation
  - Monitoring requirements
  - Infrastructure requirements
  - Troubleshooting guide
  - Legal/compliance warnings

- Created SAFETY_CHECKLIST.md (quick reference)
  - Pre-deployment checklist
  - Daily/weekly monitoring tasks
  - Emergency procedures
  - Capital scale-up guidelines
  - Red flags and stop criteria

Safety Features:
 Dry-run mode (simulation only)
 Circuit breaker (3 consecutive losses / hourly loss limits)
 Emergency stop file-based kill switch
 Position size limits
 Daily volume limits
 Slippage protection (1% max)
 Gas price limits (50 gwei max)
 Rate limiting (max trades per hour)

Production Status: TESTING PHASE - Safe for small-scale testing only

Next Steps:
1. Follow deployment guide Phase 1 (dry-run for 24+ hours)
2. Validate profit calculations
3. Test circuit breaker
4. Test on testnet before mainnet

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-10 22:58:14 +01:00

13 KiB

MEV Bot V2 - Production Deployment Safety Guide

STATUS: ⚠️ PRE-PRODUCTION - NOT SAFE FOR LARGE CAPITAL YET


🚨 CRITICAL: Read This First

DO NOT deploy to production with significant capital until:

  1. All safety mechanisms are tested
  2. Profit calculations validated with known scenarios
  3. 24+ hours of dry-run monitoring completed
  4. Emergency stop tested and working
  5. Monitoring/alerting configured and tested

Current Status: Bot is in TESTING phase. Suitable for small-scale testing only.


Safety-First Deployment Sequence

Phase 1: Dry-Run Validation (Days 1-3)

Objective: Validate detection without risking capital

Configuration:

DRY_RUN_MODE=true
ENABLE_EXECUTION=false
ENABLE_SIMULATION=true
MIN_PROFIT_WEI=50000000000000000  # 0.05 ETH - conservative

Actions:

  1. Deploy with .env.production.safe configuration
  2. Monitor logs for 24+ hours continuously
  3. Verify opportunities are detected correctly
  4. Check profit calculations match expected values
  5. Ensure no false positives

Success Criteria:

  • Bot runs stable for 24+ hours
  • No crashes or errors
  • Profit calculations look reasonable
  • Pool data updates correctly

DO NOT PROCEED if success criteria not met.


Phase 2: Testnet Validation (Days 4-7)

Objective: Test execution logic without real money

Configuration:

# Use Arbitrum Sepolia/Goerli testnet
CHAIN_ID=421614  # Arbitrum Sepolia
RPC_URL=https://sepolia-rollup.arbitrum.io/rpc
ENABLE_EXECUTION=true
MAX_POSITION_SIZE=100000000000000000  # 0.1 ETH testnet funds

Actions:

  1. Get testnet ETH from faucet
  2. Deploy on testnet
  3. Execute actual transactions
  4. Monitor profit/loss carefully
  5. Test circuit breaker triggers
  6. Test emergency stop

Success Criteria:

  • Transactions execute successfully
  • Profit calculations accurate (compare pre/post trade)
  • Circuit breaker stops trading after losses
  • Emergency stop works immediately
  • No unexpected behavior

DO NOT PROCEED to mainnet if any failures.


Phase 3: Mainnet Micro-Testing (Days 8-14)

Objective: Validate on mainnet with minimal capital

Configuration:

# Mainnet with strict safety limits
CHAIN_ID=42161
RPC_URL=https://arb-mainnet.g.alchemy.com/v2/YOUR_KEY  # Archive RPC required!
ENABLE_EXECUTION=true
MAX_POSITION_SIZE=100000000000000000  # 0.1 ETH - TINY positions
MAX_DAILY_VOLUME=500000000000000000   # 0.5 ETH daily max
MAX_TRADES_PER_HOUR=5                 # Rate limit

Capital Required: 0.5-1 ETH (amount you're willing to lose)

Actions:

  1. Fund wallet with SMALL amount only
  2. Enable execution with strict limits
  3. Monitor CONTINUOUSLY for first 24 hours
  4. Track every trade manually
  5. Calculate actual profit/loss
  6. Verify gas costs match predictions

Success Criteria:

  • Net profitable over 7 days (including gas)
  • No unexpected losses
  • Circuit breaker triggers appropriately
  • Monitoring/alerts working

IF UNPROFITABLE: Stop immediately, debug issues


Phase 4: Gradual Scale-Up (Weeks 3-8)

Objective: Slowly increase capital if consistently profitable

Only if Phase 3 was net profitable:

Week Max Position Max Daily Volume Notes
3 0.25 ETH 1 ETH Still testing
4 0.5 ETH 2 ETH Monitor closely
5 1 ETH 5 ETH If profitable, continue
6 2 ETH 10 ETH Standard operation
7-8 3-5 ETH 20 ETH Mature operation

Rules:

  • If ANY week is unprofitable, revert to previous week's limits
  • Track ROI weekly - stop if declining
  • Monitor gas costs - stop if eating profits

🛡️ Safety Mechanisms

1. Circuit Breaker

Triggers:

  • 3 consecutive losing trades
  • Hourly loss > 0.1 ETH
  • Daily loss > 0.5 ETH

Action: Immediately stop trading for 1 hour cooldown

Testing:

# Manually trigger by creating test scenario
# Verify bot stops and doesn't restart automatically

2. Emergency Stop

File-based kill switch:

# Create this file to stop bot immediately
touch /tmp/mev-bot-emergency-stop

# Bot checks this file every 10 seconds
# Gracefully stops all operations

Testing:

# While bot running in testnet:
touch /tmp/mev-bot-emergency-stop
# Bot should log "Emergency stop detected" and exit within 10s

3. Position Size Limits

Prevents large losses from single trade:

  • MAX_POSITION_SIZE enforced before execution
  • MAX_DAILY_VOLUME enforced cumulatively
  • Transactions rejected if limits exceeded

4. Slippage Protection

Prevents sandwich attacks and price manipulation:

  • MAX_SLIPPAGE_BPS: 100 (1%) - very strict
  • Simulation runs before every trade
  • Trade rejected if simulated output < expected

5. Gas Price Limits

Prevents overpaying during network congestion:

  • MAX_GAS_PRICE_GWEI: 50 gwei
  • Transactions rejected if gas price higher
  • Use GAS_PRICE_STRATEGY=safe for lower gas

📊 Monitoring Requirements

Essential Metrics to Track

1. Profitability Metrics

  • Gross profit per trade
  • Net profit after gas
  • ROI percentage
  • Win rate (profitable trades / total trades)

2. Execution Metrics

  • Trade execution latency
  • Gas costs per trade
  • Failed transactions
  • Successful vs failed trade ratio

3. Safety Metrics

  • Circuit breaker triggers
  • Emergency stops
  • Position size violations
  • Daily volume tracking

4. System Health

  • RPC connection status
  • WebSocket connection status
  • Pool cache size
  • Memory/CPU usage

Monitoring Tools

Prometheus + Grafana (included in repo):

docker-compose up -d prometheus grafana
# Access Grafana at http://localhost:3000

Log Monitoring:

# Tail logs in real-time
docker logs -f mev-bot-v2

# Filter for profits
docker logs mev-bot-v2 | grep "profit"

# Filter for errors
docker logs mev-bot-v2 | grep "ERROR\|WARN"

Alerting (recommended):

  • Set up Slack/Discord/Telegram webhook
  • Alert on circuit breaker triggers
  • Alert on large losses (> 0.05 ETH)
  • Alert on system errors

🔧 Production Infrastructure

Required Infrastructure

1. Archive RPC Provider (CRITICAL)

  • Public RPC insufficient
  • Use: Alchemy, QuickNode, or Infura
  • Cost: ~$200-500/month for archive access
  • Required for pool discovery and state queries

2. Private RPC (Recommended)

  • Reduces MEV risk on transaction submission
  • Flashbots Protect or private mempool
  • Cost: Free (Flashbots) or ~$100/month

3. Dedicated Server

  • Minimum: 4 CPU cores, 8GB RAM
  • Recommended: 8 CPU cores, 16GB RAM
  • Low latency network connection to RPC
  • Uptime: 99.9%+

4. Monitoring Stack

  • Prometheus for metrics
  • Grafana for visualization
  • Alerting service (PagerDuty, Slack, etc.)

⚠️ Known Limitations & Risks

Technical Limitations

  1. WebSocket Sequencer Connection

    • Status: Not fully stable on Anvil fork
    • Impact: May miss some pending transactions
    • Mitigation: Test on live testnet/mainnet
  2. Pool Discovery

    • Currently uses hardcoded pools for testing
    • Production needs archive RPC for discovery
    • May miss new pools initially
  3. Gas Estimation

    • Estimates may be inaccurate under high load
    • May overpay or fail transactions
    • Needs more testing
  4. Profit Calculations

    • Not validated against known scenarios yet
    • Risk of calculation errors
    • MUST test extensively before large capital

Market Risks

  1. Competition

    • Other MEV bots may front-run
    • Profits may be lower than expected
    • Need low latency connection
  2. Gas Price Volatility

    • Network congestion can spike gas
    • May eat into profits
    • Circuit breaker helps limit damage
  3. Smart Contract Risks

    • DEX contracts could have bugs
    • Pools could be manipulated
    • Use whitelisted pools only initially
  4. Slippage & Sandwich Attacks

    • Larger trades more susceptible
    • Strict slippage limits help
    • Consider splitting large trades

📋 Pre-Deployment Checklist

Infrastructure

  • Archive RPC provider configured and tested
  • Private RPC configured (optional but recommended)
  • Server meets minimum specs
  • Monitoring stack deployed (Prometheus + Grafana)
  • Alerting configured and tested
  • Backup wallet key secured (hardware wallet recommended)

Configuration

  • .env.production.safe reviewed and customized
  • All safety limits set conservatively
  • DRY_RUN_MODE=true initially
  • ENABLE_EXECUTION=false initially
  • Gas limits appropriate
  • Slippage tolerance conservative

Testing

  • Dry-run completed (24+ hours)
  • Profit calculations validated
  • Circuit breaker tested
  • Emergency stop tested
  • Testnet deployment successful
  • Manual trades verified profitable

Monitoring

  • Grafana dashboards configured
  • Alerts set up for losses
  • Alerts set up for circuit breaker
  • Alerts set up for system errors
  • Log rotation configured
  • Backup/restore tested

Safety

  • Emergency stop file path configured
  • Circuit breaker thresholds set
  • Position limits conservative
  • Daily volume limits set
  • Gas price limits set
  • Whitelist/blacklist configured (if needed)

🚀 Deployment Commands

Step 1: Build Docker Image

docker build -t mev-bot-v2:production .

Step 2: Configure Environment

# Copy safe configuration
cp .env.production.safe .env.production

# Edit with your keys and RPC endpoints
nano .env.production

# CRITICAL: Verify DRY_RUN_MODE=true for first deployment
grep DRY_RUN_MODE .env.production

Step 3: Deploy with Docker

# Start in dry-run mode
docker run -d \
  --name mev-bot-v2-production \
  --restart unless-stopped \
  --env-file .env.production \
  -v $(pwd)/logs:/app/logs \
  -p 9090:9090 \
  mev-bot-v2:production

# Monitor logs in real-time
docker logs -f mev-bot-v2-production

Step 4: Monitor & Validate

# Check status
docker ps | grep mev-bot

# View metrics
curl http://localhost:9090/metrics

# Check for errors
docker logs mev-bot-v2-production | grep ERROR | tail -50

# Monitor circuit breaker status
docker logs mev-bot-v2-production | grep "circuit_breaker"

Step 5: Emergency Stop (if needed)

# Method 1: File-based stop
docker exec mev-bot-v2-production touch /tmp/mev-bot-emergency-stop

# Method 2: Graceful stop
docker stop mev-bot-v2-production

# Method 3: Immediate stop
docker kill mev-bot-v2-production

📞 Support & Troubleshooting

Common Issues

Issue: Bot not finding opportunities

  • Check RPC connection is working
  • Verify pool discovery running
  • Check MIN_PROFIT_WEI isn't too high
  • Review MIN_POOL_LIQUIDITY setting

Issue: High gas costs eating profits

  • Lower MAX_GAS_PRICE_GWEI
  • Use GAS_PRICE_STRATEGY=safe
  • Increase MIN_PROFIT_WEI threshold

Issue: Circuit breaker triggering frequently

  • Review trade profitability
  • Check profit calculations
  • Verify gas estimation accurate
  • May need to adjust MIN_PROFIT_WEI higher

Issue: Missing transactions

  • Check WebSocket connection stable
  • Verify archive RPC working
  • Review worker count settings
  • Check buffer size adequate

Logs to Check

# All errors
docker logs mev-bot-v2-production 2>&1 | grep "ERROR"

# Profitable trades
docker logs mev-bot-v2-production | grep "profit.*ETH"

# Circuit breaker events
docker logs mev-bot-v2-production | grep "circuit_breaker"

# RPC issues
docker logs mev-bot-v2-production | grep "RPC\|connection"

DISCLAIMER:

  • MEV trading may be considered front-running in some jurisdictions
  • Ensure compliance with local regulations
  • This software is provided AS-IS with no warranties
  • Use at your own risk
  • Author not responsible for losses

Recommendations:

  • Consult legal counsel before deployment
  • Understand local securities/trading laws
  • Consider tax implications of trading
  • Maintain detailed trade records

📝 Post-Deployment Monitoring

Daily Checks (First Week)

  • Review all trades from last 24 hours
  • Calculate net profit/loss (including gas)
  • Check circuit breaker events
  • Review error logs
  • Verify RPC connection stable
  • Check wallet balance

Weekly Checks (Ongoing)

  • Calculate weekly ROI
  • Review most/least profitable pools
  • Analyze gas cost trends
  • Review system resource usage
  • Update pool blacklist if needed
  • Adjust parameters based on performance

Monthly Reviews

  • Comprehensive profit/loss analysis
  • Compare to market conditions
  • Review and update safety limits
  • Update dependencies/security patches
  • Backup configuration and logs
  • Review and optimize strategies

🎯 Success Criteria

Minimum viable production deployment:

  • Profitable for 7+ consecutive days
  • ROI > 5% after gas costs
  • Win rate > 60%
  • No circuit breaker triggers from bugs
  • Emergency stop tested and working
  • Monitoring functional and alerting

Ready for capital scale-up:

  • Profitable for 30+ days
  • ROI > 10% monthly
  • Win rate > 70%
  • All safety mechanisms tested
  • No unexpected losses
  • Stable system performance

Last Updated: 2025-11-10 Version: 1.0.0-rc1 Status: Pre-Production