The fast Grin GPU miners, GMiner and lolMiner, are closed source. The open Cuckatoo Reference Miner runs at less than half GMiner's speed.
MXGM is open and faster than both. A Cuckatoo32 miner written from scratch in Rust, Apache-2.0, all source on my Forgejo.
https://git.maxnflaxl.dev/maxnflaxl/MXGM/releases/tag/v0.1.163
Speed
One RTX 4070 Ti SUPER, watts as the card reports them:
| miner | g/s | W | J a graph |
|---|---|---|---|
MXGM, --mclk 5001 --cclk 2300 --fan 30 | 1.316 | 192.7 | 146 |
| MXGM, stock | 1.641 | 281.6 | 172 |
GMiner 3.44, its best (--mclk 5001 --cclk 2400) | 1.090 | 174.8 | 160 |
| GMiner 3.44, stock | 1.29 | 276.2 | 214 |
| lolMiner 1.98a, stock | 0.93 | 219.7 | 236 |
| Cuckatoo Reference Miner 0.3.3 | 0.547 | 217.4 | 397 |
MXGM is the fastest miner at every setting I tried. GMiner at its best draws less power, but MXGM spends less per graph: 146 J to GMiner's 160. Numbers people sent me from an RTX 4060 and a GTX 1080 Ti are in benchmarks.md.
Apple Silicon
On Macs MXGM runs the reference miner's Metal kernels, mean trimming only for now. An M3 Max does 0.31 g/s on battery, about a fifth of the 4070 Ti SUPER. Not worth mining with, but enough to try it on a laptop.
The reference miner in Rust
Last year the Grin forum discussed funding a Rust rewrite of NicolasFlamel1's Cuckatoo Reference Miner:
https://forum.grin.mw/t/request-for-funding-cuckatoo-reference-miner/12033
That attempt never produced a cycle that passed a correct verifier, and it stalled. MXGM does mean, slean and lean trimming like the reference miner and accepts its command-line flags. Its verifier is tested against Grin's known-answer vectors, with an optional cross-check against Tromp's reference solver.
What it does
- CUDA on NVIDIA, Metal on Apple Silicon, OpenCL and a CPU reference solver as fallbacks. Kernels compile when the miner starts, so building needs only Rust (and Xcode's command-line tools for Metal).
- Picks the slean split that fits the card: K=2 on 16 GB, K=4 on 8 GB, without configuration.
- Multi-GPU, one nonce lane per card.
- TLS to the pool with a plain fallback, reconnects, and failover across pools. Tested live on 2Miners.
- Watchdog, thermal pause, and overclocking from the command line (
--pl,--cclk,--mclk, offsets, fan), restored on exit. --apiportserves a browser dashboard and a/summaryJSON endpoint, no CDN.- lolMiner's console and command line, so existing scripts mostly carry over.
Dev fee
1%: one 36-second round per hour. The closed miners charge the same, so the open one costs you nothing extra.
Fee rounds get their own row in the stats and the API and never mix with your shares. --dev-fee raises it. Nothing lowers it.
What would help
Numbers from cards I don't own. Run
sudo mxgm --report
It benchmarks your card, measures the power curve and prints a markdown block to paste into an issue. Nothing is uploaded.