Skip to content

We're upgrading our operations to serve you better. Orders ship as usual from Laval, QC. Questions? Contact us

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

WM_2000 Info

Whatsminer Error 2000 – No Pool Configured

no pool info configured — every pool slot is literally blank, the miner has no stratum target, hashrate stays at zero

Informational — Monitor and address as needed

Affected Models: Whatsminer M20S, M21S, M30S, M30S+, M30S++, M31S, M31S+, M32, M33, M50, M50S, M50S+, M50S++, M53, M53S, M56, M56S, M60, M60S, M60S+, M63, M63S, M66, M66S — every BTMiner-based chassis. Air-cooled, hydro, and immersion variants throw the identical 2000 because the pool-config layer is chassis-generic.

Symptoms

  • WhatsminerTool error log returns exactly `2000` — not `2010` (`all pools disabled for 2s`), `2020`/`2021`/`2022` (per-slot handshake fail), `2030` (high stale rate), or `2040` (ASICboost not supported)
  • BTMiner log shows the literal line `no pool info configured` or `pool config empty` repeating on a slow cadence (every 30-60s, not every 2s like 2010)
  • WhatsminerTool dashboard Pool Configuration page shows all three slots (Pool 0, Pool 1, Pool 2) with empty URL, empty worker, empty password — placeholder grey text only
  • `cgminer`-style API query on TCP `4028` returns three slots with empty `URL` strings or `Status: Unknown`
  • Dashboard `GHSavg` reads `0.00 GH/s` — clean zero, never climbed at all since boot — while chassis state shows `alive` and `boards: 3/3 online`
  • Hashboard temperatures sit in the cool fan-floor range (40-65 °C) because no work is being hashed
  • Fans run at chassis-floor RPM (~30-40%) and stay there — no thermal ramp because there's no thermal load
  • Pool-side dashboard (Antpool, F2Pool, ViaBTC, Braiins, Ocean, Public Pool) shows the worker as `never connected` — different from `offline` — because the worker has literally never subscribed
  • LED on the control board sits in the standard solid or slow-blink operating pattern, not the red-fault pattern — `2000` is informational, not a hardware fault
  • Recent event: brand-new miner, factory reset via the recessed button, firmware flash via WhatsminerTool, config-import from a dissimilar chassis, NVRAM corruption recovery
  • BTMiner log shows no `chip_id` failures, no `SM not found`, no `psu_fault`, no thermal codes — the rest of the chassis is clean

Step-by-Step Fix

1

Connect a laptop to the same LAN segment as the miner, open a browser, navigate to the miner's IP. WhatsminerTool's web UI loads on `http://<miner-ip>` on stock firmware. Default credentials on a fresh chassis are `admin` / `admin` — change them after first login. If you don't know the IP, scan the LAN with `nmap -sn 192.168.1.0/24` from a sibling machine, or check the router's DHCP lease list.

2

Navigate to `Configuration → Miner Configuration → Pool Configuration` (path varies slightly between BTMiner generations — on M20S/M21S it's `Network → Pool`; on M30S+ and newer, under the unified Configuration menu). Confirm all three pool slots show empty grey-placeholder text. This visual confirmation is the difference between `2000` (slots empty) and `2010` (slots filled but rejected).

3

Type a complete `Pool 0` entry: `stratum+tcp://<host>:<port>` URL, worker name in `wallet.workername` format, password (almost always literal `x`). Click `Save & Apply`, watch for the green confirmation banner. The miner does not need a reboot for the pool config to take effect on most BTMiner versions, but a reboot is safer and clears any lingering log spam.

4

Hard-refresh the Pool Configuration page (Ctrl-F5 or Cmd-Shift-R) and re-verify your URL persisted. A small subset of WhatsminerTool builds have a silent-save bug where the API accepts the form and returns success but doesn't commit to nvram. If the URL is gone after refresh, switch to the desktop WhatsminerTool app, or try a different browser with extensions disabled.

5

Pull the BTMiner log via `Status → Log` (or via SSH if enabled) and confirm `2000` is gone. A healthy log will show `mining.subscribe`, `mining.authorize`, `mining.notify` lines on a 30-60 second cadence. The `GHSavg` should climb from `0` toward nameplate within 5-15 minutes as the chip diff settles.

6

Configure all three pool slots with sensible failover. Primary in `Pool 0`, secondary in `Pool 1`, public-pool fallback (e.g. `solo.ckpool.org` or `public-pool.io`) in `Pool 2`. BTMiner iterates: `Pool 0` first, drop to `Pool 1` if handshake fails for ~60s, drop to `Pool 2` after another ~60s. Slots are independently editable — same wallet across all three with different worker labels works.

7

Use the per-pool credential format strictly. Antpool: `stratum+tcp://stratum.antpool.com:3333` with `<account>.<worker>`, password `x`. F2Pool: `stratum+tcp://btc.f2pool.com:3333` with `<f2pool-username>.<worker>`. ViaBTC: `stratum+tcp://btc.viabtc.com:3333`. Braiins: `stratum+tcp://stratum.braiins.com:3333`. Ocean: `stratum+tcp://mine.ocean.xyz:3334`. solo.ckpool: `stratum+tcp://solo.ckpool.org:3333` with `<bc1q...address>.<worker>`. Public Pool: `stratum+tcp://public-pool.io:21496`. Always verify port and host on the pool's official documentation before pasting.

8

Rotate the BTC payout address into a fresh receive address on a hardware wallet. Coldcard, BitBox02, Trezor, and Ledger all support derivation of fresh native segwit (`bc1q...`) or taproot (`bc1p...`) receive addresses. Some pools do not yet pay to taproot; check before using `bc1p...`.

9

Configure NTP time sync from `Configuration → System → Time` so the miner clock stays within 60s of UTC. BTMiner uses signed certificate stratum on a few pools (Braiins, ViaBTC), and a badly-skewed clock fails TLS validation, pushing the connection from `2000`-clean into `2020` handshake-fail territory.

10

If WhatsminerTool refuses to save pool config and reverts to empty after every save, you've hit the silent-save bug. Workarounds: switch browsers (Chrome → Firefox), disable all extensions and privacy plugins, ensure laptop and miner are on the same VLAN with no router-side proxy, and try the desktop WhatsminerTool app from `https://www.whatsminer.com/`. Last resort: SSH into the miner if enabled and edit pool config via BTMiner CLI.

11

Factory reset via the recessed button on the control board. Power off, locate the recessed reset button (adjacent to the Ethernet port on most chassis, accessed through a small hole). Hold for ≥5 seconds while powering on. The control board LED blinks fast-red during reset, then settles. Miner boots into first-boot state with a DHCP-assigned IP and empty pool config — re-discover via DHCP table or `nmap`, then re-provision.

12

Reflash the latest signed BTMiner firmware for your specific chassis model. Pull firmware from MicroBT's official portal (`https://www.whatsminer.com/`) — never from third-party mirrors, which historically have hosted re-signed botware variants. Use WhatsminerTool's built-in `Firmware Upgrade`: upload the `.bin`, watch progress, wait for post-install reboot. Flash regenerates `nvram` from bundled defaults, clearing latent corruption from prior power-loss-during-save events.

13

Inspect `nvram` via SSH if SSH is enabled. Default access: `ssh root@<miner-ip>`, password is the WhatsminerTool admin password. Once in, `cat /etc/btminer/pools.conf` (path varies by firmware) shows raw pool config. Empty file = `2000`. Truncated/malformed file = silent corruption. Recovery: `rm` the file, factory reset, re-provision. Do not edit nvram files directly without a verified clean backup of the same firmware's pools.conf.

14

If the miner has been infected with botware (signature: hijacked pool config that re-appears after every factory reset, often pointing at a `1.2.3.4` IP-only stratum host or a domain ending in `.ru`/`.cn`/`.tk`), the recovery is: factory reset, immediately reflash latest signed firmware before reconnecting to the network, change the WhatsminerTool admin password, and place the miner on a network segment that blocks outbound connections to known malware C2 hosts.

15

Replace the RTC coin cell on the control board if NTP sync repeatedly resets to `1970-01-01` after every reboot. The cell is a `CR2032` on most BTMiner control boards — visually obvious, soldered or socketed. Replace with a fresh cell, re-sync NTP, verify time persists across a cold cycle. Stale RTC isn't itself a `2000` cause but can mask other failures by bouncing TLS-validation states across reboots.

16

Stop DIY when factory reset AND full firmware reflash both fail to clear `2000` — the pool-config layer is reading from a damaged `nvram` partition the firmware can't repair from userspace. Rare, almost always paired with other latent symptoms (random reboots, IP config also failing to persist, password changes not surviving). Ship the control board (or full chassis) to D-Central with a note describing symptoms and tried fixes.

17

D-Central bench process for `2000` escalations: control-board diagnosis under load on a test fixture, raw-`nvram` inspection via JTAG / SPI flasher, partition rewrite from a verified clean image for your specific BTMiner firmware version, post-repair 24-hour burn-in at nameplate. If the `nvram` chip itself is dead (extremely rare), it's a chip-replace. Turnaround 5-10 business days, Canada-wide shipping.

18

Ship safely. Anti-static bag the control board if removed; double-box with ≥5 cm foam on every side; include a written note with: chassis model, firmware version, observed behavior (`2000` persists after factory reset and reflash), what tier of fix you reached before stopping, your contact info. The note saves bench-time, which saves you money.

When to Seek Professional Repair

If the steps above do not resolve the issue, or if you are not comfortable performing these repairs yourself, professional service is recommended. Attempting advanced repairs without proper equipment can cause further damage.

Related Error Codes

Still Having Issues?

Our team of Bitcoin Mining Hackers has been repairing ASIC miners since 2016. We have seen it all and fixed it all. Get a professional diagnosis.