M
<=

MXGM — an open-source Cuckatoo32 GPU miner

Published on: October 4, 2026

Author: Maxnflaxl ·

Tags: MXGM

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:

minerg/sWJ a graph
MXGM, --mclk 5001 --cclk 2300 --fan 301.316192.7146
MXGM, stock1.641281.6172
GMiner 3.44, its best (--mclk 5001 --cclk 2400)1.090174.8160
GMiner 3.44, stock1.29276.2214
lolMiner 1.98a, stock0.93219.7236
Cuckatoo Reference Miner 0.3.30.547217.4397

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.
  • --apiport serves a browser dashboard and a /summary JSON 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.