Passer au contenu

Nous améliorons nos opérations pour mieux vous servir. Les commandes sont expédiées normalement depuis Laval, QC. Questions? Contactez-nous

Bitcoin accepté au paiement  |  Expédié depuis Laval, QC, Canada  |  Soutien expert depuis 2016

SOLO_BLOCK_LOST Critical

Solo Block Found but Not Credited — Verification Checklist

Miner / pool dashboard reports a `BLOCK FOUND` event but the block reward (3.125 BTC + transaction fees, post-2024-halving) is not visible in the operator's wallet. Causes range from coinbase maturity delay (100 confirms = ~16-17 hours), wallet sync / address-mismatch issues, pool fee or pool-payout schedule, all the way to genuine orphan / stale block (no payout) or a firmware false-positive notification.

Critical — Immediate action required

Affected Models: Open-source / solo-pool miners: Bitaxe (Supra, Ultra, Gamma, GT, Hex, Max), NerdMiner, NerdAxe, NerdQAxe / NerdQAxe++, NerdNOS, PiAxe, StealthMiner. Also any Antminer / Whatsminer / Avalon pointed at solo.ckpool.org, public-pool.io, solo.d-central.tech, or other solo pools.

Symptoms

  • Miner dashboard (AxeOS / NerdMiner / NerdQAxe++ / DCENT_OS / Braiins OS+ / LuxOS / Vnish) showed a `BLOCK FOUND` notification at a specific timestamp
  • Pool dashboard (e.g. `solo.ckpool.org/users/<address>`) shows the worker found a block at the same timestamp, or shows a `bestshare` value at or above current network difficulty
  • Discord / Telegram / Twitter solo-mining channel notification fired for the event
  • Wallet (Sparrow / Electrum / Blue Wallet / Bitcoin Core / hardware-wallet) shows no incoming transaction at the block's height even after multiple confirmations have passed
  • mempool.space shows a block at roughly the right timestamp but the coinbase output address does NOT match the address pasted into the miner's Stratum User field
  • Same notification, but no block at all in the canonical chain at the expected height (orphan / stale / re-org candidate)
  • Pool's `blocks found` page shows the block listed but with `confirms = 0` or `orphan` annotation after multiple network-tip blocks have passed
  • Pool payout page shows status `pending`, `unconfirmed`, `processing`, or `awaiting_maturity` — coinbase outputs require 100 confirmations before they're spendable
  • Block reward visible on chain but appears `short` of expected — pool fee deducted as a separate coinbase output (e.g. 2% on solo.ckpool.org)
  • Wallet shows the UTXO with a `maturity countdown` (Sparrow / Electrum behavior on immature coinbase outputs)
  • Stratum User field in miner UI is suspected to have been silently rewritten (botware / firmware tampering scenario)

Step-by-Step Fix

1

Pin the timestamp and worker name from the `BLOCK FOUND` event before doing anything else. Screenshot the miner UI dashboard, the pool dashboard's blocks-found list, and any Discord / Telegram notification with a timestamp. Note: time, claimed block height (if visible), Stratum User / worker address, and pool URL. This is your evidence packet — every later step refers back to it. Do not reboot, do not change settings, do not flash firmware until collected.

2

Open mempool.space and find the block at the timestamp. Click into the most recent 3-5 blocks. Find a block within ±2 minutes of your event and click it. Read the coinbase transaction (the first transaction in the block, marked with a coinbase tag). Cross-check the coinbase output address against your miner's Stratum User value character-by-character.

3

If the coinbase address matches your Stratum User, the block is yours and the funds are on-chain. Verify your wallet controls the address by opening the wallet, navigating to its address list (Sparrow → Addresses; Electrum → Addresses), and confirming the address appears. Hardware-wallet users should display the address on the device's screen and verify byte-for-byte.

4

Wait for 100 confirmations before expecting the funds to be spendable. Coinbase outputs are subject to Bitcoin's coinbase maturity rule (`COINBASE_MATURITY = 100` in Bitcoin Core consensus code) — they exist as UTXOs immediately when the block is mined but cannot be spent until 100 blocks have been built on top. ~16-17 hours wall-clock minimum. Sparrow and Electrum show immature UTXOs with a maturity countdown; some lighter wallets hide them until mature.

5

If your wallet still shows nothing after 100+ confirms have passed, force a wallet rescan. Sparrow: File → Wallet → Settings → Rescan from block height. Electrum: Tools → Server → reconnect. Mobile wallets: pull-to-refresh or quit-and-relaunch. Hardware wallets via companion apps: refresh the account, or use Sparrow with the hardware wallet plugged in to verify against the address directly.

6

If wallet rescan didn't surface the funds, validate the on-chain UTXO directly. Query a public Esplora or Mempool.space API endpoint for the address UTXO set: `https://mempool.space/api/address/<your-bc1-address>/utxo`. The response is a JSON array of unspent outputs. If your block's coinbase txid is in that list, the UTXO is yours and your wallet's display is the only thing wrong. Try a third-party wallet — import as watch-only into Sparrow.

7

If you run a Bitcoin Core node, run `bitcoin-cli getblock <blockhash> 2` to fetch the full block. The first transaction is the coinbase; its `vout` array shows every output address. Then `bitcoin-cli getrawtransaction <coinbase_txid> 1` to inspect the coinbase transaction. If your address is an output, you are credited at the chain level — wallet display is the only blocker.

8

Check pool fee math. On `solo.ckpool.org`, the pool takes 2% of the block reward (subsidy + fees). 2% of 3.125 BTC = 0.0625 BTC. The coinbase will have two outputs: yours (the larger one) and the pool's. Read both. If your output value plus the pool's output value equals the block subsidy plus fees, the math is right. If your output looks short, check the pool's fee policy page.

9

Cross-check the coinbase scriptSig for the pool tag. Coinbase transactions include a `scriptSig` field that pools fill with a tag (e.g. `/ckpool/`, `/public-pool.io/`, `/ViaBTC/`). Mempool.space displays this in the coinbase view as the `miner` or `extracted miner`. Confirm the tag matches the pool you submitted to. If it shows a different pool's tag, your share went somewhere unexpected — check Pool 1 / Pool 2 / Pool 3 priority and which one was actually live.

10

If you have access to the pool's logs (DCENT_OS-side miner logs export everything; some pool admins share block-level logs on request), pull the `mining.submit` and the resulting `BLOCK!` log line. Match the share extranonce + nonce to the block on chain — these are recorded in the block header. Exact match = block is yours, end of story.

11

Address-mismatch forensics. If the coinbase pays an address not in any of your wallets, work backwards: (a) check the miner's Stratum User field history if your firmware logs config changes; (b) check shell history or browser autocomplete on the device used to configure the miner — clipboard contamination is the usual culprit; (c) if you suspect malware (Goldshell-style botware hijacks), verify miner firmware integrity via SHA256 against the upstream release.

12

Orphan / stale block forensics. Open forkmonitor.info and look at chain history around your timestamp — forkmonitor tracks every stale block seen by its monitoring nodes. If your block hash appears in a stale-blocks list, the block was orphaned. Cross-reference with the pool's open-source code path for orphan handling — `ckpool` and `public-pool` both log block submission, acceptance by the pool's local node, and re-org events. Orphan = no payout, full stop.

13

Firmware false-positive isolation. If the pool dashboard never logged your block but your firmware showed `BLOCK FOUND`, you have a UI bug. For Bitaxe / NerdMiner / NerdAxe / NerdQAxe / NerdNOS: capture the serial output (USB to USB-TTL adapter, 115200 baud, screen / picocom / minicom) at the time of the next near-miss share and compare the firmware's block-found trigger threshold against actual chain difficulty. ESP-Miner source at `github.com/bitaxeorg/ESP-Miner`.

14

Run a parallel monitoring node. For your next solo run, point a second miner at the same pool AND run a Bitcoin Core node on the LAN configured to log every block at every height. The combination — miner submission log + pool dashboard + Bitcoin Core's own block reception log — gives three independent witnesses to any block-found event. Combined with mempool.space, you have 4-way redundancy.

15

Capture raw stratum traffic during the next high-luck run. `tcpdump -i any -w stratum.pcap port 3333 or port 21496` (Linux), or Wireshark with a capture filter on the pool's port. Replay the pcap in Wireshark — every `mining.submit` is a JSON-RPC line you can read directly. If a future block-found event happens, you'll have the exact bytes you submitted, the pool's reply, and an immutable timestamp. Gold standard for any future dispute.

16

Stop and escalate to D-Central support when: the block is on chain and pays your address but your wallet won't display after full rescan; the pool admin confirms a block but no block exists on canonical chain at the relevant height; you suspect firmware tampering or address rewriting. Send the evidence packet from step 1, plus exports from any logs you've gathered. D-Central will replicate against the chain via mempool.space + bitcoin-cli, pull the relevant pool's block log if available, and provide a written report.

17

For Antminer / Whatsminer / Avalon solo finds, the firmware logs are richer. Antminers running DCENT_OS (D-Central's own open-source Antminer firmware) log every `mining.submit` with full context: extranonce, nonce, ntime, share difficulty, network difficulty at submission. If you submit a share at or above network difficulty, DCENT_OS logs a distinctive `[BLOCK CANDIDATE]` line. Pull the log via SSH: `journalctl -u cgminer | grep BLOCK`. Authoritative miner-side record. Braiins OS+, LuxOS, Vnish offer similar but less-detailed logs.

18

Once any payout has been confirmed and matured, document the seed location, descriptors, and recovery path for the wallet that received the block reward. If the wallet is not multi-sig, consider migrating to a multi-sig setup (Sparrow + Coldcard / Jade quorum is the standard cypherpunk-grade build) before the funds become a meaningful balance. Loss of a single device should not stop you from accessing a block reward.

19

If forensics conclude the block was orphaned, accept that no payout is recoverable. Bitcoin's chain-tip-wins consensus rule means orphans pay zero. Document the event for tax/accounting purposes (D-Central support can provide a written acknowledgment). For future runs, peer your pool's Bitcoin node aggressively (`addnode` directives in `bitcoin.conf`) to minimize propagation lag, which is the primary determinant of orphan rate. Historical mainnet orphan rate runs 0.1-0.5%.

20

Set up a multi-channel block-found alert pipeline for future runs. Most firmware can webhook to Discord / Telegram / a custom URL on `BLOCK FOUND`. Send the alert with timestamp, worker name, submitted nonce, and pool URL embedded. When a future event fires, you have the evidence packet automatically — no manual screenshotting under the adrenaline of a possible find. Alert thresholds should be calibrated against mempool.space's `/api/v1/difficulty-adjustment` endpoint to prevent firmware false positives.

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.