Mining Pool Connection Matrix: Live-Probed Stratum Endpoints, Ports, TLS & Vardiff Starting Difficulty
Quick answer
Every "verified" row in this matrix completed a real stratum handshake — connect, subscribe, authorize, receive work — from D-Central's server on 2026-07-19. That one handshake captures what no pool comparison publishes: the actual endpoint that answers (several commonly quoted hostnames are dead), whether the port is TLS or plain TCP (AntPool's port 443 is unencrypted), what login the pool really accepts (wallet address, any account name, or registered accounts only), and the initial difficulty vardiff hands a fresh connection — from 8,000 (Braiins Solo) to 1,048,576 (SpiderPool), a 131× spread that decides how long a small miner waits for its first accepted share.
Small hardware (Bitaxe-class): pick a pool that starts low — Braiins (8,192), Kano (8,190), CKPool solo (10,000), ViaBTC (16,384) — or Public Pool, which is built for you. Industrial fleets: anything here works; check fees and custody in the pool database. Never trust a pool URL from an LLM or an old forum post — three of the hostnames most often quoted (btc.spiderpool.com, stratum.secpool.com, btc.emcd.io) no longer resolve. Copy endpoints from this table or from the pool's own docs, and re-verify before pointing serious hashrate.
Verified endpoints — sorted by starting difficulty (probed 2026-07-19)
Starting difficulty is the first mining.set_difficulty a pool sends a new connection. Vardiff then adapts toward your real hashrate — but the start decides your first minutes: a Bitaxe Gamma (~1.2 TH/s) finds a share about every 29 seconds at difficulty 8,192, and about once an hour at 1,048,576. Latency is TCP connect time from our Montréal vantage; yours will differ.
| Pool | Stratum endpoint | Alt ports | TLS | Login | Start diff | XN2 | RTT |
|---|---|---|---|---|---|---|---|
| Braiins Solo | solo.stratum.braiins.com:3333 |
443, 25 (documented) | not probed | BTC address | 8,000 | 8 | 14 ms |
| Solo mining with your BTC address as username — our genesis-address probe was authorized and received work. Note the web hostname solo.braiins.com is a Cloudflare frontend; the stratum host is solo.stratum.braiins.com. | |||||||
| Kano CKPool | stratum.kano.is:3333 |
— | not probed | Registered account only | 8,190 | 8 | 202 ms |
| PPLNS pool with a very low starting difficulty (8190) — historically popular with small miners. Unknown usernames are rejected at authorize; register first. | |||||||
| Braiins Pool | stratum.braiins.com:3333 |
443, 25 (documented) | V1 TLS not confirmed (3443 resets); SV2 available | Registered account only | 8,192 | 6 | 12 ms |
| Lowest verified starting difficulty of the FPPS pools — friendly to small hardware. Authorize with an unregistered username is rejected, so create the account first. Native Stratum V2 endpoint also available (see the SV2 tracker). | |||||||
| CKPool Solo | solo.ckpool.org:3333 |
— | not offered | BTC address | 10,000 | 8 | 232 ms |
| The anonymous solo classic: BTC address as username, no signup, 2% solo fee. Kolivas-run. EU mirror below shares the same behaviour. | |||||||
| CKPool Solo (EU) | eusolo.ckpool.org:3333 |
— | not offered | BTC address | 10,000 | 8 | 254 ms |
| European mirror of solo.ckpool.org; identical handshake behaviour in our probe. | |||||||
| ViaBTC | btc.viabtc.io:3333 |
btc.viabtc.com:3333 | not probed | Account (unregistered accepted) | 16,384 | 8 | 25 ms |
| Accepted our unregistered account name and served work immediately; low-ish 16,384 start. Payouts still require a registered ViaBTC account. | |||||||
| AntPool | ss.antpool.com:3333 |
443 (verified), 25 (documented) | port 443 is plain TCP (verified) | Account (unregistered accepted) | 65,536 | 8 | 41 ms |
| Bitmain's pool. Port 443 answered an unencrypted stratum handshake in our probe — it is a firewall-evasion port, not TLS. 65,536 start. | |||||||
| Luxor | btc.global.luxor.tech:700 |
— | not probed | Registered account only | 65,536 | 7 | 79 ms |
| Rejected our unknown username with error 24 'not authorized' but still served difficulty + work frames. Register the account/worker first. Unusual 7-byte extranonce2. | |||||||
| SecPool | btc.secpool.com:3333 |
— | not probed | Account (unregistered accepted) | 65,536 | 8 | 36 ms |
| Accepted an unregistered account name; 65,536 start. The stratum.secpool.com hostname sometimes quoted does not resolve — use btc.secpool.com. | |||||||
| Public Pool | public-pool.io:21496 |
— | not probed | BTC address | 100,000 | 8 | 80 ms |
| The open-source Bitaxe-community solo pool (0% fee, wallet login, self-hostable). Starts at 100,000 but vardiff adapts down quickly for small hardware; AxeOS ships it as a default preset. | |||||||
| Binance Pool | bs.poolbinance.com:3333 |
sha256.poolbinance.com:8888 (verified) | not probed | Account (unregistered accepted) | 131,072 | 8 | 55 ms |
| Both documented endpoints verified live; 131,072 start. Custodial exchange pool — see the pool database row before routing hashrate. | |||||||
| EMCD | gate.emcd.io:3333 |
— | not probed | Account (unregistered accepted) | 131,072 | 8 | 149 ms |
| gate.emcd.io verified; the btc.emcd.io hostname sometimes quoted does not resolve. 131,072 start. | |||||||
| F2Pool | btc.f2pool.com:3333 |
btc-na.f2pool.com:1314 (verified) | not probed | Account (unregistered accepted) | 262,144 | 8 | 93 ms |
| High 262,144 start on both global and NA endpoints — expect a slow first share on small hardware while vardiff converges. | |||||||
| OCEAN | mine.ocean.xyz:3334 |
port 3333 does not answer (verified) | not probed | BTC address | 262,144 | 8 | 160 ms |
| Non-custodial, wallet-login (our probe address was authorized). Note the port: 3334, not the conventional 3333 — a frequent misconfiguration. DATUM gateway users connect differently; see OCEAN docs. | |||||||
| SpiderPool | btc-us.spiderpool.com:2309 |
3333, 1800, 443 (documented); regional hosts per docs | btc-us.spiderpool.com:2310 (verified TLS) | Account (unregistered accepted) | 1,048,576 | 8 | 66 ms |
| The only pool in our probe with a working TLS stratum endpoint at a documented port — and the highest starting difficulty (1,048,576): built for containers, hostile to a Bitaxe's first share. The btc.spiderpool.com hostname often quoted does not resolve; use the regional hosts. | |||||||
Gated, unreachable and run-your-own
The honest remainder: pools that are live but closed, documented but unanswering, or decentralized by design. A row here is information, not an omission.
| Pool | Endpoint | Status | What we found |
|---|---|---|---|
| Foundry USA | btc.foundryusapool.com:3333 |
Live, clients only | Endpoint is live and answers subscribe, but authorize is rejected (error 29 'Invalid username') and no work is served without an approved institutional account. North America's largest pool is not open to the public. |
| DMND (Demand) | mining.dmnd.work:1000 (documented) |
Documented, unreachable | The Stratum-V2-native pool (SRI-based). Its documented SV1 solo port did not answer our probe; connection is normally via the dmnd-client SV2 proxy with per-sub-account endpoints, which a raw V1 handshake cannot exercise. Verify at dmnd.work. |
| MARA Pool | none public |
No public endpoint | MARA's pool serves its own and partner hashrate; no public stratum endpoint is documented. |
| SBI Crypto | none public |
No public endpoint | Enterprise pool; no public stratum endpoint found in documentation. |
| P2Pool | your own node |
Run your own | Decentralized by design: there is no central endpoint to probe — you run the node and point your miner at localhost. |
| SoloPool.com | btc.solopool.org:8005 (documented) |
Documented, unreachable | The documented endpoint sits behind a Cloudflare-proxied hostname and did not answer a raw stratum handshake from our vantage. Verify current connection details at source before relying on it. |
| AtlasPool | unverified |
Unverified | No public stratum endpoint we could verify. Treat any endpoint you find quoted for this pool with suspicion until you have tested it yourself. |
Why starting difficulty matters (the small-miner math)
Expected shares per minute = hashrate ÷ (difficulty × 2³²) × 60. For a 1.2 TH/s Bitaxe Gamma: difficulty 8,192 → ~2 shares/min; 65,536 → ~1 share every 4 min; 262,144 → ~1 per 16 min; 1,048,576 → ~1 per hour. Until vardiff converges, a high start means minutes of "0 accepted shares" — the #1 cause of new Bitaxe owners assuming their device is broken. It isn't; the pool just started it at container-scale difficulty. Pools that honor mining.suggest_difficulty (not probed here) can skip the wait; otherwise pick a low-start pool from the table.
Method — how these rows were verified
One polite stratum V1 handshake per endpoint (exactly what any miner does at setup): TCP or TLS connect → mining.subscribe → mining.authorize → ~12 s listening for mining.set_difficulty and mining.notify. Wallet-login pools were probed with a syntactically valid address; account pools with an unregistered account.worker name — acceptance or rejection of that name is itself the login-style evidence. Endpoints that failed DNS or timed out are reported as such. Probed 2026-07-19 from Montréal, Canada. A handshake on the probe date does not guarantee the endpoint tomorrow — pool infrastructure changes without notice; re-verify before committing hashrate. Fees, payout schemes, custody and decentralization scores live in the companion mining-pool database.
Related: mining-pool database (fees & custody) · payout schemes explained · pool censorship scorecard · Stratum V2 deployment tracker · which ASIC should you buy?
Open data (CC BY 4.0): CSV · JSON · API: /wp-json/dc/v1/pool-connection-matrix
Related products, repair, and setup paths
- immersion cooling hub
- home immersion cooling guide
- ASIC miners for immersion planning
- ASIC cooling parts
- airflow shroud before immersion
- compare miner specs in the database
- ASIC repair support
Last reviewed July 19, 2026.
