MacMine Lab
Apple Silicon only 100% local 7/7 phases complete Open source

A mining laboratory that
never fakes a number.

MacMine Lab is a local, transparent Monero (XMR) / RandomX mining laboratory for Apple Silicon Macs — real XMRig hashing, real pool and P2Pool mining, real thermal/battery safety automation, and real earnings estimates. If a measurement isn't available, it says Unavailable. It never invents one.

3.23 kH/s
Real RandomX benchmark — Apple M4 Pro, 12 threads
↳ measured locally, not simulated. See the Journal for the full run history.

What this is — and isn't

This is an educational tool for running real proof-of-work mining on your own Mac and understanding exactly what it's doing. It is emphatically not any of the things mining software usually gets confused for.

It is

  • Real XMRig RandomX hashing you can watch happen
  • Real pool mining and real P2Pool decentralized mining
  • A CLI and a local dashboard, both talking to the same local backend
  • Automated thermal/battery safety with a hard, un-disableable critical-stop floor
  • Fully auditable — every binary's source and checksum is shown, not just asserted

It is not

  • Cryptojacking, a background miner, or malware
  • Anything that mines on a computer that isn't yours
  • A commercial operation — MacMine Lab takes 0% of anything mined
  • Hidden, auto-starting, or persistent without your explicit action
  • A cloud product — there is no account, no remote server, nothing to sign up for

The actual dashboard

These are real screenshots of the local dashboard connected to a live backend on this machine — not mockups. This showcase page is static; the real dashboard only runs on your own Mac against your own local backend.

MacMine Lab dashboard showing live hashrate, system health, real mining controls, safety status, and recent benchmark runs

Dashboard — live hashrate, real system telemetry (CPU/memory/battery/thermal), real mining controls, and a live safety status panel, all wired to one WebSocket.

MacMine Lab experiment journal showing recommended Eco, Balanced, and Performance thread configs computed from real benchmark data

Experiment Journal — Eco/Balanced/Performance thread recommendations computed from your own measured benchmark runs, never assumed.

MacMine Lab P2Pool page showing real storage requirements and an explicit consent gate before starting a blockchain sync

P2Pool setup — real, sourced storage estimates shown before any button that could start a multi-day, tens-of-gigabytes blockchain sync. Nothing this large ever starts automatically.

Built in seven verified phases

Each phase was built, run, tested against real hardware, and documented before moving to the next — see the full changelog for what was verified at every step.

PHASE 1

Benchmark Engine

Apple Silicon detection, XMRig install/verification via Homebrew, fully-offline RandomX benchmarking, thread calibration.

PHASE 2

Local Backend

FastAPI bound to 127.0.0.1 only, SQLite persistence, a background telemetry sampler, a live WebSocket.

PHASE 3

Dashboard

Next.js + TypeScript + Tailwind + shadcn/ui — live hashrate chart, system health, a real XMRig log terminal.

PHASE 4

Real Mining

Wallet + pool configuration, a network-reachability connection test, live accepted/rejected shares.

PHASE 5

First Penny & Earnings

Live XMR price and network difficulty, an electricity-cost calculator, achievement tracking with honest estimate labeling.

PHASE 6

Safety Automation

Thermal/battery automation with a hard critical-stop floor, real local notifications, an analytics page that refuses to fake a correlation.

PHASE 7

P2Pool

Decentralized, 0%-fee mining via a locally-run monerod + P2Pool, with an explicit consent gate before any large download.

The rule that shaped every phase

If a measurement isn't available, MacMine Lab says so — it never fabricates a hashrate, a temperature, an earnings figure, or a correlation.

01

Every binary (XMRig, monerod, P2Pool) is installed only from its official source, with a computed SHA-256 shown, not just claimed.

02

Estimated revenue, pool balance, and confirmed payout are three different, clearly-labeled things — never conflated.

03

Critical thermal state stops mining immediately and unconditionally — the one safety floor that can't be turned off.

04

The one action that can download 60–250+ GB (a Monero node sync) requires an explicit, restated-cost confirmation — never automatic.

05

Analytics charts say "not enough data yet" below two data points rather than drawing a line through one dot.

06

No seed phrase or private key is ever requested, stored, or transmitted — only a public receiving address.

Run it yourself

Apple Silicon Mac, Homebrew installed. Everything else is handled for you.

$ git clone https://github.com/Gariyuuu/macmine-lab.git
$ cd macmine-lab && ./setup.sh
$ ./macmine benchmark --duration 30
# or, for the dashboard:
$ cd frontend && npm install && cd ..
$ ./dev.sh
Python 3.11 FastAPI SQLite Next.js 16 TypeScript Tailwind shadcn/ui XMRig monerod P2Pool