Skip to content

Bitcoin accepted at checkout  |  Ships from Laval, QC, Canada  |  Expert support since 2016

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.

PoolStratum endpointAlt portsTLSLoginStart diffXN2RTT
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.

PoolEndpointStatusWhat 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.subscribemining.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