⛏️ Bitcoin Solo Mining Pool Speed Test

Test and compare 20+ Bitcoin solo mining pools worldwide. Find the fastest stratum server from your location in seconds.

View on GitHub β†’

Why Test Mining Pool Speed?

When solo mining Bitcoin, connection speed directly impacts your mining efficiency and rejected share rate. This free Python tool tests 20+ major solo mining pools worldwide, measuring both network latency and full stratum protocol handshake times. Find the optimal pool server for your location and reduce wasted work.

Latest Version 1.5 Features:
  • Test 20 preconfigured pools or any custom pool
  • TLS/SSL connection testing for secure stratum
  • Bitcoin address type verification (P2PKH, P2SH, P2WPKH, P2WSH, P2TR)
  • Multiple runs for accuracy with min-max ranges
  • JSON output for automation
  • Cross-platform: Windows, macOS, Linux

How It Works

The script performs multiple tests for each pool:

  1. PING TEST - Measures basic network latency using ICMP
  2. STRATUM HANDSHAKE - Measures complete connection time including the mining.subscribe protocol handshake (this is what your miner actually experiences)
  3. TLS CONNECTION (optional) - Tests secure stratum connections for pools that support encrypted connections

All servers are tested concurrently for fast results (~5-10 seconds total).

Requirements

  • Python 3.6 or higher (Python 3.11+ recommended for best performance)
  • No external dependencies - uses only Python standard library
  • Cross-platform: Windows, macOS, Linux, and even Android/Termux
Note: Use python3 if python is not available on your system. For TLS testing, Python 3.7+ is recommended for TLS 1.3 support.

Installation

Clone the repository from GitHub:

git clone https://github.com/mweinberg/stratum-speed-test.git
cd stratum-speed-test

Make it executable (Linux/macOS):

chmod +x stratum_test.py

Usage Examples

Quick Test (Default)

Test all 20 preconfigured pools with 1 run each (~10 seconds):

python3 stratum_test.py

TLS Connection Testing (New in v1.3)

Test secure TLS stratum connections for pools that support it:

python stratum_test.py -t
python stratum_test.py --tls

Shows TLS response times in an additional column. Supports AtlasPool.io, Public Pool, SoloMining.de, and Noderunners.

Address Type Verification (New in v1.1)

Test which Bitcoin address types each pool supports:

python stratum_test.py -v
python stratum_test.py --verify

Tests all 5 address types: P2PKH, P2SH, P2WPKH (SegWit), P2WSH, and P2TR (Taproot).

Multiple Runs for Accuracy

Run multiple tests per server and get average with min-max range:

python stratum_test.py --runs 3
python stratum_test.py --runs 3 -v  # With address verification

Test a Specific Pool

Test a single pool server (both hostname and port required):

python stratum_test.py solo.atlaspool.io 3333
python stratum_test.py solo.ckpool.org 3333 --runs 3
python stratum_test.py public-pool.io 3333 -t  # With TLS

JSON Output for Automation

Get machine-readable output:

python stratum_test.py --json
python stratum_test.py --runs 3 --json > results.json

Example Output

Here's a recent test run showing real-world performance from a US location:

================================================================================
BITCOIN SOLO MINING POOL SPEED TEST
================================================================================

Testing from: United States
Your IP: 203.0.113.42

Testing 20 servers (runs: 1)...
  Progress: 20/20

Results:
+------------------+--------+--------------------------+-------+-----------+--------------+
| Pool Name        | CC     | Host                     | Port  | Ping (ms) | Stratum (ms) |
+------------------+--------+--------------------------+-------+-----------+--------------+
| AtlasPool.io     | *MANY* | solo.atlaspool.io        | 3333  | 9         | 26           |
| US SoloHash      | US     | solo-ca.solohash.co.uk   | 3333  | 18        | 48           |
| Public Pool      | US     | public-pool.io           | 3333  | 44        | 90           |
| KanoPool         | US     | stratum.kano.is          | 3333  | 64        | 137          |
| solo.cat         | US     | solo.cat                 | 3333  | 65        | 141          |
| US CKPool        | US     | solo.ckpool.org          | 3333  | 72        | 155          |
| UK SoloHash      | UK     | solo.solohash.co.uk      | 3333  | 80        | 159          |
| EU CKPool        | DE     | eusolo.ckpool.org        | 3333  | 95        | 188          |
| Parasite Pool    | US     | parasite.wtf             | 42069 | 98        | 189          |
| Satoshi Radio    | NL     | pool.satoshiradio.nl     | 3333  | 101       | 277          |
| Noderunners      | DE     | pool.noderunners.network | 1337  | 103       | 281          |
| Braiins Solo     | DE     | solo.stratum.braiins.com | 3333  | 94        | 286          |
| SoloMining.de    | DE     | pool.solomining.de       | 3333  | 98        | 292          |
| Sunnydecree Pool | DE     | pool.sunnydecree.de      | 3333  | 94        | 292          |
| Nerdminer.de     | DE     | pool.nerdminer.de        | 3333  | 93        | 294          |
| DE SoloHash      | DE     | solo-de.solohash.co.uk   | 3333  | 104       | 297          |
| FindMyBlock      | FR     | eu.findmyblock.xyz       | 3335  | 108       | 298          |
| KanoPool DE      | DE     | de.kano.is               | 3333  | 95        | 421          |
| Blitzpool        | CH     | blitzpool.yourdevice.ch  | 3333  | 203       | 447          |
| AU CKPool        | AU     | ausolo.ckpool.org        | 3333  | 400       | 745          |
+------------------+--------+--------------------------+-------+-----------+--------------+

Summary:
------------------------------------------------------------
Fastest Ping:    AtlasPool.io (9 ms)
Fastest Stratum: AtlasPool.io (26 ms)

RECOMMENDATION: Consider using AtlasPool.io (solo.atlaspool.io:3333)
                for optimal mining performance from your location.

Key Insight: The Stratum (ms) column is what matters most - it shows the actual connection time your mining hardware experiences. In this test, AtlasPool.io was 2.9x faster than the second-fastest pool.

20 Preconfigured Mining Pools

The script includes 20 popular Bitcoin solo mining pools worldwide. Test them all in ~10 seconds or add your own custom pool.

🌍 Global/Anycast

  • β€’ AtlasPool.io - Global edge network (TLS supported)

πŸ‡ΊπŸ‡Έ United States

  • β€’ US CKPool
  • β€’ US SoloHash
  • β€’ KanoPool
  • β€’ Public Pool (TLS supported)
  • β€’ solo.cat
  • β€’ Parasite Pool

πŸ‡©πŸ‡ͺ Germany

  • β€’ EU CKPool
  • β€’ DE SoloHash
  • β€’ SoloMining.de (TLS supported)
  • β€’ Braiins Solo
  • β€’ Noderunners (TLS supported)
  • β€’ Sunnydecree Pool
  • β€’ Nerdminer.de
  • β€’ KanoPool DE

πŸ‡¬πŸ‡§ UK / πŸ‡³πŸ‡± NL / πŸ‡«πŸ‡· FR

  • β€’ UK SoloHash
  • β€’ Satoshi Radio (NL)
  • β€’ FindMyBlock (FR)

πŸ‡¨πŸ‡­ CH / πŸ‡¦πŸ‡Ί AU

  • β€’ Blitzpool (Switzerland)
  • β€’ AU CKPool (Australia)
Note: This list is not exhaustive. You can test any pool by providing hostname and port as arguments. See the GitHub README for the complete list and how to add custom pools.

Understanding the Results

Status Messages

  • Number (e.g., 52) - Response time in milliseconds
  • BLOCKED - Ping failed but stratum succeeded (ICMP blocked by firewall - this is normal)
  • N/A - Connection failed or timed out (server unreachable or down)

Which Metric Matters?

Stratum (ms) is the most important metric - this is the actual time your mining hardware experiences when connecting to the pool. Lower is better.

Ping (ms) shows basic network latency. If ping shows "BLOCKED" but stratum works, the pool is still usable (some pools block ICMP for security).

Recommendations

The script recommends all pools within 3ms of the fastest stratum time. If multiple pools are recommended, they all offer similar performance from your location.

Tips for Best Results

  1. Run from your mining network - Test from the same network connection your miners use
  2. Run multiple times - Use --runs 3 for more accurate results
  3. Test at different times - Network conditions vary throughout the day
  4. Consider geographic location - Pools closer to you typically have lower latency
  5. VPN affects results - Location detection is based on IP geolocation

Additional Tools

Pool Verification Tool (verify_pool.py)

Verify that a solo mining pool will actually pay block rewards to YOUR address:

# Verify a specific address
python3 verify_pool.py solo.atlaspool.io 3333 bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh

# Test all 5 address types
python3 verify_pool.py solo.atlaspool.io 3333 -a

What it does: Connects to the pool, requests a block template, parses the coinbase transaction, and verifies YOUR address appears in the payout outputs. Helps ensure you're using a legitimate pool that will pay you if you find a block.

For more information: Visit the GitHub repository for full documentation, troubleshooting tips, and the latest updates.