Support

// search the answers below, or jump to a section

getting started

Two ways to run Bitaxe Baller — pick whichever fits.

Option A — the standalone app (most users)

A real native desktop app on both Mac and Windows. Click the icon, a window opens with the dashboard. No terminal, no Python install, no config files. The Mac build is signed + Apple-notarized; the Windows installer isn't yet code-signed (SmartScreen will prompt on first launch — one-click bypass).

Option B — Umbrel home server (one-click install)

Bitaxe Baller ships as a native Umbrel community app — install it alongside Bitcoin Core, Mempool, Electrs, etc., and your fleet stays monitored 24/7 without leaving your Mac open. Same UI as the desktop apps, just running on your Umbrel.

  1. Open your Umbrel dashboard (whatever http://umbrel.local or the IP your Umbrel uses).
  2. Go to App Store → ⋯ menu (top right) → Community App Stores → Add Custom Store.
  3. Paste this URL: https://github.com/465media/umbrel-bitaxe-baller-store and confirm. Bitaxe Baller appears in the store.
  4. Click Install. Wait ~30 seconds for the container to pull and start.
  5. Open the new Bitaxe Baller tile on your Umbrel dashboard. The dashboard loads in your browser at http://umbrel.local:13700 (Umbrel's app proxy) or directly at http://umbrel.local:13701.
  6. Add your Bitaxes via the scan button or paste IPs — same flow as the desktop apps.

Data persists at ~/umbrel/app-data/bitaxe-baller/data/ on your Umbrel — config.json, logs/, and (Pro) the SQLite history db. Survives reinstalls and Umbrel updates. The community-store repo source is at github.com/465media/umbrel-bitaxe-baller-store if you want to audit the manifest before installing.

Heads up on ports: Umbrel runs Bitaxe Baller on ports 13700 / 13701 instead of the usual 5050 to avoid clashing with other Umbrel apps. The mDNS publisher still announces bitaxe-baller.local, so phones and laptops on the same LAN can hit either URL.

Option C — run from source (developers, Linux users, the curious)

The dashboard works from a clone of the GitHub repo. You'll get the same UI but in your browser instead of a native window.

git clone https://github.com/465media/bitaxe-baller.git
cd bitaxe-baller
python3 -m venv venv && source venv/bin/activate
pip install -r requirements.txt
python app.py
# then open http://localhost:5050 (or :80 with sudo)

Requires Python 3.11+. Works on macOS, Linux, and Windows (via WSL or native Python). Full instructions in the README.

Open the dashboard

On the host machine (the Mac or Windows PC running the app), the dashboard appears in its own native window when you launch Bitaxe Baller. No browser tab needed.

From other devices on your LAN (phone, iPad, laptop), the same dashboard is reachable in any browser at:

Add your first miner

Either paste your Bitaxe's IP (the one shown on its OLED) into the "+ add device" form, or hit ⚡ scan network and Bitaxe Baller will find it for you. Click the resulting card to open the device's full detail page.

frequently asked questions

Install & platform

The dashboard shows "scanning network…" but the cycling IP stays at "..."

This usually means the page is loaded via a hostname (like localhost or bitaxe-baller.local) and the LAN-info request hasn't returned yet. It should resolve within a second. If it stays stuck, your firewall or browser extensions may be blocking the call to /api/lan-info.

"This app can't be opened" on macOS

If you see "Bitaxe Baller can't be opened because Apple cannot check it for malicious software", you likely got an unsigned build, or notarization hasn't propagated yet. Right-click (or Control-click) the app and choose Open; macOS will give you a different prompt with an "Open" button. Future signed releases won't show this.

Windows SmartScreen warning

Until we add Windows code signing, expect "Windows protected your PC" on first launch. Click More info, then Run anyway. The app is open source — you can verify its contents on GitHub.

Port 80 vs 5050 — which one does the app use?

The app tries to bind port 80 (so you get a clean URL like http://bitaxe-baller.local) and falls back to :5050 if it can't (typical when not running as root). When falling back to 5050, the URL becomes http://bitaxe-baller.local:5050. Both work; the only difference is whether you have to type the port. Run the CLI version with sudo to get port 80 cleanly. The packaged Mac/Windows apps handle this for you.

I added a device but it shows "offline"

Three usual culprits:

  • The IP changed because of DHCP. Check the OLED display, remove and re-add. Long-term fix: pin a DHCP reservation for each Bitaxe in your router so the IP stays stable.
  • The Bitaxe is on a different VLAN / subnet than the host running Bitaxe Baller — they need to be on the same broadcast domain.
  • The Bitaxe is up but its web interface crashed. Powercycle it.

Tuning & safety

Why is the recommendation panel showing "Gathering baseline data"?

The recommendation engine waits ~3 minutes after a device is added or its benchmark is reset before producing real tuning suggestions. This avoids firing on noisy startup data. Just give it a few minutes.

What do the colored card borders mean?

The home page outlines each device card based on the highest-severity recommendation:

  • Red — critical: VR or ASIC overheating, HW errors over 1%, or device offline. Act fast.
  • Yellow — warn: HW errors climbing, hashrate destabilized, temps elevated. Worth a check.
  • Green — good / tunable: stable with headroom; the engine has a tuning suggestion you can take.
  • Dim — running clean, nothing to act on right now.
Is it safe to use the "Max" preset?

The "Max" preset runs at 625 MHz / 1225 mV — that's near the chip-degradation threshold for the BM1370 and is intended for short benchmark sweeps, not 24/7 operation. For daily use we'd recommend Mild OC or Balanced. Always watch the VR temperature — that's the part that fails first on overclocked boards.

Pools & chains

Pool changes don't take effect

The Bitaxe firmware applies pool config only on a fresh stratum connection. Make sure "restart device after apply" is checked when you submit the pool form (it's on by default). If you unchecked it, manually click the restart button at the top of the device detail page.

My miner is in the wrong coin's group (e.g. a BCH miner showing under BTC) (v1.16.6+)

The home page groups miners by coin, which Baller auto-detects from each miner's pool URL and payout address. That works for most pools — but a legacy 1… / 3… address is byte-for-byte identical between Bitcoin and Bitcoin Cash, and if your pool is a private IP (your own node, e.g. a BTC and a BCH node on the same Umbrel), there's no other hint to go on. In that case Baller can't tell the chains apart and falls back to BTC — so a BCH miner lands in the BTC group.

The fix: pin the chain manually. Open the miner's detail page; on the line under its name (model · firmware · uptime) there's a chain dropdown. Pick the right coin and the miner immediately moves to the correct group — with no change to the miner itself.

Bitaxe_004 192.168.1.226 BM1370 · firmware 2.13.1 · uptime 5d · chain BCH Auto-detect can't tell a BCH legacy address from a BTC one — so pin it here → auto · BTC BTC BCH BSV XEC DGB NMC
// the chain dropdown on a device's detail page — pick the coin it's mining

A few notes:

  • The override is saved per device and survives restarts. Set it back to Auto any time to return to auto-detection.
  • It's per install — if you run Baller on more than one machine (or on Umbrel as well), set the override on each one; the setting doesn't sync between installs.
  • Most users never need this — auto-detection handles public pools fine. It's specifically for miners pointed at your own node with a legacy address.

Remote access & mobile

How does remote access work? (free + Pro)

Remote access lets you reach your Bitaxe Baller dashboard from anywhere — your phone on cell data, a laptop at a coffee shop, a tablet on a different network. No port forwarding, no VPN, no fixed IP.

It's free. As of v1.16.5 you no longer need Pro. Free accounts can view their first miner remotely (and in the phone app); Pro shows your full fleet. The per-tier limit is enforced on our relay server, not in the app.

Two ways to view remotely:

  • Any web browser — go to relay.bitaxeballer.com. Pro users sign in with their license key; free + paired access uses the phone-pairing flow below.
  • The iOS / Android app — pair it once to your desktop and view your fleet from your pocket. See "How do I view my fleet on my phone?" just below.

How to turn it on (desktop): open the Pro modal (the chip in your dashboard's top-right header), find the Remote access section, and click Turn on — the status flips to green ("Connected") within a second. Pairing a phone turns it on automatically.

How it works under the hood: your desktop app opens an outbound WebSocket to our relay; it accepts no inbound connections, so nothing on your network is exposed. Remote browsers and phone apps connect to the same relay and get routed to your local app. All product logic — tuning, safety bounds, alerts — stays on your machine. The relay is dumb routing, and it's what caps free-tier views to one miner.

Security: Pro sessions use your license key; phone pairings use a short-lived pair code that the app exchanges for a per-device token (revocable any time from the desktop's Pair section). Sessions are 24-hour signed tokens. Turn remote access off in the Pro modal and every connection closes immediately. If you ever suspect a leak, deactivate at bitaxeballer.com/account and the relay drops all sessions tied to your key.

Read-only for now: the remote view lets you monitor your fleet — hashrate, temps, efficiency, severity — but tuning, scanning, and adding devices stay on the LAN dashboard.

How do I view my fleet on my phone? (iOS + Android)

The Bitaxe Baller mobile app is a viewer for the fleet your desktop install is already monitoring. Pair it to your desktop once, and it shows your miners wherever you are.

1. Get the app (free to download): iPhone / iPad — App Store · Android — Google Play.

2. Pair it to your desktop: on your desktop dashboard, open the Pro modal (chip, top-right) and find Pair iPhone or Android. Click Pair a new device — a QR code and a 22-character pair code appear, and remote access switches on automatically. In the app's pairing screen, scan the QR with your camera or type the code. The code expires after 60 seconds; click Generate a new code if it runs out.

3. That's it — the app shows your fleet's hashrate, temps, and stats, updating live over the relay. Free accounts see their first miner; Pro shows every miner.

No app reinstall needed for free remote access — if you already have the app, it picks up the free tier automatically once your desktop updates to v1.16.5 or later. Nothing to download again from the App Store or Play Store.

Phone showing a blank fleet? Check two things on the desktop: (1) in the Pro modal, the Remote access status is green ("Connected"); (2) your desktop app is updated to v1.16.5 or later — older versions only allowed Pro remote access, so a free pairing landed on an empty screen. Then reopen the phone app; it reconnects on its own.

Pro & licensing

What does Bitaxe Baller Pro include?

Pro is the paid tier launched in v1.8 (2026-05-14). $29 per year, recurring. One license activates on up to 5 desktop installs (Mac, Windows, or Umbrel) — each install monitors unlimited Bitaxe miners on its LAN.

Shipped features:

  • Bulk tuning — multi-select cards on the home page, apply a preset or custom freq/voltage/fan to every selected miner in one click.
  • Auto-tune sweeps — automated frequency probing with hardware safety guardrails. Aborts immediately if VR or ASIC temp hits 65 °C or HW errors hit 5 %.
  • Long-term history — 90 days of persistent local SQLite metrics on every device detail page, with 24h / 7d / 30d / 90d range selectors.
  • Discord webhook alerts — pings for offline devices and VR/ASIC temperature threshold breaches. 30-minute cooldown per trigger.
  • Remote access (free or Pro, v1.16.5+) — reach your dashboard from anywhere. The app opens an outbound connection to relay.bitaxeballer.com; view from any browser at relay.bitaxeballer.com or from the iOS / Android app. Free shows your first miner; Pro shows the full fleet. No port forwarding, no VPN. Monitoring is read-only — tuning stays on the LAN dashboard.

Shipped in v1.8.2: in-place auto-updates for Pro users on macOS and Windows (Chrome-style — the app downloads new versions in the background and installs on next launch).

Coming next: email + Telegram alert channels, mobile apps (iOS + Android, building on the same relay).

The free tier remains fully featured for single-device monitoring and tuning. Nothing currently in the free tier moves behind a paywall — Pro is purely additive. Buy Pro — $19 intro (then $29)Buy Pro — $29/yr · Full feature breakdown →

How do I activate Pro?

After purchase, you'll receive a license key by email (a long hyphenated string). In the dashboard, click the dim grey Pro button in the top-right header. Paste the key, hit Activate Pro. The button turns accent-green and Pro features unlock instantly — no restart needed. The modal then shows your account email, machine label, key suffix, and renewal date.

Moving to a new machine? Open the Pro modal on the old one and click Deactivate this machine to free the slot. Then paste the same key on the new machine.

You can also manage your machines from any browser at bitaxeballer.com/account — sign in with your key + the email you bought with. The portal also has a "Lost your license key? Recover by email" option if you ever lose the original email.

Where do I find Pro settings? (Pro modal cheat sheet)

Every Pro feature is configured in one place: the Pro modal. Open it by clicking the PRO chip in the top-right of the dashboard header (next to the theme toggle). The chip is dim grey when Pro is inactive, accent-orange when it's active — clicking either way opens the modal.

Inside the modal, sections appear in order:

  • Account info — email, machine label, key suffix, renewal date.
  • Remote access — toggle for the relay-based remote dashboard and phone pairing. Free (1 miner) or Pro (full fleet).
  • Public leaderboard — display-name input + "Submit my best shares" toggle (v1.11.0+). Save once and your scores show up on bitaxeballer.com/leaderboard within ~5 minutes (immediately on a new personal-best).
  • Deactivate this install — frees one of your 5 install slots so you can move the license to another machine. (You're not limited on the number of Bitaxe miners any one install can monitor — only on the number of installs the license is activated on.)

Other Pro features that don't live in the modal:

  • Bulk tuning + multi-select — click the empty checkbox in the top-left of any device card on the home page; a bulk toolbar appears.
  • Auto-tune sweeps — on each device's detail page, "auto-tune sweep" section under tune & control.
  • Discord alerts — at the bottom of the home page, expand the "alerts" section.
  • Long-term history charts — at the top of each device's detail page, the "history" panel.

If the PRO chip isn't visible at all, you're running a pre-v1.7 build — restart the app or download the latest from bitaxeballer.com.

What happens if I cancel Pro?

Your license stays active through the end of the period you've paid for. After that, the dashboard reverts to the free tier on the next launch — Pro features disappear, but everything you can do with the free tier keeps working. Your local data (device list, tuning history CSVs, SQLite history database, configured alerts) stays on your machine; we never delete anything stored locally. If you reactivate later, the SQLite history will still be there waiting.

Leaderboard

How does the public leaderboard work? (v1.12.0+)

The public leaderboard ranks opted-in users by best-share difficulty across four categories: all-time best (career best-share), this week (rolling 7-day window), per-model (top 10 within each Bitaxe model — fair fight for Gamma owners against other Gammas), and lucky (best-share ÷ avg hashrate — small miners can win this against fleet kings on luck).

Free to enter and view. As of v1.12 the leaderboard is open to all users — Pro and free. Free users authenticate with a verified email; Pro users authenticate with their license key. Either way, you opt in via the Pro modal in your desktop app: set a display name, set an email (free tier only), tick "Submit my best shares." First submission per email triggers a one-click verification link to your inbox; clicking it makes you eligible for monthly prizes.

How to turn it on: open the Pro modal (PRO chip, top-right of the dashboard header). In the Public leaderboard section, type a display name (1-30 chars, letters/numbers/spaces/._-), tick "Submit my best shares," click Save. Your devices start showing up on the public board within 5 minutes (or immediately on a new personal-best).

What we send per device: display name, MAC address, model (Gamma / Supra / Ultra / Hex / NerdQaxe), best-share difficulty (career + session), 15-minute average hashrate (for the "lucky" category), app version.

What we do NOT send: your IP, your location, your email, your real name, or your license key in the clear. The server stores only the SHA-256 hash of your license key, so even a full database leak would not reveal license keys.

Display name policy: 1-30 chars, alphanumeric + spaces + ._-. A light profanity blocklist runs server-side; obviously-bad names are rejected with 400. The desktop app doesn't moderate — it just sends what you type, and the server decides.

Turning it off: uncheck "Submit my best shares" and click Save. New submissions stop immediately. Existing entries decay off the public board after 30 days of inactivity (your row simply disappears from the rankings).

Best-share is a lottery. Two devices with identical hashrate can have wildly different best-shares — it's the highest random value pulled from a stream, not a function of total work. A 1.2 TH/s Gamma can absolutely beat a 10 TH/s Supra on best-share. That's why the "lucky" category exists.

How does the monthly prize draw work? (v1.12.0+)

On the last day of each month at 23:00 UTC, we draw winners and runners-up per Bitaxe model (Gamma, Supra, Ultra, Hex, NerdQaxe). The math is intentionally model-segregated because different chips have different physical share-rate distributions — pitting a 1.2 TH/s Gamma against a 10 TH/s Supra on raw difficulty isn't a contest, it's hardware physics.

Prizes per model:

  • #1 — free month of Pro. You receive a real Pro license key with a 30-day expiry. Paste it into the Pro modal and your subscription unlocks for 30 days; if you already have Pro, your existing renewal extends by 30 days.
  • #2 through #5 — 20% off coupon. A one-time Stripe promotion code emailed to you, valid for 60 days, redeemable at /pro.

Eligibility to win (designed to balance "anyone can play" with "no dominators"):

  • Verified email. Click the link in the verification email we send on first submission. Unverified emails climb the board but can't win.
  • 24 hours of polled activity. Your device must have been talking to the leaderboard for at least 24 hours before the draw. Stops "spin up an install, fake a big best-share, claim prize" cycles.
  • Not flagged. Auto-detection rules flag suspicious entries; flagged rows are hidden from the public board and ineligible until reviewed.
  • 90-day winner cooldown. The same email can win #1 at most once per quarter. Runner-up coupons aren't cooldown-restricted.
  • ≥3 entries in your model. If only one or two people are competing in your Bitaxe model, we skip the draw for that month (no contest with one player).

If you win or place top-5, the email comes to whatever address you used at signup. Check the address you can actually receive at — we don't have a way to recover a wrong email after the draw.

Does the leaderboard share my IP? Email? Anything else? (Privacy)

Short version: display name + MAC + model + best-share difficulty + 15-min hashrate are the only things shown publicly. Everything else is kept private and used solely for prize delivery and abuse moderation.

What's stored on the server:

  • Display name (chosen by you, public).
  • MAC address (used to dedupe devices; not displayed publicly — only the display name and model are shown).
  • Model (e.g. BM1370 → shown as "Gamma" publicly).
  • Best-share difficulty (career + session + week + month rolling maxes).
  • 15-min hashrate (used for the "lucky" category).
  • Email (free-tier only; used solely to deliver prizes and send the verification link; never marketed to, never shared).
  • Install UUID (free-tier only; generated locally on your machine; used as a stable identity signal so the leaderboard doesn't lose your spot if you change your email).
  • License key hash (Pro-only; SHA-256 of your key, NOT the raw key — even a full database leak doesn't expose license keys directly).
  • Connecting IP address (captured for abuse moderation only: per-IP rate limiting, sybil-attack detection. Never sold, never shared with third parties, never analyzed for marketing. Auto-purged 30 days after your row's last activity, same TTL as the rest of the leaderboard entry).

What's NOT stored: your real name, your location, your IP geolocation (we don't look it up), any browser cookies on the leaderboard page, any analytics, any third-party tracking, your other Bitaxe Baller config (devices, tuning settings, pool details — those never leave your machine).

Turn it off entirely: uncheck "Submit my best shares" in the Pro modal and click Save. New submissions stop immediately. Your existing row decays off the public board after 30 days of no submissions and is then deleted with all its stored data including the captured IP. If you want immediate deletion, contact support.

Data & privacy

Does Bitaxe Baller send my data anywhere?

The free tier sends nothing. Polling, tuning, logging all happen on your local network. The only outbound call is a once-per-hour update check to api.github.com for new releases.

The Pro tier adds one outbound call by default: license validation against bitaxeballer.com/api/license on activation, plus a once-per-24-hour cached re-check. The request contains only your license key — no hashrate, no tuning data, no device info, no telemetry.

If you opt in to remote access (free or Pro), the app also opens an outbound WebSocket to relay.bitaxeballer.com so you can reach your dashboard from outside your LAN. That socket carries your /api/* responses (device telemetry, tuning state) only when a remote browser tab is actually fetching them — idle when no one's looking. Disable it at any time in the Pro modal and the connection closes immediately. All three outbound calls are blockable at your firewall if you want pure airgap; the app degrades gracefully when offline.

Where are my CSV logs?

One file per device per day, in the logs/ folder next to the app. Filename pattern: <label>_<YYYY-MM-DD>.csv. Open in Excel or pandas to compare tuning settings over time.

still stuck?

Two ways to get help:

Reminder: Bitaxe Baller is provided AS-IS with no warranty. Overclocking can permanently damage your hardware. Stay within the safety bounds and don't run "Max" 24/7. See the README for the full disclaimer.