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

mining.authorize failed Warning

Bitaxe – Stratum mining.authorize Failed / Wrong Worker Name

Pool rejects the Bitaxe at the Stratum `mining.authorize` step — the login handshake. Almost always a config-field error (Stratum User field is not a valid on-chain BTC address, URL contains a protocol prefix, or worker-suffix format is rejected by the pool).

Warning — Should be addressed soon

Affected Models: Bitaxe Supra, Bitaxe Ultra, Bitaxe Gamma, Bitaxe GT, Bitaxe Hex, Bitaxe Max; related behavior on NerdAxe, NerdNOS, NerdQAxe, NerdQAxe++

Symptoms

  • AxeOS dashboard shows `Pool: Disconnected` immediately after boot despite connected WiFi and assigned IP
  • AxeOS Logs tab shows a `mining.authorize` line followed instantly by a socket close
  • Log response contains `{"result": false}` or populated `error` field after `mining.authorize`
  • Pool dashboard for your BTC address shows 0 workers online and no shares ever submitted, while Bitaxe draws normal wattage
  • Log contains strings like `bad-user-name`, `invalid worker`, `Authorization failed`, or `unauthorized worker`
  • Bitaxe loops: connects to pool, disconnects within 2 seconds, reconnects every 5-30 seconds
  • Home-screen hashrate ticks up briefly, resets to `0 Gh/s` on every reconnect cycle
  • NerdQAxe++ on Kano pool: silent socket close immediately after `mining.authorize` with no explicit error
  • ASIC temperature stays at idle (35-45 °C) because the chip never receives work from the pool
  • Power draw is measurably lower than nameplate — the chip is clocked but not hashing

Step-by-Step Fix

1

Open the AxeOS web UI at the Bitaxe's IP address and go to Settings. In the Stratum User field, delete everything. Paste a fresh receive address from your Bitcoin wallet — must start with `bc1`, `3`, or `1`. Do NOT paste a Lightning address, an email, a username, or anything containing `@`. Save. Reboot the Bitaxe (full power cycle, 10 seconds off). Watch the home screen — Pool should flip from `Disconnected` to `Connected` within 30 seconds and stay there.

2

Verify the Stratum URL field contains only the bare hostname: `public-pool.io` or `solo.ckpool.org` or `pool.d-central.tech`. Remove any `stratum+tcp://` prefix, `https://` prefix, trailing slash, or surrounding whitespace. Save and reboot. On reconnect the log should show `Connected to pool` followed by `mining.authorize` followed by `result: true`.

3

If the current pool still rejects, switch to a known-good solo pool for testing. Set Stratum URL to `public-pool.io`, Port to `21496`, User to your on-chain BTC address, Password to `x`. Save, reboot. Public Pool is the lowest-friction solo pool for a Bitaxe — if auth fails there, the problem is your address, not the pool.

4

Strip the worker suffix. In Stratum User, remove everything from the first `.` onward so the field contains only the raw address. Some pools silently reject non-conforming worker suffixes. Once basic auth works, re-add the suffix using only lowercase alphanumerics and hyphens (`bc1q...bitaxe-01` is fine; emojis, spaces, slashes, or mixed case may be rejected).

5

Factory reset and reconfigure from a clean state. AxeOS → System → Reset Settings. Re-enter WiFi SSID/password, Stratum URL, Port, User, Password by typing them (not by pasting from a PDF — PDFs embed zero-width characters). Reboot. If auth now succeeds, your previous config had invisible characters or subtle corruption.

6

On a laptop on the same network, verify reachability: `ping public-pool.io` for sub-200 ms responses, then `nc -v public-pool.io 21496` (Linux/macOS) or `telnet public-pool.io 21496` (Windows). You should see `Connected to...`. This proves the network can reach the pool. If this fails, your problem is router/firewall/ISP, not auth.

7

Capture the raw stratum handshake from the laptop with `nc public-pool.io 21496`. Send literally: `{"id": 1, "method": "mining.subscribe", "params": ["Bitaxe-Test"]}` then newline, then `{"id": 2, "method": "mining.authorize", "params": ["YOUR_BTC_ADDRESS", "x"]}` then newline. Watch the response. The error message at the raw protocol level is usually human-readable — `bad-user-name`, `worker-banned`, `invalid-address`.

8

Validate the BTC address against the blockchain: `curl https://mempool.space/api/address/YOUR_BTC_ADDRESS` — a valid address returns JSON, a malformed one returns 404. If 404, the address is bad (checksum failure, wrong network, truncated) and `mining.authorize` will always fail. Generate a fresh address from Sparrow, Electrum, or a hardware wallet and retry.

9

Enable verbose logging in AxeOS if the firmware exposes it (Settings → Debug, or query `/api/system/log`). Capture 60 seconds of logs across a connect-auth-disconnect cycle and review the full JSON exchange. The pool's rejection often includes a specific error string that AxeOS truncates in the default web-log view.

10

If you run a self-hosted pool (MiningCore, NOMP, ckpool), check the pool-side log — the server tells you exactly why auth was rejected with far more detail than the client sees. For managed pools, check the pool's documentation for username-format requirements, address-whitelist policies, or geo-blocking.

11

Build ESP-Miner from source with verbose Stratum logging enabled. Clone `github.com/bitaxeorg/ESP-Miner`, enable DEBUG-level logging in `stratum_api.c`, flash over USB. You'll see every byte going out on `mining.authorize` and every byte coming back. This catches UTF-8/ASCII encoding mismatches, whitespace, and character-escape bugs that the normal UI hides. File a GitHub issue if it's a parser bug.

12

For NerdQAxe++ against username-pools (Kano and similar), fork the NerdQAxe+ firmware and rewrite the `mining.authorize` builder to submit `registered_username.worker` instead of `btc_address.worker`. Stock ESP-Miner assumes address-auth. Issue #501 in `shufps/ESP-Miner-NerdQAxePlus` tracks this; a pool-auth-style configuration toggle is the correct long-term fix.

13

Flash a known-good official ESP-Miner release via OTA (NOT via Web Flasher — Web Flasher's factory image wipes NVS, and your pool settings go with it). OTA preserves config. Reboot into the fresh firmware and observe auth behaviour for 10 minutes — stable `result: true` means the previous firmware had a bug.

14

Run Wireshark or tcpdump on your router or on a laptop in promiscuous mode during Bitaxe boot. Capture the TCP stream to the pool host and reconstruct the stratum exchange. This is the nuclear diagnostic — you see everything, including TLS interception by corporate firewalls or stratum-protocol rewrites by some ISPs. If the Bitaxe is sending a correctly-formed `mining.authorize` with a valid address and the pool still rejects, the problem is pool-side, not client-side.

15

Stop DIY and escalate. If address is validated, URL and port are correct, alternate pools also reject, and Wireshark confirms a well-formed `mining.authorize` — open a D-Central support ticket at https://d-central.tech/contact/ with the log capture and hardware revision. For confirmed firmware bugs, file on ESP-Miner GitHub issues with the same capture. D-Central's Bitaxe support usually resolves this class of error inside one ticket from a screenshot of your AxeOS Settings page.

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.