DCENT_Toolbox Command Reference
DCENT_Toolbox 2.5.0 is a free, GPL-3.0 command-line toolbox with roughly 75 user-facing top-level commands for scanning, diagnosing, tuning, unlocking, flashing, and verifying Bitcoin miners entirely from your own machine — no cloud account, no license server, no telemetry, 0% dev fee. The commands fall into seven families and every one below is tagged read-only or mutating. The canonical first command is dcent doctor <ip>: read-only, never destructive, and it tells you what to do next. A command existing in this reference is never proof it is validated on your specific miner — an adapter and a command name are not a compatibility guarantee.
This page is a grouped map of the real command surface in the public GPL-3.0 source tree at github.com/DCentralTech/DCENT_Toolbox. It lists command names and purpose only — not flags — because flags drift between versions. Run dcent <command> --help on your installed build for the authoritative interface, and dcent --help for the complete live command list.
How to read this reference
Two rules govern every entry below, and they matter more than any command name.
- A command existing is not proof it is validated on your miner. The toolbox reports what it proved, never more: an upload is accepted, not flashed; a reachable device is online, not mining; a parsed package is readable, not safe to install; a detected board is not a safe-to-write board. Treat the command list as an inventory, not a permission slip.
- Every mutating operation must resolve to five things first: exact model, control board, incumbent firmware, evidence level, and recovery route. If any one of those is unknown, the honest answer is "not yet", not "probably fine".
Tag legend. READ-ONLY = inspects or reports; contacts no write path on the miner. MUTATING = can change miner state (config, firmware, power, credentials); these default to dry-run / plan output and gate the live write behind explicit confirmation. Where the repository states a confidence level, this page uses the project vocabulary: Production, Beta, Experimental, Recovery-only, and Detected-but-unsupported — plus Operator-gated for paths that are code-complete and tested but wait for your explicit go-ahead on hardware you own.
How do I install DCENT_Toolbox?
There is no PyPI package and no prebuilt installer or binary download. You run it from a source checkout with Python 3.9+ on Windows, macOS, or Linux.
git clone https://github.com/DCentralTech/DCENT_Toolbox.git
cd DCENT_Toolbox
python -m pip install -e .
Then point it at a miner you own and run the canonical first step. It is read-only, never destructive, and it tells you what to do next:
dcent doctor <ip>
The keygen-style Textual TUI (dcent tui) is the flagship interactive surface and ships as an optional extra of the same checkout (python -m pip install -e ".[tui]"). The Tauri desktop GUI is a scaffold that does not yet install — there is no GUI download to offer.
What does DCENT_Toolbox actually cover?
Version 2.5.0 is 491 Python modules with 87 CLI command modules behind roughly 75 user-facing top-level commands, backed by 4,500+ offline tests passing. It drives four real vendor backends — Bitmain (stock, BraiinsOS+, LuxOS, VNish, DCENT_OS), MicroBT WhatsMiner, Canaan/Avalon (cgminer/ascset), and BitAxe (AxeOS) — across six firmware ecosystems (Bitmain stock, BraiinsOS+, LuxOS, VNish, DCENT_OS on Antminer, DCENT_OS/ESP on DCENT_axe) and seven control-board families (am1-XIL, am2-XIL, am3-BB, am3-AML, cv1835, bcb100, esp32-s3). Gear it does not positively identify routes to a read-only generic cgminer backend rather than a silent Bitmain write path.
Which commands discover and identify a miner?
Group tag: READ-ONLY. These map what is on the LAN and what each device is, without changing configuration. locate is the only actuator — it blinks the unit's own find-me LED and writes no configuration. A MAC vendor hint is not a control board; identification must still be confirmed against the physical unit.
| Command | Purpose | R / W | Source file |
|---|---|---|---|
dcent scan | Discover miners on the network (LAN sweep) — the discovery entry point. | Read-only | scan.py |
dcent detect | Identify the firmware type running on a target. | Read-only | detect.py |
dcent probe | Deep read-only data extraction across supported firmwares. | Read-only | probe.py |
dcent fingerprint | Identify the control-board family (SoC / boot source) and map applicable exploits, with unimplemented vectors honestly marked manual / not-automated. | Read-only | fingerprint.py |
dcent controlboard-route | Resolve a fingerprint to the control-board-specific install/recovery route (plan-only; consumes a fingerprint, names the expected route, never writes). | Read-only (plan) | controlboard_route.py |
dcent locate | Blink the miner's physical find-me LED to spot it in a rack. | Read-only (LED actuation) | locate.py |
dcent ipreport | Listen for the control board's IP-Report button broadcast (UDP, multi-vendor). | Read-only | ipreport.py |
Two notes. There is no separate discover command — dcent scan is discovery. And a positive detection sets a Bitmain vendor route only on a real Bitmain signal; unknown gear falls back to the read-only generic cgminer backend.
Which commands run read-only diagnostics?
Group tag: READ-ONLY. Triage, audit, and evidence capture that inspect a miner without changing it. Diagnostic output is read-oriented evidence — it does not by itself establish that any write or flash route is supported on that unit.
| Command | Purpose | R / W | Source file |
|---|---|---|---|
dcent doctor | Canonical first-step diagnostic orchestrator; read-only first pass with partial-result-tolerant reporting, and it tells you what to do next. | Read-only | doctor.py |
dcent audit | Security audit — detect backdoors, dev-fee injection, and phone-home behaviour on affected firmware. | Read-only | audit.py |
dcent diagnose | Run hardware diagnostics over SSH. | Read-only | diagnose.py |
dcent diag | Build a support-safe log archive with automatic redaction — use it before sharing logs with anyone. | Read-only | diag.py |
dcent info | Full miner status and info readout. | Read-only | info.py |
dcent stats | Live terminal dashboard for BitAxe / DCENT_axe miners. | Read-only | stats.py |
dcent live | Live-hardware-as-a-debugger read trio: devmem peek, probe-chain, FPGA regdump. | Read-only* | live.py |
dcent monitor | Serial log viewer with colorized output (ESP32 / ASIC debug). | Read-only | monitor.py |
dcent forensics | Checked expert system over the reverse-engineering corpus. | Read-only | forensics.py |
dcent pvt | Show or validate a SKU's PVT (process / voltage / temperature) envelope. | Read-only | pvt.py |
dcent soak | Per-FSM live-soak harness (plan / observe). | Read-only | soak.py |
dcent verify-mining | Post-install mining proof against a V1–V14 cold-boot ladder; classifies the result as PROVEN / PARTIAL / FAILED / UNVERIFIABLE. | Read-only | verify_mining.py |
* dcent live is read-only for peek, probe-chain, and regdump; its devmem poke subcommand is a mutating operation and is double-gated.
Which commands configure and tune a miner?
Group tag: MUTATING. These change how a miner runs — clocks, voltages, pools, fans, credentials, power posture — so they carry dry-run and confirmation gates, and safety clamps apply on the tuning and fan paths. Preview the exact diff and keep a rollback path before applying. env-vars is the read-only exception; it only lists gates.
| Command | Purpose | R / W | Source file |
|---|---|---|---|
dcent config | Read or set miner configuration. | Mutating (get is read-only) | config.py |
dcent tune | Frequency / voltage tuning — profiles or custom values, with per-board safety clamps. | Mutating | tune.py |
dcent autotune | Remote autotuner for BitAxe / DCENT_axe — sweep frequencies and settle on a stable point. | Mutating | autotune.py |
dcent pools | Read or set pool configuration. | Mutating (get is read-only) | pools.py |
dcent stratum | Stratum swiss-knife: local proxy, tap, share verification, and vbits histograms — it runs on your host rather than rewriting miner config. | Local proxy / tap | stratum.py |
dcent fan | Control fan speed — set a percentage, auto mode, or read status; the home-comfort cap is enforced on set. | Mutating | fan.py |
dcent curtail | Grid / demand-response power reduction and restore; reversible — the restore step returns the pre-curtail state. | Mutating | curtail.py |
dcent harden | Security lockdown — change passwords, remove keys, apply firewall rules. | Mutating | harden.py |
dcent rules | YAML-driven automation engine: trigger + action rules with a local audit log. | Mutating (dry-run first) | rules.py |
dcent env-vars | List the known DCENT_* environment gates with scope, default, effect, and safety class. | Read-only | env_vars.py |
Which commands install or flash firmware?
Group tag: MUTATING — the highest-risk family. The install surface is planner-first: dcent install is dry-run/plan by default; the live write step executes only on an explicit operator confirmation (--yes). Several members (prepare, am2-first-install, bb-nand-first-install) are offline planners that never contact a device. A generic install command is not permission to flash.
| Command | Purpose | R / W | Evidence | Source file |
|---|---|---|---|---|
dcent install | DCENT_OS deployment planner over SSH for Antminer or ESP targets — dry-run/plan by default; the live write step executes only on an explicit operator confirmation (--yes). | Mutating | Operator-gated | install.py |
dcent flash | Firmware write / flash stage; evaluates the write-gate set and stops at the live boundary. | Mutating | Operator-gated | flash.py |
dcent prepare | Prepare/unlock is plan-only: the rail is ranked and the recommended archive is built in-process with a reported SHA-256, but nothing is uploaded and dcent unlock is not executed against a miner. | Read-only (planner) | Plan-only | prepare.py |
dcent unlock | SSH-enable via authenticated CGI on hardware you own — not presented as live-proven. | Mutating | Operator-gated (code-complete / tested) | unlock.py |
dcent stock-unlock | Per-stock-label unlock-strategy dispatcher (plan and list are offline; probe is read-only). | Mutating | Operator-gated | stock_unlock.py |
dcent amlogic-unlock | Assisted USB-OTG downgrade-unlock for locked Bitmain Amlogic boards — destructive, gated, and fails closed on an unknown or mismatched model. Not every locked Amlogic board can be unlocked in software. | Mutating (destructive) | Operator-gated (live burn gated) | amlogic_unlock.py |
dcent ota | OTA firmware update for ESP32-class miners (BitAxe / DCENT_axe). | Mutating | Operator-gated | ota.py |
dcent sdcard | Build bootable SD-card images and AM2 lab SD workflows; the raw writer is guarded. | Mutating (local media) | Operator-gated | sdcard.py |
dcent build-flash | Developer loop: find firmware → flash → reset → serial monitor (ESP32 / BitAxe). | Mutating | Operator-gated | build_flash.py |
dcent am2-first-install | Typed AM2 / XIL first-install capsule contract + staged plan (offline, plan-only). | Read-only (planner) | Plan-only | am2_first_install.py |
dcent bb-nand-first-install | Typed AM335x / BeagleBone S19j Pro NAND OTA first-install capsule + staged plan (offline, plan-only). | Read-only (planner) | Plan-only | bb_nand_first_install.py |
Can I one-click install DCENT_OS on any Antminer?
No. The signing chain hits a generational hardware wall, so install readiness is model-specific. The toolbox deliberately keeps unlock state, route state, artifact state, and proof state separate rather than promising a blanket "any board" flash:
- Antminer S9 (am1-XIL): only the Antminer S9 (am1-XIL) has a public network-write / SD-trial route today — a public-beta / SD-trial path, not a finished consumer product.
- S17 / S19 / S19j Pro / S19k Pro / S21: every current-generation Antminer stock first-install is lab-gated, evidence-gap, or no-customer-write. Do not expect a one-click end-user install on these boards.
- BitAxe / ESP devices: real routes — HTTP OTA on a running device and USB serial for a first flash. Upload acceptance is still not boot, thermal, or mining proof.
Which commands handle recovery and backup?
Group tag: MIXED. Partition reads (EEPROM decrypt, BMU extract, NVS dump) and NAND capture are read-only; restores, media writes, and resets write. Capture your NAND and EEPROM state before any risky operation, and prove the recovered image and restore route on the actual unit before trusting it.
| Command | Purpose | R / W | Source file |
|---|---|---|---|
dcent backup | Back up or restore miner configuration; the NAND-dump ritual is recovery-grade and board-family-aware. | Read-only capture (restore writes) | backup.py |
dcent recover | Recovery chain orchestrator (doctor + fingerprint + plan-first backup / install). Sources differ on how far the chain runs unattended — treat it as gated and read its plan output first. | Gated | recover.py |
dcent recovery | Produce or verify known-good SD recovery media on your host. | Local media write (verify is read-only) | recovery.py |
dcent factory-reset | Wipe a miner to factory defaults — destructive, double-gated. | Mutating (destructive) | factory_reset.py |
dcent eeprom | Read and decrypt hash-board EEPROM (read-only probe / decrypt; the lower-level writer is a separate gated path). | Read-only | eeprom.py |
dcent nvs | Dump an ESP32 NVS partition and read keys. | Read-only | nvs.py |
dcent bmu | Extract and verify Bitmain BMU container partitions to a directory. | Read-only | bmu.py |
dcent uart | UART rescue / advanced flashing — Developer Preview, default-OFF. | Mutating (experimental) | uart.py |
Which commands manage a fleet and power?
Group tag: MIXED. Status and lifecycle reporting are read-only; reboot, PDU outlet control, parallel OTA, and profit-aware autopilot loops write.
| Command | Purpose | R / W | Source file |
|---|---|---|---|
dcent fleet | Fleet discovery, status, parallel OTA update, and export. | Mixed (OTA writes; status / export read-only) | fleet.py |
dcent autopilot | Local profit-aware tune / pool loop — run dry-run and status before any unattended use. | Mutating | autopilot.py |
dcent lifecycle | Show the toolbox's own device-lifecycle stage coverage (local-only). | Read-only | lifecycle.py |
dcent pdu | Smart-PDU / Home-Assistant outlet power control — a real AC cut for units with no software power control. | Mutating | pdu.py |
dcent reboot | Reboot miners. | Mutating | reboot.py |
Which meta, help, and service commands are there?
Group tag: READ-ONLY / local. The tool's own surface: help, the flagship interactive TUI, the host-side fleet daemon, and release / artifact tooling. None of these writes miner firmware.
| Command | Purpose | R / W | Source file |
|---|---|---|---|
dcent help | Topic-aware structured help (run with no topic to list available topics). | Read-only | help.py |
dcent tui | Launch the keygen-aesthetic Textual dashboard — the flagship interactive surface, with operator wizards. | Read-only shell (wizards drive gated ops) | tui.py |
dcent serve | Headless host-side fleet daemon: Prometheus /metrics, /status JSON, rules scheduler, and alerting sinks — local by default. | Read-only service | serve.py |
dcent changelog | Show firmware changelog / release notes. | Read-only | changelog.py |
dcent nfo | Print the DCENTRAL release-group .nfo (scene artifact, local-only). | Read-only | nfo.py |
dcent fund | Show the support link for D-Central's open-source firmware and tooling (local-only, offline-safe). | Read-only | fund.py |
dcent package | Inspect local firmware-package metadata only — no scan, no upload, no device contact. | Read-only | package.py |
Is that the whole command surface?
Not quite. The 59 commands above are the ones operators reach for; the tree ships 87 command modules behind roughly 75 user-facing top-level commands, including reverse-engineering, artifact, and route-planning tooling not broken out here. Run dcent --help on your installed version for the complete live list — that, not this page, is the authoritative interface. Whatever the command, the two rules at the top still hold: existence is not validation, and every write path resolves to an exact model, control board, incumbent firmware, evidence level, and recovery route.
The line we do not cross
DCENT_Toolbox reports exactly what it proved, never more. An upload is accepted, not flashed. A reachable device is online, not mining. A parsed package is readable, not safe to install. A present adapter is not a validated operation. Do not generalise one successful adapter-and-command combination to a whole platform family.
The tool runs locally on Windows, macOS, and Linux with Python 3.9+ from a source checkout: 0% dev fee, no cloud, no license server, no telemetry, GPL-3.0 — built by the mining hackers at D-Central Technologies in Québec, working on Bitcoin mining tech since 2016.
Where next
- Getting started — install the source checkout and run your first commands.
- Discovery & identification —
scan,detect, andfingerprintin depth. - Compatibility matrix — vendors, firmwares, and control-board families.
- Installing DCENT_OS — the honest per-board install reality.
- Toolbox FAQ — common questions and the honesty guarantees.
- DCENT_OS docs · First run · S9 SD trial · Uninstall / revert · DCENT_OS FAQ
- DCENT_axe web flasher · Fund the sovereign stack
Related products, repair, and setup paths
- how D-Central diagnoses ASIC repairs
- ASIC troubleshooting library
- ASIC manuals and repair guides
- replacement hashboards
- ASIC control boards
- ASIC power supplies
- compare specs in the ASIC miner database
- compare ASIC miner specs
- ASIC miner database
- ASIC repair services
- Antminer S19 specs and profitability
- buy a tested Antminer S19
- Antminer S19 maintenance guide
- Antminer S19 repair service
- Antminer S21 specs
- Bitmain Antminer S21
- Antminer S21 maintenance guide
- BM1370BC S21 Pro chip
- Antminer S9 specs
- Bitmain Antminer S9
- Antminer S9 maintenance guide
- S9 hashboard repair parts bundle
- Whatsminer M30S specs
- Whatsminer repair guide
- MicroBT Whatsminer M30S++
- Whatsminer M3x exhaust shroud
- Avalon (Canaan) hashboard repair
- start a repair request
- ASIC repair parts
Last reviewed August 14, 2026.
