Dev scaffold: this instance runs BTC testnet4 for pipeline testing, not eCash (ECX). Use a testnet4 tb1… address as the username while the scaffold is live. Real ECX pool with bc1… addresses launches at Full Release on 2026-10-31.
solofork logo solofork

Connect a miner

Point any SHA-256d ASIC at solofork in a couple of minutes. This page covers the stratum details, address requirements, difficulty, firmware compatibility, per-model examples, and what to do when a share won't submit.

Quick start

URL:       stratum+tcp://stratum.solofork.com:3333
Username:  <your bc1… ECX address>
Password:  x

That's it. Solo mining means the full coinbase — minus a 2% donation output to the operator — pays directly to the address you supply. There is no signup, no per-worker password, and no account state on our side.

Confirm the pool is reachable from the miner's network:

nc -vz stratum.solofork.com 3333

You should see Connection to stratum.solofork.com … succeeded. If the miner is behind a firewall that only allows outbound 443, the pool is not reachable — open outbound TCP 3333 to stratum.solofork.com.

Address requirements

Every share you submit encodes this address as the coinbase output beneficiary. Use an address whose private key you actually hold. Do not use an exchange deposit address — most exchanges do not credit coinbase outputs, and you cannot rotate the address after a block is found.

Replay-protection warning: Pre-fork BTC UTXOs are replayable between BTC and ECX unless split first. Coinbase mining rewards from this pool are single-chain-safe by construction — they only exist on the chain that mined them, so pool payouts don't need splitting. If you plan to spend a pre-fork BTC balance on either side, split it first.

Choosing difficulty

The pool runs vardiff by default. Vardiff observes your submit rate for a couple of minutes and settles on a share difficulty that keeps you submitting roughly one share every 15–30 seconds. You do not need to configure anything for this to work.

Set a fixed difficulty only if:

Append +d to the URL to request a starting difficulty:

stratum+tcp://stratum.solofork.com:3333+d1024

Vardiff then adapts up from there. Valid range is +d1 to +d1000000.

Firmware compatibility

FirmwareStatusNotes
Stock AntminerWorksAll Bitmain L-series and S-series firmware from 2019 onward.
cgminerWorksReference implementation. Handles vardiff and rapid difficulty changes cleanly.
vnishWorksReports accepted shares within seconds; no known interop issues.
LuxOSWorksStandard Stratum V1; behaves like cgminer.
BraiinsOS / bosminerIncompatible during phase-activation windowsPanics on low network difficulty (diff below ~1000). Use cgminer, vnish, LuxOS, or stock firmware for the first 24 hours of each phase.

If a firmware you use is not listed, it almost certainly works — Stratum V1 has been stable for a decade. Report incompatibilities to [email protected] and we will add them here.

Per-model setup

Antminer S19 / S19j Pro / S19 XP

Web UI → Miner Configuration. Fill Pool 1:

Leave Pool 2 and Pool 3 pointed at your backup pool for failover. Save & Apply. The miner reboots into the new config.

Antminer S21 / S21 Pro

Same procedure as S19. Firmware ≥ Bitmain 1.0.11 is confirmed working with vardiff.

Whatsminer M30S / M50 / M60

Web UI → Miner Config. The Whatsminer UI accepts the stratum URL with or without stratum+tcp:// — either form is fine. Password field is required; use x.

Bitaxe / Nerdminer / small hobby miners

These have too little hashrate to submit valid shares at vardiff defaults on a global pool. Force a small fixed diff:

stratum+tcp://stratum.solofork.com:3333+d64

Expect a share every few minutes. The pool logs your submits and counts them toward your address's stats even though you are unlikely to find a block.

Personalize your coinbase

If this pool finds a block under your address, its coinbase transaction can carry a short OP_RETURN message you chose. Authorize the message once with a BIP-322 signature from your address's private key — no accounts, no email. Message text stays until you re-register or the expiry passes.

Register a coinbase message →

Multiple rigs on one address

Append .workername to the username to distinguish rigs under the same payout address:

Username:  bc1qYourAddress.rig-basement
Username:  bc1qYourAddress.rig-attic
Username:  bc1qYourAddress.s21-farm-north

Each name shows up as a separate row on /user/<addr> and gets its own hashrate chart at /user/<addr>/worker/<name>. Worker names are public — anyone with your address can see them — so avoid labels that identify a physical location if you care about that.

Monitoring

Use the address-lookup search on the landing or /stats page as a fast entry point — it just redirects to /user/<addr>.

Troubleshooting

Miner shows "connecting" indefinitely

Outbound TCP 3333 is blocked or the DNS lookup is failing. Verify with nc -vz stratum.solofork.com 3333 from the same network as the miner. If nc succeeds but the miner still hangs, the miner's firmware is probably resolving DNS through its own resolver rather than the LAN default — set an explicit IP (dig +short stratum.solofork.com) as a test.

Shares submitted but "rejected"

Most common causes:

Ping to pool is fine but hashrate on /user shows zero

The pool reports hashrate from accepted shares over 1-minute / 1-hour / 1-day windows. If your miner just connected, the 1m number populates within ~90s; 1h needs an hour. Empty means either no accepted shares have landed yet or every share is being rejected — check /stats for the rejected-share counter under Pool.

What happens during a phase activation

Each phase (Alpha → Beta → Full Release) begins at network difficulty 1.0 and retargets rapidly. The pool remains online, but expect: a burst of stale shares while the tip changes fast; heavy orphan rates on any blocks you find in the first hour; a difficulty rise of up to 4× per epoch. See the phase table on the landing for dates and block heights.

Fee, custody, contact