Mining/docs/QUICK-REFERENCE.md
snider 8460b8f3be feat: Add multi-miner dashboard support and TT-Miner implementation
Dashboard:
- Add aggregate stats across all running miners (total hashrate, shares)
- Add workers table with per-miner stats, efficiency, and controls
- Show hashrate bars and efficiency badges for each worker
- Support stopping individual workers or all at once

TT-Miner:
- Implement Install, Start, GetStats, CheckInstallation, Uninstall
- Add TT-Miner to Manager's StartMiner and ListAvailableMiners
- Support GPU-specific config options (devices, intensity, cliArgs)

Chart:
- Improve styling with WA-Pro theme variables
- Add hashrate unit formatting (H/s, kH/s, MH/s)
- Better tooltip and axis styling

Also:
- Fix XMRig download URLs (linux-static-x64, windows-x64)
- Add Playwright E2E testing infrastructure
- Add XMR pool research documentation

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-27 22:48:20 +00:00

7.9 KiB

XMR Pool Database - Quick Reference

tl;dr: Copy xmr-pools-database.json to your app, use it to populate pool selection UI, generate connection strings automatically.


Top 5 Pools to Recommend

Pool URL Port Fee Min Payout Notes
SupportXMR pool.supportxmr.com 3333 0.6% 0.003 Best overall, no registration
P2Pool p2pool.io 3333 0% 0.0 Decentralized, instant payouts
Nanopool xmr-eu1.nanopool.org 14433 1.0% 0.003 Global network, mobile app
Moneroocean gulf.moneroocean.stream 10128 1.0% 0.003 Multi-algo, auto-switching
WoolyPooly xmr.woolypooly.com 3333 0.5% 0.003 Good fees, merged mining

Connection Details Formula

For any pool from the database:

URL: stratum+tcp://[HOSTNAME]:[PORT]
Username: [WALLET_ADDRESS].[WORKER_NAME]
Password: x

Example:

URL: stratum+tcp://pool.supportxmr.com:3333
Username: 4ABC1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890AB.miner1
Password: x

Standard Port Mapping

Use this for any pool following standard conventions:

3333 = Standard (auto difficulty)    → Try this first
4444 = Medium difficulty
5555 = High difficulty              → Use for powerful miners
6666 = Very high difficulty

Add "4" to port for TLS:
3334 = Standard over TLS (encrypted)
4445 = Medium over TLS
5556 = High over TLS

Quick Code Snippets

TypeScript: Load & Use Pool Database

import pools from './xmr-pools-database.json';

// Get a specific pool
const supportxmr = pools.pools.find(p => p.id === 'supportxmr');

// Generate connection string
const url = `${supportxmr.stratum_servers[0].ports[0].protocol}://${supportxmr.stratum_servers[0].hostname}:${supportxmr.stratum_servers[0].ports[0].port}`;
const username = `${walletAddress}.miner1`;
const password = supportxmr.authentication.password_default;

console.log(`URL: ${url}`);
console.log(`Username: ${username}`);
console.log(`Password: ${password}`);

React: Pool Selector Component

<select onChange={(e) => setPoolId(e.target.value)}>
  {pools.recommended_pools.beginners.map(poolId => {
    const pool = pools.pools.find(p => p.id === poolId);
    return (
      <option key={poolId} value={poolId}>
        {pool.name} - {pool.fee_percent}% fee
      </option>
    );
  })}
</select>

Go: Load Pool Database

import "encoding/json"
import "io/ioutil"

var pools PoolDatabase
data, _ := ioutil.ReadFile("xmr-pools-database.json")
json.Unmarshal(data, &pools)

pool := pools.GetPool("supportxmr")
config := GenerateConnectionConfig(pool, walletAddr, "miner1", false, "standard")

Connection Testing Checklist

Before recommending a pool:

  • Test TCP connection: telnet pool.hostname 3333
  • Verify wallet address format (95 chars, starts with 4 or 8)
  • Check pool website is online
  • Confirm fee information matches database
  • Test connection with mining software
  • Verify shares are accepted

Wallet Address Validation

XMR addresses must be:

  • 95 characters long
  • Start with 4 (mainnet) or 8 (stagenet)
  • Contain only Base58 characters (no 0, O, I, l)
function isValidXMRAddress(addr: string): boolean {
  return /^[48][1-9A-HJ-NP-Za-km-z]{94}$/.test(addr);
}

Beginners (easiest setup):

  1. SupportXMR - No registration, great UI
  2. Nanopool - Mobile app, multiple regions
  3. WoolyPooly - Low fees, simple interface

Advanced Users (best performance):

  1. P2Pool - Zero fees, privacy-focused
  2. Moneroocean - Multi-algo flexibility
  3. SupportXMR - Open source, transparent

Solo Miners (small variance):

  1. P2Pool - True solo mining capability
  2. SupportXMR - Dedicated solo mode
  3. Nanopool - Solo option available

Privacy-Focused:

  1. P2Pool - Decentralized, no tracking
  2. SupportXMR - No registration required
  3. Moneroocean - Doesn't require personal info

Fee Comparison

Pool Fee Type Recommendation
P2Pool 0% Decentralized Best for experienced miners
WoolyPooly 0.5% Commercial Best value
SupportXMR 0.6% Community Best for beginners
Moneroash 0.6% Commercial Good alternative
Moneroocean 1.0% Commercial Multi-algo option
Nanopool 1.0% Commercial Global coverage
HashVault 0.9% Commercial Reliable backup

Earnings impact at 100 H/s:

  • 0.5% pool = slightly higher earnings
  • 1.0% pool = ~0.5% less than best
  • Difference negligible for small miners

Regional Server Selection

Europe: Use EU servers

  • Nanopool: xmr-eu1.nanopool.org
  • Moneroocean: eu.moneroocean.stream

United States: Use US servers

  • Nanopool: xmr-us-east1.nanopool.org or xmr-us-west1.nanopool.org
  • Moneroocean: gulf.moneroocean.stream

Asia: Use Asia servers

  • Nanopool: xmr-asia1.nanopool.org
  • Moneroocean: asia.moneroocean.stream

General: Use closest region to minimize latency


Troubleshooting Quick Fixes

Problem Solution
Connection refused Try TLS port (add 1 to normal port)
Shares rejected Verify wallet address format
High stale shares Switch to closer regional server
Pool offline Check website, switch to backup pool
Very slow payouts Check minimum payout threshold
Lost connection Increase socket timeout value
Wrong difficulty Try different difficulty port

One-Click Connection Strings

Just copy & paste these (replace WALLET_ADDRESS):

SupportXMR:
  stratum+tcp://pool.supportxmr.com:3333
  WALLET_ADDRESS.worker1
  x

Nanopool (EU):
  stratum+tcp://xmr-eu1.nanopool.org:14433
  WALLET_ADDRESS.worker1
  x

Moneroocean:
  stratum+tcp://gulf.moneroocean.stream:10128
  WALLET_ADDRESS.worker1
  x

P2Pool:
  stratum+tcp://p2pool.io:3333
  WALLET_ADDRESS.worker1
  (no password)

WoolyPooly:
  stratum+tcp://xmr.woolypooly.com:3333
  WALLET_ADDRESS.worker1
  x

Database File Locations

/home/snider/GolandProjects/Mining/docs/
├── xmr-pools-database.json      ← Use this in your app
├── pool-research.md              ← Full details & methodology
├── pool-integration-guide.md     ← Code examples (TypeScript/Go)
├── POOL-RESEARCH-README.md       ← Implementation guide
├── RESEARCH-SUMMARY.txt          ← Executive summary
└── QUICK-REFERENCE.md            ← This file

Next Steps (5 Minutes)

  1. Copy xmr-pools-database.json to your project
  2. Create dropdown with top 5 pools
  3. Generate connection string on selection
  4. Show connection details to user
  5. Done! Test with mining software

One-Page Cheat Sheet

For UI Developers:

  • Load xmr-pools-database.json
  • Display pools[].name in dropdown
  • On select, call PoolConnector.generateConnectionConfig()
  • Show URL, username, password to user
  • Save selection to localStorage

For Backend Developers:

  • Load pool database on startup
  • Expose /api/pools endpoint
  • Implement connection testing
  • Return working pools in response
  • Update database monthly

For DevOps:

  • Set up weekly pool validation
  • Monitor pool uptime
  • Alert if primary pool down
  • Update last_verified timestamp
  • Track historical changes

Why This Matters

Without this database:

  • Setup takes 30 minutes per pool
  • High chance of connection errors
  • Need manual updates when pools change
  • Scale to 100 coins = 3000+ hours

With this database:

  • Setup takes 5 minutes per pool
  • Automatic validation and testing
  • Updates in one place for entire app
  • Scale to 100 coins = Easy!

Support

  • Full Details: See pool-research.md
  • Code Examples: See pool-integration-guide.md
  • Troubleshooting: See RESEARCH-SUMMARY.txt
  • Implementation Plan: See POOL-RESEARCH-README.md

Last Updated: December 27, 2025 Version: 1.0.0 Status: Ready for production