v0.9.9

LATEST
Windows + Linux 2026-06-22

The Windows/Linux (WSL) interface release. Brings back the small "Mini" window, adds a Codename label so identical rigs are easy to tell apart on the pool, and gives you a clear (and clearly-marked-risky) path to overclocking for a few extra percent. No change to the mining engine — same shares, same speed out of the box.

  • Mini mode is back. Toggle between the standard Wide dashboard and the small, compact Mini orb with the layout button or the Space bar. Mini stays out of the way while you work; any menu, info or settings panel automatically opens in Wide so nothing is ever cramped, then drops back to Mini when you close it.
  • Worker Codename line. Under "This machine's worker" there is now a "Codename:" label showing your own miner name. Because identical hardware gets the same auto-assigned pool name, this makes your rig easy to spot on the dashboard. Editing the name in Settings updates the line right away.
  • Power & Overclock (advanced). A new fire-marked card in the Optimization Lab links straight to MSI Afterburner — the one tool that can actually raise the GPU core clock on Windows/WSL — with an info button warning that overclocking adds heat and needs good cooling. The WSL cheat sheet gains a copy-paste "Power & overclock" section (check clocks, raise the power limit, lock a higher clock, undo), noting that the example values are per-card and that the clock-lock is ignored under WSL/WDDM (use Afterburner there). Optional — the miner already runs at the optimal solver settings without it.
  • Same mining engine, same shares, no consensus change. The dev fee is unchanged. macOS is unaffected by this release.

v0.9.8

Apple Silicon 2026-06-21

Your Mac now keeps mining at full speed even when you lock the screen or step away.

Two things were quietly costing some Macs their hashrate, with no sign anything was wrong. macOS "App Nap" throttles background apps, so whenever the screen locked or the app sat behind other windows, the miner slowed to a fraction of its speed. A Mac left mining overnight could earn a fraction of what it should. And a Mac left idle would simply go to sleep and stop. This release fixes both, and adds a warning if your charger is too small to run the chip at full speed.

  • Keeps mining when the screen is locked or the app is in the background. macOS no longer throttles the miner while you are away, so a Mac left mining overnight earns at full speed the whole time.
  • Stays awake while mining. If your Mac is set to sleep when idle, it now stays awake as long as the miner is running, so it does not quietly stop earning. It sleeps normally again the moment you stop mining.
  • Warns about an underpowered charger. A small USB-C charger power-caps the chip and can cut mining speed by 3 to 4 times. The app now tells you if your charger is too small. Use the 67W or higher charger that came with your Mac for full speed.
  • Exact same mining engine and shares. These are reliability fixes only, no consensus change. Windows and Linux are unchanged.

v0.9.7

Apple Silicon 2026-06-19

The Apple Silicon speed + connectivity release. Faster mining, and it now works on locked-down networks without a VPN. Auto-updates, so most Macs pick it up on their own within ~30 minutes, nothing to do.

  • Faster Apple Silicon mining. A new optimized Metal solver from the pool (embedded GPU kernel, Opt#1/#3/#5) scans more nonces per second on the very same Mac. Verified bit-for-bit identical results to the previous solver before shipping, so every share the pool credited before it still credits, just more of them.
  • Mines through blocked networks, no VPN needed. On hotel, office, or firewalled Wi-Fi where the plain mining port is blocked, easyBTX now automatically falls back to a secure TLS connection on port 443 that looks like ordinary HTTPS. It just keeps mining where it used to stall.
  • Still runs on macOS Ventura 13 and up (Sonoma and Sequoia included), same as 0.8.10.
  • Windows and Linux are unchanged in this release.

v0.9.7

Linux 2026-06-18

The Linux & WSL release. easyBTX now updates itself, mines through blocked networks, and is far easier to run on a Windows PC through WSL.

On Windows? The fast path is WSL. 🔥 Native Windows still works, but the Linux build, running inside WSL on your Windows machine, uses the modern V3 mining engine and earns substantially more on the very same NVIDIA card. Same one-click feel, far more hashrate, and it keeps itself up to date.

  • Auto-update comes to Linux & WSL. Once you're on this build, easyBTX keeps itself current on its own. New versions download, verify, and install automatically, exactly like the Mac. No more re-downloading, no commands. Every update is cryptographically signed and verified end-to-end, so a bad or tampered update can't install. This is the big one: set it up once, and it stays current forever.
  • Mines through blocked networks, no VPN needed. On hotel, office, or firewalled Wi-Fi where the plain mining port is blocked, easyBTX now automatically falls back to a secure TLS connection that looks like ordinary HTTPS traffic. It just keeps mining where it used to stall.
  • A built-in WSL command cheat sheet. A new in-app page with copy-paste commands for Windows/WSL users (start the miner, check the GPU, restart, update), each with a one-click Copy button and a colored badge telling you exactly which terminal to run it in (PowerShell, Ubuntu/WSL, or CMD). No command-line experience required.
  • A wider, more readable window on Windows and Linux that opens in the roomy desktop layout and stays put.
  • Experimental updates channel (opt-in). In Settings you can turn on early test builds and receive them in-app, one click, before they go public, for users who want the bleeding edge.
  • Mac is unchanged in this release.

v0.8.10

Apple Silicon 2026-06-18

Apple Silicon Macs on older macOS can mine again, including Ventura, Sonoma, and Sequoia.

The bundled Metal solver had been built for the newest macOS only, so on macOS Ventura (13), Sonoma (14), and Sequoia (15) the app opened but the miner quit the instant it tried to start, leaving it stuck on "Starting…". This release ships a solver built to run on those older systems, so those Macs mine normally again. If you're already on the latest macOS nothing changes for you, and it updates automatically.

  • Runs on macOS 13 (Ventura) and up. The previous build needed the very latest macOS; this one supports Ventura, Sonoma, and Sequoia too. Affected Macs go straight from "Starting…" to finding shares.
  • Exact same mining engine, verified bit-for-bit. The consensus seeds and per-share digests are byte-identical to the pool's official build, so every share you find stays valid. This is purely a compatibility rebuild, not an engine change, and the speed is unchanged.
  • Windows and Linux are unchanged in this release.

v0.8.8

Apple Silicon 2026-06-16

Apple Silicon Macs mine about 4–5× faster.

The Mac build had a bug that quietly held the Metal miner far below what the chip can actually do, so every Apple Silicon Mac was running at a fraction of its real speed. This release fixes it. Nothing to change on your end — it updates automatically.

  • About 4–5× more hashrate on Apple Silicon (M1 through M5). On an M2 Pro we measured a jump from roughly 50 to around 190–275 N/s. Just keep the app open and you'll watch it climb.
  • Same canonical mining engine as the pool's official build, verified bit-for-bit identical to the reference, so every share you find stays valid.
  • Windows and Linux are unchanged in this release.

v0.8.5

Apple Silicon 2026-06-16

Apple Silicon Macs mine noticeably faster — same engine, better tuned.

  • Macs now use all their GPU cores by default. The old default held the Metal solver back to a fraction of the chip. On an M2 Pro we measured roughly 1.4–1.8× more sustained throughput from this change alone, and in the live pool a tuned M2 Pro now out-earns stock M4 and M5 machines. Every Apple Silicon Mac benefits automatically — there's nothing to change.
  • Better Metal GPU buffer sizing. easyBTX now sizes the GPU's work pool to the GPU rather than letting it default low. This especially helps the smaller fanless Macs (Air-class), which were quietly running at about half speed.
  • Windows and Linux are unchanged.

v0.8.4

Apple Silicon 2026-06-15

Mac switches to the new V3 engine — now the whole fleet is on V3.

  • Mac now runs the new V3 engine. We confirmed the Apple Silicon (Metal) build of the new engine runs well on Mac, so easyBTX now mines with it. After the recent BTX network upgrade, V3 is the engine the pool credits, so this keeps your Mac earning valid shares.
  • Linux and WSL2 — already on the V3 engine since 0.8.3, unchanged.
  • Windows — native Windows keeps the proven engine; the in-app banner still points you to the free WSL2 build, which runs the fast V3 engine (there's no native-Windows V3 build yet).
  • Quieter updates, behind the scenes. easyBTX now watches the pool's engine channel and can pick up a newer mining engine on its own — but only after it has verified the download and confirmed the engine actually runs, so you never end up on an untested one. A brand-new engine we haven't vetted is just flagged for review, never auto-installed.

v0.8.3

2026-06-15

Linux and Windows-via-WSL2 get the fast new engine.

  • Big speed jump on Linux and WSL2. The BTX team's pool update plus the new v0.32.11 engine unlocked a large throughput gain on NVIDIA cards. easyBTX on Linux, and on Windows through WSL2, now runs that engine and mines much harder than before.
  • Windows: switch to WSL2 for the fast engine. Native Windows keeps the proven, stable engine (it still earns), and the in-app banner points you to the free WSL2 build, which runs the faster new engine.
  • Mac keeps the proven fast engine for now. The matching Mac (Metal) version of the new engine isn't out yet, so Apple Silicon stays on the engine it already runs (which is faster on Mac today). Your Mac mines at full speed the whole time; we'll switch it over the moment the Mac engine is ready.

v0.8.2

2026-06-15

New app features — on the engine you already have, so nothing slows down.

  • All the new conveniences, none of the speed cost. This update adds the new app features below while keeping the proven, fast mining engine you're already running. The newer engine from the BTX team is still being sped up, so we held it back rather than ship anything slower — your hashrate and earnings are unchanged.
  • First-run payout helper — new here? A simple popup asks for your BTX payout address (or helps you grab a wallet) so you never sit on "starting…" without earning.
  • Auto-heals a stuck connection — if the pool ever connects but sends no work, easyBTX now notices and reconnects on its own.
  • New "Mono" color theme and a clearer Deep-Tune readout when an overnight tune finds no improvement (was an unreadable box).
  • Under the hood: the bundled node and tidy-up were refreshed. When the BTX team's faster new engine is ready, a later update will switch to it automatically.

v0.8.1

2026-06-15

The Linux/WSL2 speed fix — a big first step.

  • Linux and WSL2: a big speed recovery. The BTX core team's v0.32.11 solver gets your GPU working properly again after the network upgrade (the previous build left it mostly idle). It's a major jump over that build — and the BTX team is still working on further speed gains for the new engine, so expect more to come.
  • Bundled node updated to v0.32.11 and its newer snapshot, ready for BTX's next network step at block 132,000.
  • Mac stays on the current engine for now. The matching Mac (Metal) build from the BTX team is still on its way. Your Mac mines valid the whole time.
  • Windows (native) continues on the proven engine; the in-app banner points you to the WSL2 build, which runs the new engine.

v0.8.0

2026-06-14

A required mining upgrade — and Mac joins the newest engine.

  • Required upgrade for everyone (BTX block 130,500). BTX is changing how mining works ("MatMul-V3") at block 130,500. From that block on, older versions stop earning until they update. easyBTX 0.8.0 has the new engine built in, so updating now keeps you earning right through the change. Mac and Linux update automatically.
  • Mac runs the newest engine. Apple Silicon Macs move to the freshly rebuilt v0.32.10 Metal solver — the first Mac engine update since the last fork.
  • Windows: one step to keep earning. The new engine can't run natively on Windows yet, so easyBTX shows you how to switch to the free WSL2 (Linux) build, which runs it fully. Your current Windows version keeps earning right up to the upgrade.
  • First-run payout helper. New here? A simple popup now asks for your BTX payout address (or helps you grab a wallet) so you never sit on "starting…" without earning.
  • Auto-heals a stuck connection. If the pool ever connects but sends no work, easyBTX now notices within seconds and reconnects on its own.
  • Clearer tuning results. When a tuning run finds nothing faster, it now says so plainly in a clearly marked box and invites you to try again — instead of a hard-to-read panel.
  • Faster out-of-the-box tuning. Default solver settings now follow the latest pool-wide measurements for NVIDIA cards.

With the built-in wallet, easyBTX no longer starts a local node on Mac — it's pool-only everywhere now, which keeps things simple and light.

v0.7.4

2026-06-13

easyBTX comes to LINUX — and the whole fleet moves to the v0.32.8 solver.

  • Linux is here (pool mining). easyBTX now runs on Linux as a one-click AppImage or .deb, pool-only like Windows — no node, no terminal. It ships the modern CUDA solver (BTX v0.32.8 + the GPU-saturation kernels + continuous feeding) that Windows can't run yet, so a single NVIDIA card on Linux mines far harder than the same card on the older Windows engine. Works on NVIDIA GTX 10-series and newer; runs natively or under WSL2 on Windows 11.
  • v0.32.8 solver. Linux ships the fleet-blessed v0.32.8 build (a faster CPU-side pipeline; same shares, same rewards). Mac keeps its proven Metal engine (the BTX developer confirmed it's already the best Mac build). Windows stays on its proven engine for now while the modern stack is hardened for it.
  • Tuning. The auto-tuner now follows the BTX developer's latest large-scale pool study: it holds the batch size at the validated sweet spot and tunes the CPU feed instead, where the real gains are.
  • Bundled node updated to BTX v0.32.9 (the network's latest, with the reorg-hardening fix) plus a fresher startup snapshot. Used only by optional Mac Solo mode; pool mining is unaffected on every platform.

v0.7.3

2026-06-13

The MINING TUNING & OPTIMIZATION LAB — and your tuned settings now survive updates.

  • The LAB. "Pro tuning" grew up: the flask button on the mining card now opens the MINING TUNING & OPTIMIZATION LAB, with a clearer hardware header and a friendlier face. The flask pulses green while a tuning session is running, and gives a tiny blink now and then if you have never tried tuning — that's your invitation.
  • Tuned settings survive updates. Updates used to reset everyone's tuning to Standard as a safety measure. Now easyBTX resets only when the mining engine itself changes between versions — a proven Deep Tune win (the first fleet reports measured +23% to +157%) stays applied across normal app updates.
  • Saved results, managed. Every saved Deep Tune result now shows the app version it was found on, can be deleted with its ✕ (after a confirm), and switching settings always shows exactly what would change — threads, slice, extra knobs, the proven win — before anything is applied.
  • Find the Lab from Settings. A new "Mining Optimization" section in Settings explains tuning in three lines and takes you straight to the LAB.
  • Wallet downloads where you need them. The Post-Quantum BTX Wallet and bonuz wallet buttons moved next to the wallet manager, right above the payout options — exactly where you decide where rewards go.
  • Solo node updated to BTX v0.32.7 (the network's latest), with a much fresher startup snapshot — new Solo setups now start almost at the chain tip instead of thousands of blocks behind. Pool mining is unaffected.

v0.7.2

2026-06-11

The mining engine learns to never stop: continuous feeding on Mac and Windows.

  • Fresh shares, full credit. The continuous-feed engine batches its shares per work slice — and the pool pays less for shares that arrive late against its fast job rotation. Batches are now capped at the pool's own cadence (~5s) so every share lands fresh, keeping the engine's full output AND the pool's full credit.
  • Continuous-feed mining engine (Mac: ~2.2× measured live). The solver now keeps scanning through its whole work slice and hands back every share it found in one batch, instead of stopping at the first one and waiting to be restarted. At real pool speeds the old engine restarted ~38 times a minute, paying a GPU spin-up each time; the new one keeps the GPU saturated. On an M2 Pro this measured ~2.2× more difficulty-weighted shares in a live 45-minute side-by-side (zero rejected shares). easyBTX submits every share from each batch — credit to shib (dexbtx) for the C4 continuous-feed design.
  • Windows: the full GPU-saturation stack — the same continuous-feed engine plus the byte-exact PR#58 kernel optimizations (windowed SHA-256, SHA midstates, factored compression; by vanities, via shib's btx-prebuilds-v0.32.5). Measured 3-5× on NVIDIA cards in the dexbtx fleet; ships after on-device validation.
  • Tuning resets to Standard after every update. Each release can change the mining engine itself, so settings tuned on the old engine may not fit the new one. On the first launch after an update the app returns to Standard; your saved Deep Tune finds stay in the dropdown and you can re-apply or re-tune any time.
  • Mac Auto threads follow the pool's formula — same speed, much cooler. On the new engine, Auto now splits your CPU (~40% solving, ~80% feeding the GPU) instead of all-cores solving. Live-measured on an M2 Pro: equal or slightly better mining output from far fewer busy cores — a cooler, quieter machine, matching the pool's own recommendation for Apple rigs. Your own thread/knob settings always override it.
  • The tuning knobs are real now. Every GPU knob in Pro tuning (and the settings Deep Tune tests) was writing names the mining engine never read — silent no-ops since they shipped. They now use the engine's real setting names, old saved profiles and shared files migrate automatically, and the "Threads per block" knob is gone (no such setting exists in the engine). Deep Tune's GPU-setting test windows measure the real thing from now on.
  • Smarter engine defaults per generation. The app pinned a Windows setting that was right for the old engine but starved the new one (a 3060 dropped to a tenth of its speed in field testing — caught before release). The app now detects which engine generation it ships and applies the right profile automatically.
  • Pool mode hides node chores. If a leftover Solo node lives on your Mac, pool mining neither needs nor waits for it — the app no longer shows "waiting for the blockchain", the node-update button, or a scary recovery banner in pool mode (a background node now says it doesn't affect your mining speed).
  • Upstream panel, simplified. Four plain tiles naming the open-source projects easyBTX builds on — tap one to visit it. No version numbers, no badges, nothing to check: updates install themselves.

The disclosed 4.99% tool fee is unchanged.

v0.7.1

2026-06-11

A much faster Mac mining engine, and a friendlier Deep Tune.

  • ~6× faster Mac mining engine (BTX v0.32.5). The bundled Metal solver is upgraded from BTX v0.32.2 to v0.32.5, which fixes the Apple GPU digest path upstream and keeps the whole mining pipeline on the GPU instead of falling back to the CPU. On an M2 Pro the new engine found shares about 6× faster in side-by-side testing (same machine, same settings, measured on real share-class work). Verified bit-exact against the network's reference vector on both CPU and Metal before shipping — same proofs, just faster. Windows keeps its proven CUDA engine unchanged (the newer upstream CUDA path is still being validated on real cards; it ships only when it passes the same on-device gates).
  • Your Deep Tune wins, in a dropdown. The "Active settings" row in Pro tuning is now a dropdown menu of every setting Deep Tune ever proved on your machine — each saved as a sentence like "Deep Tune fastest +30% — found 6/11/2026" — plus "Use Standard". Switch any time; share your finds in @easyBTX.
  • A little celebration when Deep Tune wins. When a session ends with a proven winner the panel now says "New fastest settings applied — nothing to do" with a small sparkle, instead of asking you to keep something that was already applied automatically. OK just dismisses; Share is the main action; Revert stays available.
  • Fixed: the done-screen could caption the wrong settings. After a session, the "Applied:" line could show the last tested window's settings (often the old baseline) instead of the actual winner. The engine always applied the right settings — the label now matches them.
  • Big hints are now popups. The "your GPU isn't fully used" hint (and its Deep Tune shortcut) now appears as a centered popup in the same style as the settings and info dialogs — no more one-word-per-line column when the window switches between tall and wide layouts.
  • Honest upstream panel. In Settings, the BTX node / MineBTX / Tauri rows no longer show "Update available" and are no longer clickable at all (that's maintainer telemetry, not something you can act on — people thought they had to update something). Only the easyBTX releases row answers the one question that matters: "am I on the latest easyBTX?" — and updates install themselves anyway.
  • Clearer wallet buttons. "Get the BTX Wallet" is now "Get the Post-Quantum BTX Wallet (Mac & Windows)", and the Payout screen adds a "Get bonuz Wallet for BTX (Android & iOS)" button wearing the bonuz signature gradient ring. The "Get bonuz" button in the About page now carries the full animated bonuz gradient on every color theme. All bonuz buttons open bonuz.xyz, where the official store links live.
  • Mac cooling tip (macOS only). A cooler Mac holds its mining speed better. Settings → Links now recommends the free Macs Fan Control app (by CrystalIDEA, not affiliated), with a matching note in Pro tuning.

v0.7.0

2026-06-11

Deep Tune: easyBTX now tunes itself on your real mining, over hours, proves what actually made it faster — and remembers it.

  • Deep Tune — long, honest tuning sessions. Open the new lab button (the little flask next to the ℹ️), pick 3–12 hours and press Start. easyBTX keeps mining the whole time while it changes one setting at a time in ~30-minute windows, measures difficulty-weighted share production (so the pool's automatic difficulty changes can't fake or hide a result), and applies a new setting only when the statistics genuinely separate it from your baseline — shown as a real number, like "+23% vs your baseline". No winner? It says so honestly and changes nothing. When a session ends, a green "Deep Tune results arrived" pill appears right on the mining animation so you can't miss it, even a day later.
  • Your fastest settings, remembered and switchable. The panel now always shows which settings your miner is running right now (Standard, Deep Tune fastest, Manual, or Loaded), and a proven winner is kept as a durable "fastest found" profile — Reset to Standard never deletes it, and switching between Standard and your fastest is one click each way.
  • A report file you can actually share. When a session ends (finished or stopped), the report saves to your Desktop automatically as a small .txt — hardware, every window's settings and results with confidence intervals, and your public worker + payout address so results can be checked against the pool. Never any keys. One click opens the @easyBTX Telegram channel to drop it in; shared reports are how defaults improve for every miner.
  • Save, load and share tuning settings. Your knob setup exports as a readable text file (with your hardware and fastest-found result in the header), loads back with one click, and travels through @easyBTX so miners can swap proven setups.
  • Finer manual knobs. Solve slice in 1-second steps (5–60 s), solver threads as a real slider sized to your machine's cores, type-a-number boxes next to every slider, and platform GPU knobs (NVIDIA: threads per block, GPU inputs, batch size · Apple: batch size, prepare workers) with plain-English hints. The panel opens in wide layout and shows your chip, cores, RAM and GPU at the top.
  • Quick tune measures the real thing now. The fast sweep benches against your live pool job instead of an easy synthetic one that was ~22× lighter than real mining.
  • "How mining works", rewritten. The info page is now a small sectioned guide: pool mining needs no node and starts in seconds (perfect for a MacBook on the go), what your earnings look like and how to verify them on the explorer, when solo + the node make sense, the fees side by side (pool ~7.5% total · solo just the 4.99% tool fee), and an honest note on the built-in wallet.
  • Looks and fixes. Section headings in Settings and About are twice the size; hardware stats got gauge bars; color themes and mining animations are now truly independent (picking an animation no longer resets your color); the hardware line no longer clips and shows your RAM the way Apple does; and the bonuz box wears its signature flowing orange→pink neon frame.

The disclosed 4.99% tool fee is unchanged, and Deep Tune never touches it.

v0.6.9

2026-06-10

Updates now take care of themselves, and your rig always has a name on the pool dashboard. Mac and Windows ship together again.

  • Automatic updates that actually update. easyBTX now installs new versions on its own: it checks every 30 minutes and updates automatically, so fixes like 0.6.8's Mac speed-up reach every machine without anyone clicking. You can turn this off in Settings — the app then still checks hourly and shows the familiar update cue so you can install yourself. A failed download now retries on the next check instead of silently giving up on that version.
  • Your machine can no longer be nameless in the pool. If a hardware probe failed at launch, a rig could register with an empty GPU name and become a hidden "-ALPHA-1" entry on the pool dashboard — mining and earning, but invisible in the charts. easyBTX now always reports a proper GPU name, on every platform, even when the probe fails.
  • Windows rejoins the Mac version. The Windows build catches up to the same release as the Mac, carrying the proven CUDA mining engine plus the 0.6.8 correctness guards (share timing pinned to its job, older NVIDIA GTX 10/16 and RTX 20-series cards enabled on every mining path).

The disclosed 4.99% tool fee is unchanged.

v0.6.8

2026-06-10

Apple Silicon Macs mine pool shares at full speed again.

  • Macs land shares again. Apple Silicon Macs now run the GPU solver as a single warm, always-on engine using every core, instead of restarting it each mining cycle. Restarting kept the Metal pipeline cold, so the Mac was scanning but finding almost nothing; with the warm engine it finds and submits shares like the rest of the fleet. If you mine on a Mac, this is the update that makes it actually earn.
  • Every found share is timed to match its job. Locked the mining engine so it can never re-stamp a share with a time the pool didn't expect (which the pool would reject). easyBTX already behaved this way after the block-125,000 upgrade; this pins it so future engine updates keep it that way.
  • Consistent older-NVIDIA support across Windows mining paths. GTX 10/16 and RTX 20-series (Pascal/Turing) cards are now opted in on every Windows mining path, so they keep mining on the GPU instead of being refused on future builds.

v0.6.6

2026-06-09

Makes shares actually land by letting the pool settle on the right difficulty.

  • Steady connection so the pool can tune your difficulty. easyBTX was reconnecting roughly once a minute (to rotate the disclosed dev-fee window), which never gave the pool the few minutes it needs to set your mining difficulty correctly — so it ran away to an impossible level and your shares stopped landing. easyBTX now holds one connection for hours at a time, so difficulty settles and shares land steadily. The disclosed 4.99% fee is unchanged (just applied in longer, less frequent slices).

v0.6.5

2026-06-09

Gets easyBTX miners landing shares again after the block-125,000 upgrade.

  • Reverted to the proven mining engine. A newer solver build regressed GPU mining after the upgrade: some NVIDIA cards would connect but sit near 0% GPU and find nothing. easyBTX uses the proven engine, which mines normally across GTX 10/16 and RTX 20/30/40/50 cards.
  • The work your GPU finds now gets submitted. Post-upgrade each attempt is heavier, so a long search could be cut off before it finished and reported. Mining now runs in short slices that always complete, so found shares get sent and counted instead of being thrown away.
  • Live mining speed is reported to the pool (continued from 0.6.4), scaled by your power slider so it reflects what you're actually contributing.

v0.6.4

2026-06-09

Faster mining after the block-125,000 upgrade, plus fixes so the pool sees your real hashrate again.

  • Faster mining after the upgrade. The block-125,000 change made each mining attempt more work, which briefly slowed the whole network. easyBTX now runs the BTX v0.32.3 mining engine (and the v0.32.3 node for solo mining on Mac), so your GPU works at full speed again while the network's difficulty settles back down.
  • Your hashrate shows up at the pool again. After the upgrade the miner could report zero speed to the pool even while the GPU was busy. Mining now runs in short slices that always finish and get counted, so your live speed is reported.
  • Reported speed follows your power slider. The speed sent to the pool now reflects how high you've set mining power, so it matches what you're actually contributing instead of your peak.
  • Windows: smoother start on more NVIDIA cards. Some cards could stall right after the upgrade while the GPU warmed up for the first job. easyBTX now gives that first step more time, so those cards start mining instead of retrying.

v0.6.1

2026-06-09

A required BTX network upgrade that keeps your miner producing valid work through block 125,000, plus wider NVIDIA GPU support on Windows.

  • Required update for block 125,000. BTX changes how mining work is generated at block 125,000. easyBTX updates its mining engine to match, so your miner keeps producing valid work through the change on both pool and solo mining, on Mac and Windows. Existing installs update themselves; keeping easyBTX current means no interruption at the upgrade.
  • easyBTX now runs the BTX v0.32.2 node, so solo mining on Mac keeps following the network through the required upgrade. Pool mining doesn't use the node (the pool runs it for you), so pool miners are covered by the mining-engine update above.
  • Wider NVIDIA GPU support on Windows. GeForce GTX 10-series (Pascal) and GTX 16 / RTX 20-series (Turing) cards now mine on the GPU directly instead of falling back to slow CPU mining. If you have a 10-, 16-, or 20-series card, your GPU now does the work.

v0.5.7

2026-06-07

A required BTX network upgrade for solo mining, lighter animations, and quicker access to live stats and the community.

  • easyBTX now runs the BTX v0.32.1 node, so solo mining keeps following the network through the required upgrade at block 125,000. Pool mining is unaffected (the pool runs the node for you), and existing Mac installs update themselves.
  • Mining animations are lighter on your machine — they render more efficiently, so more of your GPU and CPU go to mining (a real help on smaller Macs).
  • The mining animation is one picker — Power Core, Surfer, or None — independent of your color theme, so any animation pairs with any color.
  • New Stats dashboard link opens the live easyBTX + BTX network page (uptime, hashrate, blocks), and a BTX Community link makes it easy to share your diagnostics file and get help.
  • The big mining view now shows two speeds side by side: your hardware speed (what your GPU is doing) and the pool-counted speed (what the pool credits), with your share of the network alongside.

v0.5.6

2026-06-06

New blue theme + mining optimizations.

  • New Blue color theme (Appearance → Theme).
  • New Silver Surf mining-animation skin — a chrome surfer that reacts to your live share pace, mining intensity, and every accepted share. Pick it in Appearance → Animation skin; it works with any color theme.
  • Dev-fee capture fix: the ledger is now persisted, so it survives restarts and reconnect churn; the first capture window lands in ~16 minutes (was ~1 hour) and targets ~5.05%.
  • DNS-resilient pool connect: caches the last-good IP, fixing the ~30s Windows reconnect churn.
  • Live share-rate: per-minute and per-hour rows in the big view.

v0.5.5

2026-06-05

A required BTX network upgrade, a richer info page, and a few wallet niceties.

  • easyBTX now runs the BTX v0.31.0 node, so solo mining keeps following the network through the required upgrade at block 123,000. Pool mining is unaffected, and existing Mac installs update themselves.
  • A reworked info page: a section nav that jumps you straight to each part, your live block height and the pool's network dominance, your last and longest mining sessions, a single Safety section, and a Builder section that credits bonuz (the maker's self-custodial wallet — BTC, SOL and ETH today, with BTX coming soon).
  • You can turn the mining-core animation off (Settings → Appearance) for a calm, still background. It is purely visual and every number still shows.
  • Transactions now show the selected wallet's balance and have a Refresh button, since pool payouts can take a minute or two to appear.
  • There is now a third-party OTC market at btx.trade. We are not affiliated with it, it is use-at-your-own-risk, and nothing here is financial advice.

v0.5.1

2026-06-04

Wallet balances and activity, fixed everywhere.

The built-in wallet is node-less: it reads your balance and history straight from the BTX explorer. BTX wallets spread funds across many derived addresses, so an earlier build could show 0 on a wallet that actually held coins. Now every screen reads the right addresses:

  • Your balance shows correctly on the wallet card, the Send screen, and the dashboard. While a number is still loading it shows "—", never a bare 0.
  • Balances refresh on their own from the explorer, so they stay current.
  • A "View in Explorer" button opens your address on the BTX explorer in your browser.
  • Transactions now reads your history from the explorer (no more "node not ready"), with a switcher to pick which wallet to view and export.
  • The wallet window has a cleaner header.
  • The BTX node version shown in Settings reads 0.30.2.

When a new easyBTX version is out, a clear "UPDATE AVAILABLE" signal now blinks over the miner, and the app re-checks every few hours (not just at launch) so a long-running install notices it. On Mac, updates still install automatically if you have that turned on; on Windows, click the signal to go to Settings and update.

Mining is unchanged on both Mac and Windows.

v0.5.0

2026-06-04

Windows mining works, and the built-in wallet comes to Windows.

The big one for Windows: pool mining now uses a persistent daemon-mode solver, which ends the GPU-context hang that left earlier Windows builds finding zero shares. Your NVIDIA card now mines and credits shares the way the Mac already did. And the full node-less built-in wallet (create, receive, send, and restore from a node wallet.txt or wallet.dat) is now available on Windows too, matching the Mac build.

Also fixed: pausing no longer resets your lifetime accepted-share count, and a restored HD wallet now shows its balance. Those funds live across many derived addresses, so the card couldn't total them without your passphrase. Enter it once via the new "Load balance" prompt (or review any send) and the balance loads and stays current.

The macOS Metal mining path is byte-for-byte unchanged.

v0.4.8

2026-06-03

A built-in wallet, with real Send and node-wallet Restore.

A self-custodial wallet now lives inside the miner. You can create a new wallet or import an existing one, check your balance, and receive your mined BTX directly, without a separate app. A WALLET button sits in the top bar next to the settings gear.

Added

  • A built-in wallet inside the miner: create or import a wallet, see your balance, and receive your mined BTX. A WALLET button sits in the top bar.
  • Real in-app Send: forward your BTX to any address, with a confirm step, a 0.02 BTX max-fee guard, and a dust check. Your keys never leave your machine.
  • Restore an old node wallet: if you mined with the old node-backed easyBTX, you can restore that wallet from its recovery file (upload it or paste it) and reach those funds in-app.
  • If you updated from a pool build, your existing receiving address carries in automatically. Nothing to set up again.
  • A passphrase is recommended on create; skip it and the app tells you plainly the key is stored unencrypted on this device.

Notes

  • Keep real holdings in a separate cold wallet. The built-in wallet is convenient for receiving mining payouts, but a hardware wallet or dedicated cold wallet is safer for larger amounts.

v0.4.7

2026-06-02

Pool mining on the Mac is now instant, with no node to download and no syncing.

The headline is speed. In pool mode, easyBTX no longer downloads or runs the full BTX node. Pool mining never needed it, and it added a multi-gigabyte download, long "catching up" syncs, and the occasional crash. Now you open the app, your payout address is already filled in, and your Mac starts mining right away. If you already had easyBTX, your existing payout address carries over automatically, so there is nothing to set up again.

Changed

  • Pool mining on the Mac runs without the full BTX node: it starts instantly, with no blockchain to download, nothing to sync, and no node to crash. Solo mining on the Mac is paused for now while we focus on pool mining; it will return.
  • Your payout address fills in automatically from your previous setup, so an update never leaves the field blank.
  • Mining speed now reads in N/s, the same unit the pool uses, so the number in the app matches your pool dashboard.
  • The app always opens in its tall layout, which fits every screen.

Added

  • A green "Get the BTX Wallet" button in Transactions and in payout settings, linking to the standalone BTX wallet.
  • An optional action to reclaim disk space by removing the old node data you no longer need in pool mode. Your wallets are never touched.

v0.4.6

2026-06-01

Mac pool mining works again, plus a live GPU stats panel.

The headline is a fix. Pool mining on the Mac, which broke in 0.4.5, works again. A change made while bringing easyBTX to Windows pointed the Mac at the wrong mining helper, so mining would not start. This restores it. If you updated to 0.4.5 and could not start mining, this fixes it, and the Mac behaves exactly as it did in 0.4.4.

Fixed

  • Pool mining works again on the Mac. A 0.4.5 change for the Windows version pointed the Mac's mining engine at the wrong helper, so mining would not start. Restored to how it worked in 0.4.4.

Added

  • A live GPU stats panel in the About screen: usage, clocks, power, temperature, memory, and fan, updated while the panel is open. The Mac shows usage, power, and temperature; Windows shows the full set read from your NVIDIA card.

v0.4.5

2026-06-01

easyBTX comes to Windows.

This is the first Windows release. easyBTX now mines BTX on Windows PCs with an NVIDIA RTX 30-series GPU or newer, using the same one-app, one-click, self-custodial approach as the Mac version: you bring an NVIDIA card, pick a payout address, and your GPU joins the pool. The Mac version (Apple Silicon, Metal, solo or pooled) is unchanged, and picks up a couple of shared improvements in this release.

Added

  • Windows support. Pool mining on NVIDIA GPUs (RTX 30-series or newer), with the CUDA solver bundled in the installer. There's no blockchain to download: you add a BTX payout address and start mining.
  • Your mined balance now shows in the app on Windows. As there's no local wallet, easyBTX reads the balance of your payout address from the public block explorer, so your pool earnings are visible at a glance.
  • A supported-hardware list in the info screen, so you can check whether your machine can mine, on both Mac and Windows.

Changed

  • The About screen is reorganised: your community and private mining stats sit at the top, with clean side-by-side Mac and Windows hardware cards below.

v0.4.4

2026-05-30

Sending works again, your own private mining stats, and bigger, calmer windows.

A focused follow-up to 0.4.3. The headline is a fix: sending BTX from the app works again after a recent build could fail a send with a misleading message. Alongside that, the About screen now shows your own mining stats, the pop-up windows all open in the same roomy shape, and copying a transaction's explorer link is one tap.

Added

  • Your mining: a private stats panel in About showing how long you have mined in total, your average speed, your accepted shares, and the day you started. It lives only on your Mac and is never uploaded.
  • A "Copy link" button on each transaction, so you can copy its block-explorer link and paste it anywhere.

Changed

  • About, Settings, Transactions, and the info pop-ups now open in one larger, consistent window that is easier to read.
  • Settings has a cleaner side menu. The Links section now points to the official BTX protocol site and, separately, a live-price site (a third party; not financial advice, and easyBTX is independent of it).

Fixed

  • Sending BTX from the app works again. A recent build could reject a send with a misleading "check the address" message even when the address was fine; that is fixed, and the error messages now describe the real cause.

v0.4.3

2026-05-30

Pause and resume, a calmer restart, more privacy, and your Mac on the pool dashboard.

This release builds on the 0.4.0 redesign with a batch of quality-of-life work. Stopping now keeps your node warm and offers a green Resume, the long "getting ready" wait after a restart explains itself instead of looking stuck, and you can hide your balance with one tap. Pooled miners can now show their Mac's live GPU numbers and chosen name on the minebtx dashboard.

Added

  • Pause and Resume. The control reads "Pause" while mining, then a green "Resume" afterwards instead of a cold "Start". Your node stays warm in between, so you can pick straight back up.
  • A privacy eye next to your balance hides it behind dots until you reveal it, handy when you are screen-sharing or in public. Your choice is remembered.
  • Balance decimals: show the full 8 places, or a shorter 3 for a quick glance. This changes the display only, never what you hold or send.
  • A clear live status while the node gets ready after a restart. Instead of a frozen "Working...", it explains it is rebuilding your private balance index, shows an estimate and the time elapsed, and notes that the blockchain is already up to date.
  • CPU, GPU, and pool-or-solo checks on the mining screen, so at a glance you can see your Mac is mining on the GPU and connected the way you expect.
  • Live GPU readings for the minebtx pool dashboard. easyBTX reports your Mac's GPU use and power to the pool (no admin rights needed), so your worker can show real numbers instead of blanks, and the name you set in Settings identifies your machine.
  • A quiet background tidy-up that clears old repair leftovers on installs left running for a long time, so they do not pile up on disk.

Changed

  • Settings now opens in your current theme. It used to always show in light; now it matches the app, so a dark app keeps Settings dark too.
  • Settings has a cleaner sidebar layout, with theme cards and a "favorite layout on startup" choice.
  • The info popups ("How mining works" and the others) now match the Settings style: a roomier, calmer window that reads more easily.

Fixed

  • The Upstream sources panel in Settings no longer shows "Latest unavailable" on every row. It fetches the real latest versions again.

v0.4.0

2026-05-29

A fresh look, and pool mining now pays your external wallet.

easyBTX has a new design. The default is a wider "control room" window that spreads everything across three calm columns, so nothing runs off the bottom of the screen once your node fills with live information. There's a new theme switch too — Dark stays the default, with Light if you prefer it and a System option that follows your Mac and switches on its own. And pool mining now honors your external payout address, the same way solo mining already did, so you can mine on a laptop that never holds the keys to your coins.

Added

  • A new wide "control room" layout, now the default: the status screen on the left, the mining display, power, and wallet down the middle, and your live network and pool numbers on the right. The older Tall, Compact, and Mini layouts are still one click away.
  • Dark, Light, and System themes. Dark stays the default; choose Light if you prefer it, or System to follow your Mac and switch on its own. Remembered.
  • A quick button in Settings for every section (Node, Mining, Appearance, Data location, Wallets, Payout, Backup, Updates, Maintenance, New account, Upstream, Links). Tap one to jump straight to it.

Changed

  • Pool mining now sends your rewards to your external payout address when you have one set. Before, only solo mining did. Either way the coins never touch this Mac's wallet, so a compromised laptop never had the keys.
  • The easyBTX tool fee is now 4.99% of mined rewards (it was 3.5%). It is still time-sliced and disclosed up front, and the pool's own fee (2.5%) is unchanged, so pooled mining comes to about 7.5% total. Everything else goes to your wallet.
  • Settings is laid out as clean tiles that sit side by side when there is room, and reads well in both Light and Dark.
  • "Audit / Overview" is now simply "Transactions".
  • The setup checklist is clearer. Each step becomes a green check with a plain label of what happened ("BTX node and chain downloaded", "Node synced to the latest blocks", "Mining"), instead of staying an orange to-do.
  • The easyBTX wordmark in the header is a little larger, in a slightly slimmer bar.

Fixed

  • "Heal disk space" now reports the true amount it freed, including the large one-time snapshot, instead of under-counting it and freeing the rest quietly on the next start.
  • Your node no longer looks like it reset to "block 0 of 0" after you heal disk space or restart. It remembers where it was and shows that while it confirms, rather than looking like a fresh sync from scratch.
  • A returning, already-synced node no longer sits in a long startup wait after a heal or restart.

v0.3.1

2026-05-29

Your node never looks broken while it is catching up. After easyBTX has been closed for a while, or shut down the hard way (a crash, a force quit, or replacing the app while it was running), your node sometimes needs a few minutes to catch back up the next time you open the app. Before, easyBTX could mistake that catching-up time for a real problem and show an error. Now it waits calmly, tells you what is happening, and keeps your wallet and coins untouched. It will never offer a repair while the node is simply catching up. There is nothing you need to do.

Fixed

  • easyBTX no longer shows a startup error when your node is only catching up. It now tells the difference between a node that is still working through its data and a node that has actually stopped.
  • The destructive "Fix the node" action is no longer offered while the node is catching up. It now appears only when there is a genuine corruption signal or the node process has actually exited.
  • No phantom "Download the BTX node and chain" step while a recovered node is only warming up with its chain already on disk, so the setup checklist matches reality.
  • Removed the fixed time limit that could cut off a healthy node. A node that is making real progress is now given the time it needs to finish.

Improved

  • A clearer, calmer message while your node catches up, so a normal few-minute wait does not look like a failure.
  • Your wallet and your coins are never touched during startup or recovery. easyBTX restores chain data from a saved snapshot, never your keys.

Under the hood

When your node restarts after being offline for a while or after an unclean shutdown, it rebuilds part of its internal state before it can serve requests. During that window the node is alive and working, but it answers with a "still warming up" status (RPC code -28, returned with an HTTP 500). The previous version treated that as a hard failure and gave up after a fixed 360 second limit, which dumped a perfectly healthy node into an error screen that also dangled a destructive repair button. 0.3.1 classifies every startup probe into three states: ready, warming, or unavailable. A warming node (the -28 status, or a node log that shows a rebuild in progress) is treated as "keep waiting" and is given a generous backstop to finish. A node that never answers at all still gives up at a sensible bound. The destructive repair path stays gated behind the same confirmed-corruption signal it always used, so it can only fire when something is genuinely wrong, never because startup was slow. All recovery safety rules are unchanged: your wallet is always preserved, damaged data is archived rather than deleted, recovery runs at most once per launch, and it refuses to run if the disk is full.

Delivery

Delivered to existing 0.3.0 installs automatically through the in-app updater. Built and published locally; unsigned indie build, Apple notarization is on the roadmap.

v0.3.0

2026-05-28

The "pool compliance + transparency" release. shib's dexbtx pool went v5 on 2026-05-27 with a mandatory pre_hash_block_tier_v18 capability gate and a new mining.subscribe extension dict carrying session_id + per-rig hardware fingerprint. easyBTX v0.2.0 sent only two of the three required fields, which meant Mac workers connected to the pool but never appeared in the worker dashboard. v0.3.0 ships the full v0.3.x handshake, adds the worker.report_metrics heartbeat that unlocks live per-rig dashboard rows, and surfaces the canonical name the pool assigns each rig so users can match their Mac to its row in /stats. On top of that, the first opt-in self-custody feature — solo-mined rewards can now be paid to an external BTX address that has no key on this Mac — and a heap of UX work the v0.2.0 user base asked for in Telegram. cargo test: 195/195 ✅. tsc --noEmit: clean. cargo build --release + npm run build: both green.

Critical fixes

  • dexbtx pool registration is restored for Mac workers. mining.subscribe now sends the full v0.3.x extension dict: protocol_compliant: ["pre_hash_block_tier_v18"], the existing hardware fingerprint (extended with solver_env: {BTX_MATMUL_BACKEND: "metal"}), and a per-session session_id (32 lowercase hex chars matching the reference miner's uuid.uuid4().hex shape, built from SHA256("easybtx-session:" || nanos || pid || counter) so consecutive sessions never collide). Without session_id, the v5 pool quietly excluded Mac workers from the dashboard and the Telegram bot's /stats. mining.set_canonical_name is now handled and the assignment is persisted to ~/.easybtx/canonical_names.json so the pool-assigned label (e.g. M2_PRO-BRAVO-1) survives reconnects. The UI's "This machine's worker:" line now shows that label as soon as it arrives.
  • Node updates no longer take 8 minutes. NodeController::stop polls Child::try_wait for up to 90 seconds before falling back to SIGKILL. Previously the immediate kill landed mid-flush on the btx1z shielded-state LevelDB, leaving an in-flight mutation marker that triggered EnsureShieldedStateInitialized: rebuilding full shielded state from chain on the next start (timed at 7m 57s in the wild). A clean exit leaves no marker and startup goes back to about one second.
  • Repair Node quarantines no longer leak gigabytes forever. New prune_old_quarantines deletes _corrupt-* and _preserve-* directories older than 7 days while keeping the single newest of each pattern as forensics. Runs at app startup (catches stale quarantines from past sessions) and at the end of every repair_node (catches stale quarantines from previous repairs). One stale _corrupt-* was holding 42 GB hostage on the maintainer's machine. Includes 6 new unit tests for the retention logic.

External payout (opt-in self-custody)

  • Solo-mined rewards can now be paid to an external BTX address that holds no key on this Mac. New Settings → Mining payout section: keep the default (rewards land in this Mac's local wallet) or route them to an address you control elsewhere — a hardware wallet, a phone wallet, a cold address. The point is custody. The realistic threat to a mining box is same-user code execution (an AMOS-style stealer the user is tricked into running), and a machine left mining 24/7 — often an old laptop repurposed for exactly this — is a soft target. Routing rewards to an external address means the accumulated coins never had a key on the mining machine at all. Pasted addresses are format-checked at the IPC boundary (bech32, accepts the btx1z… post-quantum prefix; catches wrong-network paste, leading/trailing whitespace, and homoglyphs like b/i/o) with a live "Test format" button; the node's validateaddress RPC does the full checksum check when it's up.
  • The disclosed 3.5% dev fee is unchanged. The payout engine was generalized from the old binary user/dev FeeAccrual to an N-recipient weighted round-robin (PayoutScheduler) with the dev fee as one mandatory recipient. A unit test proves the realized dev share still converges to 3.5% over 1000–2000 chunks regardless of the user's configuration, so adding an external payout never shifts the split.
  • Solo only in this release, and the app says so loudly. v0.3.0 routes the external payout for solo-mined coinbase only — pool rewards still land in the local wallet (external pool payout is v0.3.2). If an external payout is configured AND you're in Pool mode, a red banner on the main view spells it out, and the Solo→Pool switch dialog repeats the caveat, so a security-minded user can never quietly assume their pool earnings are leaving the machine.
  • Choosing "Local wallet" fully reverts. Selecting the default radio now clears the persisted split (clear_payout_split), not just hides the form, so mining returns to the local wallet immediately instead of silently continuing to pay the previously-set external address.

Pool / mining protocol

  • worker.report_metrics heartbeats every 60 seconds. New tokio::time::interval branch in the stratum select loop sends {session_id, timestamp, cpu_util_pct, ram_gb_used, gpus: [{gpu_uuid, util_pct, power_w, temp_c}], solver_nps, shares_session_total} so the pool dashboard can render per-rig CPU / RAM / share counters. CPU% and RAM-used come from one top -l 1 -n 0 call run on an async subprocess with a real 4-second tokio::time::timeout, so a wedged top can never stall the stratum reader, the solver child management, or pool submits. GPU util / power / temperature are reported as JSON null on macOS because powermetrics requires root (per shib's note on macOS metrics); the row still appears in the dashboard, the live-instrument fields just show a dash.
  • One-click "Open this machine in the pool dashboard." The existing pool dashboard button now writes ?worker=<canonical_name> into its URL the moment the pool assigns a canonical name. The dashboard is a SPA today so the query param is forward-compatible; if dexbtx adds per-worker routing later it starts working without an app update.
  • solver_env: {BTX_MATMUL_BACKEND: "metal"} in the hardware fingerprint so the pool's tuning-recommendation engine knows not to suggest CUDA-only knobs (BTX_MATMUL_GPU_INPUTS, BTX_MATMUL_SOLVE_BATCH_SIZE, etc.) to Mac rigs. Forward-compatible: the pool whitelists keys server-side, so the current Metal-only declaration is safe.

UX

  • Updates are impossible to miss now. A prominent orange banner at the top of the dashboard appears the instant the launch update check finds a newer version, alongside the existing corner cue. Clicking Install fires a one-shot prompt: "Also install future updates automatically on launch?" Asking at peak willingness lands far better than the Settings checkbox where nobody goes; an easybtx-autoupdate-asked flag guarantees we never re-prompt if the user declined. The launch update check now runs before first_run_setup so the banner can paint in roughly 300 ms instead of after the slow node spinup begins.
  • easyBTX makes it obvious it bundles its own BTX node. A Telegram user watching "Sync progress 98.5%" still asked the channel "how do I set up a node?" Three small touchpoints now answer the question before it gets asked: the "How mining works" modal opens with "easyBTX runs the full BTX node for you, no separate setup needed"; the setup-stages checklist now reads "Download the BTX node and chain" / "Sync the node to the latest blocks"; the Settings → Node status section starts with "these are the live readouts from that node, not a remote service."
  • Soft backup-wallet nudge. A persistent amber banner above the balance appears the moment you've actually mined some BTX and still haven't backed up. "Save now" opens Settings and scrolls to "Save recovery file." "Later" dismisses for the current launch only (the nudge returns on the next start, because losing a wallet because of a one-time nag-dismiss is not OK). Separate from the existing once-at-setup gate, which fired before the user had anything to lose.
  • Mining-power slider on one row. Label, slider, MAX button, and the live value collapsed from a two-row layout into a single flex row. Saves about 28 px of vertical space. Same Bitcoin-orange accent.
  • "Last share" ticks live. A 1-second setInterval re-renders the relative time on the share counter instead of letting it freeze between 3-second status polls. Skipped while document.hidden so a backgrounded app doesn't burn battery on invisible updates.
  • Settings → Upstream sources panel. Lists the open-source components easyBTX builds on (BTX node btxchain/btx pinned to v0.30.1, MineBTX dexbtx/minebtx, Tauri v2, the public EasyBTX-releases repo). Each row shows the pinned version vs the latest tag fetched live from GitHub's API plus a Current / Update available badge. Maintainer dashboard for tracking when upstreams move past us. Cached for 5 minutes; Refresh button bypasses the cache.
  • Community signals in the About modal. Live tiles for easyBTX installs (sum of GitHub Releases asset download counts), pool miners online now, blocks found in the last 24 h, and network speed. Refreshed on modal open, cached for 60 s. Honest framing: the "miners online" tile is labelled "incl. easyBTX + other clients" because the pool API doesn't yet break out workers by miner_version.

Brand

  • easyBTX is now consistently lowercase in prose. 17 replacements across README, CHANGELOG, NOTICE, and the docs/ folder. URL paths (MendeMatthias/EasyBTX-releases), the Rust EasyBtxState type, and release-pipeline artifact names (EasyBTX.dmg, EasyBTX.app) are deliberately preserved.

Maintenance

  • Low-disk warning banner. Pulls free disk every 3 s on the same status refresh that drives the rest of the UI. Below 1 GB it shows an amber notice; below 500 MB a red one with faster blink. Both display even when RPC is down, which is exactly when the warning matters most (btxd just crashed from a Fatal LevelDB error: No space left on device, RPC is unreachable, the user has no idea why).
  • Settings → Maintenance → Heal disk space. One-click reclaim that drops the unused blockfilter / coinstats btxd indexes, the post-load assumeutxo snapshot, and truncates debug.log if it has crossed 50 MB. For when you need disk back but aren't ready to move the datadir to an external volume.

Pre-release hardening

  • worker.report_metrics collection is async. Replaced the synchronous std::process::Command::output() (no timeout, blocks the tokio runtime worker for as long as top takes) with tokio::process::Command + a real 4-second tokio::time::timeout. A wedged top no longer stalls the stratum reader, solver child management, or pool submits.
  • Single-guard read of pool status in the metrics tick. Folded a two-step lock/unlock of status.lock().await into one guarded scope so shares_accepted and hashps are always observed at the same status-tick generation.

Docs

  • docs/2026-05-28-btx-qid-self-custody.md. Research + 4-phase plan for rooting a post-quantum, self-custodial "qID" (passkey + 2-of-3 Shamir/MPC share split) in a BTX seed, so the external-payout address above can later be one the user holds on a phone/passkey rather than another hot wallet. Forward-looking planning for the bonuz HQ page; no app code depends on it.

v0.2.0

2026-05-28

The "mega audit" polish release. A /cso security audit + a 3-agent functional bug audit found 4 CRITICAL, 10 HIGH, 13 MEDIUM, and a handful of LOW issues in v0.1.13. This release closes all of them in one pass. cargo test: 149/149 ✅. tsc --noEmit: clean. No public IPC was removed, but send_btx gained an explicit subtract_fee: bool parameter (the frontend's Max button passes it); EasyBtxState gained three #[serde(default)] fields (legacy state files still load).

Critical fixes (data-loss / orphaned-process / forced-resync)

  • Multi-wallet wipe blocked on datadir relocation. relocate_datadir now enumerates every wallet under src (any dir containing wallet.dat) and fails closed unless EACH is present + non-empty in dest before remove_dir_all(src) runs. The previous 97% size check only sanity-checked miner/wallet.dat, which would tolerate the silent loss of a smaller secondary wallet.
  • Pool + Metal solver are now properly shut down on app quit. stop_node_blocking signals pool_stop, awaits pool_handle with a 3-second timeout (aborting the JoinHandle on miss), and clears pool status. The solver Command gained .kill_on_drop(true) so a dropped JoinHandle reaps the subprocess instead of leaving it pinned at 100% GPU after Quit.
  • Snapshot.dat is no longer deleted before loadtxoutset actually succeeds. A new persisted flag EasyBtxState.snapshot_loaded is set ONLY when loadtxoutset succeeds (or when getchainstates already reports a snapshot chainstate). All disk::reclaim_disk callers now read that truthful flag instead of setup_complete (which flips on RPC bind, before the background snapshot load). Closing the app mid-load no longer wipes the snapshot and forces a full genesis resync.
  • Solver-output guard prevents nonce-cursor collapse. solve_next_nonce now only advances on tries_used > 0 AND nonce64_end >= solve_next_nonce (monotonic). A degenerate {"found":false} with missing nonce64_end used to reset the cursor to 1 → duplicate-share submissions (code 22).

High-impact fixes

  • repair_node no longer silently switches you to the "miner" wallet. It now reads state.active_wallet (mirroring reclaim_disk_now's pattern) before rebuilding wallet_rpc — the H1 fix from PR #12 that had not yet been applied here.
  • move_datadir_to refuses exFAT / FAT volumes. The list_external_volumes warning is now enforced at the move boundary, not just shown as a tooltip.
  • apply_node_update actually swaps to the new btxd binary. Previously a no-op (new install never reused). It now persists the new tag (EasyBtxState.btx_release_tag), stops the running controller, and respawns against the new binaries; check_node_update/get_node_status honor the persisted tag, so the update banner stops sticking.
  • Mid-solve ntime change resets the nonce cursor. When a non-clean notify changes ntime or merkleroot, the next solve restarts at the start of our nonce window (instead of advancing past low nonces of the new header).
  • clean_jobs=true no longer races a just-exited solver into a stale submit. The clean-kill path drains the dead child's stdout and clears solving_job, so a microsecond-late solver result fails closed at the submit gate.
  • _corrupt-<ts> archive collision can no longer hard-delete the chain. Sub-microsecond timestamps + a -N counter prevent the collision; on archive-rename failure we now return Err and leave src in place (previously the fallback remove_dir_all(src) permanently deleted the corrupted chain, breaking the "never hard-delete" promise).
  • Pool fee accounting matches solo's discipline. Stop / clean-kill / deadline boundaries no longer credit the elapsed kill-time as dev mined_secs; accrual now happens only in the wait-for-solver branch on parseable output with tries_used > 0. The 3.5% dev share can no longer creep upward under stop-churn.
  • Share-lost-on-disconnect is surfaced in the UI. A mining.submit write error now sets last_event = "share lost (disconnect)…" and bumps the stale counter before returning to the reconnect loop.
  • A flaky network can no longer leave "developer fee window…" stuck. A cumulative-attempt-time cap (300s) forces the next session onto the user payout if a single fee window keeps failing to connect.
  • Startup falls back to the default datadir when the external-drive pointer points nowhere. Previously a yanked drive between pointer-write and src-delete left the app stuck on a non-existent path.

Mining + pool correctness

  • Subscribe / authorize failures now log + surface in last_event (previously silently ignored — a pool-side schema bump could kill all pool mining with no UI feedback).
  • submit_id initialized from the connect-time epoch microseconds so ids don't repeat across reconnects.
  • Solo: after a Paused tick, the next iteration skips the fee burst and mines to the user (deficit catches up next un-paused tick). Prevents a single solo block from landing on the dev address during sync-pause flapping.
  • Snapshot idempotency now SHA-verifies any existing snapshot.dat whose size happens to match (previously a wrong-content file of the exact size was accepted without verification).

Wallet / send / audit polish

  • Stable per-wallet receive address. EasyBtxState.wallet_addresses remembers each wallet's address; do_switch_wallet reuses it via address_is_mine instead of minting fresh on every switch.
  • Audit / CSV exports up to 10,000 transactions. (Previous cap of 1,000 silently dropped the older entries of long-running miners.)
  • Send "Max" is now an explicit flag, not a sat-tolerance heuristic. The frontend tracks the Max click; the backend's send_btx(.., subtract_fee) honors it. Sending exactly your balance by hand no longer silently shrinks.
  • Backend send_btx validates amount and rejects overdrafts. Non-finite, zero, negative, and amount > spendable are refused at the IPC boundary (not just at btxd).
  • backup_wallet_cmd refuses paths it cannot canonicalize, and rejects any path containing .. components. The previous "skip-on-canonicalize-failure" gap is closed.
  • European decimal commas in Send. parseFloat is preceded by replace(/,/g, ".") at both Send call sites — 1,5 BTX now parses as 1.5, not 1.
  • Explorer-link btx1 prefix check. addrExplorerUrl now matches the Send-input regex (^btx1[a-z0-9]{20,90}$/i), so audit rows can't link to non-existent explorer pages.
  • Pool payout re-validates the cached address with address_is_mine before handing it to stratum; mints fresh on mismatch.
  • Pool task is properly stopped during repair_node and relocate_datadir (previously continued submitting against a wiped/moving chain).
  • persist_active_wallet is locked. A new STATE_FILE_LOCK serializes the load → mutate → save sequence so a double-click can't lose updates.

Security (the /cso audit)

  • Pool log moved out of /tmp and locked down. Logs now live at $HOME/.easybtx/pool.log (fallback /tmp if HOME is unset), opened with mode(0o600) + O_NOFOLLOW. World-readable / symlink-spoofable surface closed.
  • gpu_uuid sent to the pool is now a salted SHA-256, not the raw IOPlatformUUID. The hash is stable per install (so pool worker correlation still works), but the raw hardware identifier no longer leaves the machine.
  • RpcClient::for_wallet percent-encodes the wallet name into the path. Currently safe by convention (all callers validate); now enforced at the function instead of by reviewer discipline.

Internal / chores

  • Version: 0.1.13 → 0.2.0 (package.json, tauri.conf.json, Cargo.toml).
  • EasyBtxState gained snapshot_loaded, btx_release_tag, and wallet_addresses (all #[serde(default)]; legacy state files keep loading).
  • STATE_FILE_LOCK introduced in state.rs to serialize the load → mutate → save pattern; reset_account / restore_wallet / first_run_setup's state writes now go through it.
  • One known-stale doc-link TODO(H3-followup) left in apply_node_update pointing at the seamless in-session RPC re-arm (the persisted-tag + restart path is shipped; the in-session cookie wait is the follow-up).

v0.1.13

2026-05-28

Added

  • Incoming balance line. A received payment that hasn't confirmed yet (untrusted_pending) now shows as a clear "Incoming … confirming" line instead of looking lost until it confirms. Spendable balance stays trusted-only, so Send can never overdraw.
  • Block explorer links. Transaction IDs and addresses across Send, Receive, and the Audit/Overview open on explorer.minebtx.com (truncated + copy + open). The Send confirm screen shows the full recipient address so you can verify it.
  • Send: "Max" button + safe full-send. A Max button fills your full spendable balance, and a full-balance send now deducts the network fee from the amount instead of failing with "insufficient funds". The recipient address is also sanity-checked before the confirm step.
  • Reclaim space. A Settings → Storage button (and an automatic pass on launch) frees disk by dropping the unused blockfilterindex/coinstatsindex, the post-load assumeutxo snapshot, and an oversized debug.log. The blockchain and your wallet are never touched.

Pool

  • The pool-payouts info popup now shows the real policy (weekly Fridays 18:00 UTC, 0.0001 BTX minimum, 2.5% pool fee) instead of vague wording.
  • easyBTX now identifies to the pool as easybtx/<version> so the pool can segment eBTX miners for stats; hardware info gives your worker a canonical dashboard name.

Fixed

  • Pool block-tier pre_hash. The Metal share-solver now enforces the block-tier pre_hash gate (sigma <= block_target << epsilon) instead of bypassing it for shares, so block-tier shares are valid blocks and the pool's submitblock stops failing with "matmul phase2 proof of work failed". easyBTX declares the pre_hash_block_tier_v18 capability in mining.subscribe. (Solver change lives in btx-main; see docs/patches/btx-prehash-block-tier.patch.)

Changed

  • Mining power is now a live slider at the top of the stats card. It heats up green → orange-red as you push it (5% steps, Max button), and stays in sync with the Settings slider. The old speed/power readout rows are gone, so the card is shorter. An ⓘ on the slider explains best practices (≈50% for light work keeps the Mac cool and quiet; 100% is fastest but hot and drains the battery).
  • The active wallet is now sourced solely from the backend (single source of truth); the frontend no longer re-applies a wallet from localStorage, so the wallet chip and address can't momentarily disagree.
  • Pool earnings card is shorter: the payout explainer moved into an ⓘ popup next to "Accepted shares", and the worker now sits beside the "Open pool dashboard" link so they read as a pair.