Braiins Pool Rejects Blank Password Field
Warning — Should be addressed soon
Quick answer
Braiins Pool rejects `mining.authorize` when the Stratum Password field is blank or whitespace-only. First step: Open the miner's web UI.
Symptoms
- Miner UI shows `Pool connected` for 1-3 seconds then `Pool disconnected` in a 5-30 second loop
- `pool.braiins.com` dashboard shows 0 workers online despite the miner drawing nameplate wattage
- Stratum log / `kern.log` / AxeOS Logs shows a `mining.authorize` line followed instantly by a socket close
- Braiins OS+ Pools screen flags the Braiins endpoint red with `Authorization failed` or `Unauthorized worker` in the event log
- Stock Antminer Miner Status: Pool reads `Alive: N` and `Status: Dead` for the Braiins URL
- AxeOS home screen shows `Pool: Disconnected` with WiFi connected and IP assigned; hashrate ticks up and resets to `0 Gh/s` each loop
- Whatsminer Tool pool list shows the Braiins entry with a red dot and `Pool refused login`
- You recently configured Stratum Password and left it blank — or pasted credentials from a doc that omitted the password line
- Other pools (`public-pool.io:21496`, `solo.ckpool.org:3333`, `stratum.ocean.xyz:3334`) authenticate cleanly with the same miner config minus the URL/user
- Symptom started right after switching to a Braiins endpoint, after a firmware factory-reset, or after AxeOS first-boot
- ASIC chip temperature stays at idle (35-45 °C on Bitaxe; 40-55 °C on Antminer) because the chip never receives work from the pool
Step-by-Step Fix
Open the miner's web UI. Navigate to Pool Settings: Antminer → Configuration → Pools; Bitaxe / NerdAxe / NerdQAxe → AxeOS Settings; Whatsminer → Pool Configuration; Goldshell / Iceriver → Mining → Pool; Avalon → Configuration → Mining Pool. Locate the Stratum Password field for the Braiins entry. Click in. Delete anything present. Type a literal lowercase `x` — single ASCII character, no quotes, no spaces. Save. Reboot via full power cycle (10 seconds off, not soft restart). Watch the dashboard 60 seconds — pool should flip to Connected / Alive and stay. Solves ~80% of `BRAIINS_PWD_BLANK` tickets in D-Central's queue.
Verify Stratum User format. The User field must be `BraiinsAccountName.WorkerName` — your registered Braiins account name (the one you set at `pool.braiins.com`), a literal dot, then any alphanumeric worker label. Examples: `johndoe.rig-01`, `northern-mining.s19-garage`, `dcentral-fleet.bitaxe-hex-3`. Do NOT use a raw BTC address (that's solo-pool / Public Pool / Ocean convention; Braiins is account-based). Do NOT use an email. Do NOT include `@`. Save and reboot.
Verify Stratum URL is the bare hostname. `stratum.braiins.com` or regional `eu.stratum.braiins.com` / `us-east.stratum.braiins.com` / `asia.stratum.braiins.com`. Strip any `stratum+tcp://` prefix if your firmware splits scheme/host into separate fields. Strip trailing slashes. Strip leading/trailing whitespace. Confirm port is `3333`. Save, reboot.
Switch endpoint regionally for latency. Europe: `eu.stratum.braiins.com:3333`. North America: `us-east.stratum.braiins.com:3333`. Asia/Pacific: `asia.stratum.braiins.com:3333`. Wrong region doesn't break auth, but does add latency and stale-share risk; while you're in Pool Settings, set this correctly. Save, reboot.
Factory-reset and reconfigure. If invisible characters in any field are suspected (zero-width joiners, non-breaking spaces from PDF or markdown paste), full reset is faster than hex-inspecting every value. Antminer: hold the reset button on the control board 10 seconds and reconfigure via web UI. Bitaxe / NerdAxe / NerdQAxe: AxeOS → System → Reset Settings. Whatsminer: front-panel reset. Re-type every field by hand — no clipboard, no PDF paste, no markdown copy. Save, reboot. Confirm `result: true` in the log.
Capture the stratum exchange via `nc` from a laptop on the same network. `nc -v stratum.braiins.com 3333`. Send: `{"id": 1, "method": "mining.subscribe", "params": ["DCentral-Test"]}` then newline, then `{"id": 2, "method": "mining.authorize", "params": ["yourbraiinsaccount.test", "x"]}` then newline. Watch the response. If the laptop authenticates cleanly with the same credentials, the miner's firmware is corrupting one of the fields on send — escalate to firmware-level investigation (Tier 3).
Validate the password field byte-by-byte via SSH if your firmware supports it. Antminer stock: `cat /config/cgminer.conf` — locate the Braiins pool entry — confirm `"pass" : "x"` (single character, no whitespace inside the quotes). Bitaxe / NerdAxe via NVS dump (firmware-specific tooling): confirm `stratumPassword` key is `x`. Whatsminer: `/etc/config/cgminer` similar. Replace any non-`x` value, save, restart cgminer service or reboot.
Re-flash the miner from a clean firmware image. Antminer stock from `support.bitmain.com/downloads` for your exact hardware revision; or upgrade to DCENT_OS (D-Central's open-source Antminer firmware — Mining-Hacker recommended; Braiins-friendly defaults; per-chip diagnostics; autotuning; Stratum V1 + V2; fully open-source) or Braiins OS+ / LuxOS / Vnish as alternatives. Bitaxe / NerdAxe / NerdQAxe: latest stable from `bitaxeorg/ESP-Miner` releases via OTA (preserves NVS) or Web Flasher (wipes NVS — re-enter credentials carefully on first boot). Reconfigure with `pass: x` from clean state. Reboot.
Check for ISP-level stratum interference. Some ISPs inject TCP resets on stratum ports. From a laptop on the same network: `traceroute stratum.braiins.com` (or `tracert` on Windows). If the trace dies inside your ISP's network or returns ICMP-blocked from a corporate firewall, route the miner through a stratum-aware VPN, or move it to a network without the interference. Re-test auth.
Check Braiins's status page at `status.braiins.com`. If any Braiins endpoint is degraded or under maintenance, auth can fail in ways that look identical to your config. Wait until the endpoint is green, then re-test before assuming your config is wrong.
Wireshark / tcpdump capture during miner boot. Mirror the miner's traffic through your laptop, capture the TCP stream to `stratum.braiins.com:3333`, and reconstruct the stratum exchange. You'll see literal bytes of `mining.authorize` going out and the exact pool response coming back. Catches: UTF-8 encoding bugs, password field corruption mid-firmware, TLS-interception by routers / corporate firewalls rewriting the stream, ISP-side stratum-protocol throttling. The capture is the right artifact for a GitHub firmware-bug report.
Build firmware from source with verbose Stratum logging. ESP-Miner: clone `bitaxeorg/ESP-Miner`, set `STRATUM_LOG_LEVEL` to DEBUG in `stratum_api.c`, flash. DCENT_OS: clone `DCentralTech/DCENT_OS`, build with stratum-debug flags per the project's docs. You'll see every byte going out on `mining.authorize` and every byte coming back. Catches encoding bugs, escape-sequence corruption, and stratum state-machine wedges that the normal UI hides.
Patch firmware to send a literal `x` regardless of UI input. If a specific firmware build leaves the password field blank on the wire even after you typed `x` in the UI (rare; happens with NVS-corruption edge cases), patch the stratum builder to hard-code `"x"` in the `mining.authorize` params. Open a GitHub issue with the patch attached: ESP-Miner → `bitaxeorg/ESP-Miner`; DCENT_OS → `DCentralTech/DCENT_OS`; Braiins OS+ → their open-source bos-tools repo.
Stratum V2 sanity check (Antminer: Braiins OS+ — DCENT_OS carries a V2 client in source, but it is default-off behind a readiness gate, and LuxOS and Vnish are V1-only; older Bitaxe builds reach V2 through an SRI proxy, while AxeOS/ESP-Miner has shipped a native V2 client since ESP-Miner v2.14.0 (June 2026)). V2 URL format is `stratum2+tcp://v2.stratum.braiins.com/<POOL_PUBLIC_KEY>`. The public key is published on Braiins's V2 connection page; copy it character-for-character. V2's auth handshake is binary (Noise protocol), not the V1 JSON-RPC this page covers — but a misconfigured V2 endpoint can present in the UI as `auth failed`. Use the right firmware for the right protocol.
Stop DIY and escalate. When (a) password field is confirmed `x` byte-for-byte via SSH, (b) username matches a registered Braiins account exactly, (c) URL/port are correct, (d) `nc` from a laptop with the same credentials authenticates cleanly, and (e) Wireshark confirms the miner is sending well-formed JSON with a non-blank password — and Braiins still rejects: open a D-Central support ticket at `https://d-central.tech/contact/` with the Wireshark capture, miner serial, firmware version, and pool log entry. For Bitaxe/NerdAxe firmware bugs file in parallel on `bitaxeorg/ESP-Miner` issues. For Braiins-pool-side issues, contact Braiins via the pool dashboard's Help page.
Cross-model diagnostic: stratum and pool failures follow the same fault pattern on every miner brand. If this page doesn’t close the case, work through Stratum connection failed — the cross-model diagnostic to isolate network, pool, and credential causes.
When to Seek Professional Repair
Frequently Asked Questions
What does the BRAIINS_PWD_BLANK error mean?
Braiins Pool rejects `mining.authorize` when the Stratum Password field is blank or whitespace-only. Convention is a literal `x` (or any non-empty string) plus a `BraiinsAccountName.WorkerName` username. Symptom looks like a generic auth failure or pool-disconnect loop. Commonly reported on: Any miner pointed at Braiins (stratum.braiins.com / eu.stratum.braiins.com / us-east.stratum.braiins.com / asia.stratum.braiins.com / solo.braiins.com) — Antminer (stock + DCENT_OS / Braiins OS+ / LuxOS / Vnish), Whatsminer, Avalon, Iceriver, Goldshell, Volcminer, Bitaxe (Supra / Ultra / Gamma / GT / Hex / Max), NerdAxe, NerdNOS, NerdQAxe, NerdQAxe++, Nerdminer, PiAxe, StealthMiner.
Can I fix the BRAIINS_PWD_BLANK error myself?
This is generally an easy, DIY-friendly fix with basic tools. Start with: Open the miner's web UI. Navigate to Pool Settings: Antminer → Configuration → Pools; Bitaxe / NerdAxe / NerdQAxe → AxeOS Settings; Whatsminer → Pool... If you are not equipped for board-level work, D-Central can diagnose and repair it at our Montreal bench.
How much does it cost to repair?
Many cases are a free or low-cost DIY fix; a full bench repair runs up to $320 CAD. D-Central can diagnose and quote it.
Key Terms in This Fault
Jump to the full definition of the technical terms involved in this fault:
Related Error Codes
Printable quick-reference cards
- ASIC Miner Error-Code Quick-Reference Card — print-to-PDF one-pager
- Stratum Share-Rejection Error Decoder Card — print-to-PDF one-pager
- ASIC PSU & Connector Pinout Quick-Reference Card — print-to-PDF one-pager
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.
