// last updated 2026-05-22 · plain English, no dark patterns
Bitaxe Baller is offline-first. The desktop app polls your Bitaxe miners on your own LAN and stores everything locally on your machine. We don't run analytics, we don't ship telemetry, we don't track which devices you have or what you do with them. The mobile apps and the optional remote-access feature add a small set of outbound network calls, all listed below, all bounded to a single purpose, all blockable at your firewall.
If a section in this document makes you uneasy, please tell us. We'll either fix it or explain why it's there.
Bitaxe Baller is built by Nathan Baldwin at 465 Media (a sole proprietorship based in New Hampshire, USA). Contact: the contact form or open a GitHub Issue at github.com/465media/bitaxe-baller. We're not a venture-backed startup with a data-monetization runway; the business model is the $29/year Pro tier, full stop.
Nothing leaves your machine except a once-per-hour HTTPS request to api.github.com checking for new app releases. That request contains no identifying information about you, your hardware, or your Bitaxes — it's a static GET that any uninstalled web browser would make. You can block it at your firewall and the app will run forever offline.
Everything else stays local:
config.json in the app's data directorylogs/, one file per device per day/api/system/info on each of your Bitaxes on the LAN every 5 seconds, only over your home networkIf you activate Pro, the app makes one additional outbound call: HTTPS POST to bitaxeballer.com/api/license when you activate, deactivate, or once every 24 hours to revalidate the cached license. The request body contains only your license key (the long hyphenated string we emailed you). No hashrate, no tuning data, no device counts, no usage telemetry. The server responds with whether the key is still valid; we don't read or store anything else from the request.
On your side, Pro adds a persistent SQLite database (history.db) holding 90 days of bucketed metrics from your local Bitaxes. It lives next to your other app files and never leaves your machine.
Pro users can opt into remote access (added in v1.9.0) so you can reach the dashboard from outside your LAN. When enabled, your desktop app opens an outbound WebSocket to relay.bitaxeballer.com. Remote browsers connect to the same relay and get routed to your local app.
The relay is dumb routing — it validates your license key against our license server, then forwards /api/* JSON messages by license key. It does not read, log, or store the contents of those messages beyond what's needed to debug an outage (anonymized request rates, error counts, no payloads). The persistent state is in-memory; restarting the relay clears it.
You can disable remote access at any time in the Pro modal and the connection closes immediately. License key remains the only credential — there are no user accounts, passwords, or session cookies tied to your identity.
The leaderboard at bitaxeballer.com/leaderboard is fully opt-in. Until you turn it on in the Pro modal of the desktop app, nothing about your fleet leaves your machine for this feature. Once you do opt in, here's the complete list of what we collect and why:
config.json and sent with each submission. Used as a stable identity signal so the leaderboard doesn't lose your spot if you change email. Has no relationship to any hardware identifier; deleting config.json resets it.Turning it off: 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 activity and is then deleted with all its stored data (including the captured IP). For immediate deletion, contact us and we'll remove it manually within 48 hours.
The iOS and Android apps are wrappers around the same remote-access flow. On first launch you paste your Pro license key; it's stored in the platform's local preferences (iOS UserDefaults / Android SharedPreferences) and gated by your device's biometric lock (Face ID / Touch ID / Android biometric) on every cold launch. After biometric unlock, the app exchanges the key for a 24-hour session token with our relay and uses that to fetch your fleet data through the relay.
The mobile apps do not access your contacts, camera, photo library, microphone, location, calendar, or any other system resource beyond network + local-preferences storage + biometric prompts.
If you buy Pro, we use Stripe for payment. Stripe is the data controller for the payment transaction itself (card number, billing address, IP at time of purchase). We receive an email address, license key, customer ID, and subscription status from Stripe so we can email your license, validate it later, and email renewal reminders. We never see your card number.
If you subscribe to product updates or fill out the contact form, we store your email address in Acumbamail (our email service provider) until you unsubscribe. We use it only to send Bitaxe Baller release announcements + reply to support questions. We don't sell or rent the list.
None. The marketing site at bitaxeballer.com has no cookies (the only client-side storage we touch is localStorage to remember your theme + hashrate-unit preferences). We do not run Google Analytics, Plausible, Fathom, or any other tracking. Cloudflare sits in front of the site and may collect aggregated request data per its privacy policy; we don't have access to per-visitor data from them.
The app is not directed at children under 13 and we do not knowingly collect data from children. If you're a parent and believe your child has provided us information, contact us and we'll delete it.
Contact support for any of the above. We aim to respond within 7 days.
We'll update the "last updated" date at the top whenever this page changes. Material changes (new data we collect, new third-party processor) get an in-app notification and an email to active Pro subscribers. Day-to-day word edits don't trigger that.
The desktop app and the mobile wrapper are MIT-licensed and open source at github.com/465media/bitaxe-baller. If you want to verify any claim in this policy, you can read the actual source. The license-validation HTTP call, the relay protocol, and the device polling loop are all in plain Python and JavaScript.