← All Mouillay Miners

Stable release · 1.0.2

Mouillay CPU Miner

PEARL mining for AVX2-capable Intel and AMD CPUs on Windows x64.

Setup & documentation

Performance figures are reported local measurements, not a guarantee of pool credit or earnings.

🐓 Mouillay CPU Miner — 1.0.2

Download the Windows ZIP · EXE · Launcher BAT

Windows x64 CPU miner for PEARL, for recent Intel and AMD CPUs with AVX2 and operating-system AVX support. Mining starts only when you launch it. CPUs without AVX2 cannot use this release's mining engine.

CPU performance measurements

Reported local MAC-equivalent hashrates from current tests. Results vary with cooling, power limits, memory and other applications; these are not guaranteed or pool-credited rates. "Additional threads" means SMT/Hyper-Threading workers beyond the physical-core count.

CPU Physical cores used Physical-core workers only With additional logical threads
Intel Core i7-12700H 14 910 GH/s 930 GH/s — 14 cores + 6 additional threads (20 workers)
AMD Ryzen 9 3900X 12 1,010 GH/s 1,100 GH/s — 12 cores + 12 additional threads (24 workers)
AMD Ryzen 5 5600X 6 550 GH/s 620 GH/s — 6 cores + 6 additional threads (12 workers)
Intel Core i5-4690K 4 250 GH/s —

Feel free to share your stats on discord

🚀 Run on Windows

Extract the package to a writable folder. Edit the three settings at the top of START_MINER.bat:

  • POOL: your pool's Stratum TCP address.
  • WALLET_WORKER: your PEARL address followed by .worker, or the merge-mining format below.
  • CPU_THREADS=0 (default): detect the total physical-core count and offer it at startup. Press Enter to use it, or enter another worker count.
  • CPU_THREADS=N with a positive number: start with exactly N workers, without asking.

The example wallet belongs to PoolMouillay. Replace it with your own wallet to mine for yourself. Double-click START_MINER.bat. Automatic detection sums physical cores across CPU packages, excluding SMT/Hyper-Threading siblings. If Windows cannot provide the physical-core count, the prompt falls back to 1 worker and displays a warning. Worker counts above the physical-core count use available logical processors (SMT/Hyper-Threading). Physical cores are assigned first, then their additional logical processors. More workers do not necessarily give a higher hashrate. Other applications share the same CPU resources.

You can also open PowerShell in the extracted folder:

.\MouillayCPUMiner.exe --pool stratum+tcp://poolmouillay.com:3361 --wallet-worker YOUR_PEARL_ADDRESS.worker --threads 12 --seconds 0
.\MouillayCPUMiner.exe --help
.\MouillayCPUMiner.exe --version
.\MouillayCPUMiner.exe --dispatch-info

Press P to pause or resume mining. Press Ctrl+C to stop. A pause lets the current calculation finish; already queued proof work may finish. Logs are written to the logs folder beside MouillayCPUMiner.exe.

In a compatible Windows terminal, the PoolMouillay rooster and dashboard refresh in place instead of scrolling. The dashboard is limited to 24 lines and 80 columns, with a short recent-event list. It displays only your accepted/rejected share counts. The developer-fee percentage and the current account remain visible; developer share details stay in the diagnostic log. Redirected output uses compact status changes without terminal control codes.

🔗 PEARL + NOCK merge-mining request

On a compatible pool, edit this line in START_MINER.bat:

set "WALLET_WORKER=PEARL_ADDRESS+NOCK_ADDRESS.worker"

Replace both addresses with public payout addresses that you own. The plus sign joins the PEARL and NOCK addresses; the dot introduces the worker name. worker is the default client worker name and may be replaced with your own. devfeecpu is reserved for developer-fee rounds and is selected automatically only during those rounds. Do not put private keys or recovery phrases in the batch file.

This format requests merge mining from the selected pool. The pool must support the format, validate the work and credit both payout addresses. A displayed merge request, connection or submitted share does not certify NOCK rewards. Check the pool's accepted-share and payout records; this package does not establish that a merged block has been found or rewards have been credited.

⚙️ CPU engines

The single executable contains a general x64 engine and a Ryzen znver2 engine. It selects znver2 only for an eligible Ryzen CPU whose required instruction set and operating-system AVX support are detected. Other supported CPUs use the general engine. --general forces that engine for troubleshooting. The launcher starts with baseline x64 instructions, but both mining engines require AVX2; the general engine is not a scalar mining fallback. Performance varies by CPU, memory, workload and temperature.

The selected engine is extracted into a temporary per-process folder and removed after a normal exit. No separate engine files need to be installed. Forced termination or a system crash can leave that temporary folder behind. The miner does not change system security settings, CPU clocks, or power settings.

🔌 CPU power and efficiency

The console displays measured CPU package power in watts when a supported sensor is available. It first checks Windows Energy Meter CPU-package telemetry, which reports average power over its sampling interval, then CPU Package sensors exposed through the WMI interfaces of LibreHardwareMonitor or OpenHardwareMonitor. Availability depends on the CPU, Windows, permissions and the monitoring application. If you use one of those applications, its CPU power sensor and WMI data must be available while the miner runs. The miner does not install a driver or hardware-monitoring application automatically.

The value covers the whole CPU package, including Windows and other applications; it is not isolated miner consumption or a whole-computer wall-socket measurement. It is a sensor reading, not the CPU's advertised TDP. Missing, invalid, inaccessible or more-than-five-second-old readings display N/A, rather than an invented zero-watt value. During a pause, a fresh reading may still show the CPU's actual idle or other-application power.

Efficiency = CPU watts ÷ local GH/s, displayed as W/(GH/s); a smaller value means less CPU package power per unit of local throughput. For example, 100 W at 500 GH/s gives 0.2000 W/(GH/s). This is an estimate: the latest sensor sample and the recent approximately five-second hashrate window are different measurements. Efficiency displays N/A when paused, connecting, preparing work, without a fresh power reading, or without a positive hashrate. It does not establish pool-credited efficiency or profitability.

💡 Developer fee

The developer fee is 1% on the normalized hostname poolmouillay.com, regardless of port, and 2% on other pool hostnames. The rate is shown in the miner. The hostname rule does not treat an IP address or an unrelated alias as poolmouillay.com.

User work and developer work use the pool selected by the user. The fee is scheduled from completed active scan time. Pauses, connection waits and preparation time do not add to that budget. Developer work runs in short rounds of approximately three active seconds. The first round is due after approximately 300 active scan seconds at 1%, or 150 active scan seconds at 2%. Fee and session counters start over when the miner is restarted.

This schedules a portion of computation; it is not a deduction from each submitted share. User and developer work are kept separate. The distribution of accepted shares can vary because share discovery is random. The developer worker name is devfeecpu. Developer rounds use the following public payout identities, with the NOCK address included when merge mining is requested:

PEARL: prl1pt8t3tffncrwlfgp28mfh2kljgk29g480e8fzw49k0q7rc9lwc06s79c60j
NOCK:  7VH3xXvaFLecVZZaK5kga7hx2LeMRDx6sNckpf5fnAHb5kSQYPJRjKR

Hashrate displayed by the miner is local MAC-equivalent work, including the indicated scan/session timing. It is not a promise of pool-credited hashrate or earnings.

This package distributes executable binaries. See NOTICE.txt for original-component restrictions and third-party license exceptions.

Copyright © 2026 PoolMouillay. All rights reserved for original proprietary components.

This binary distribution is licensed under the Proprietary Binary License, not an open-source license. Unauthorized redistribution, modification, decompilation, disassembly and reverse engineering of original components are prohibited, subject to mandatory applicable law. Third-party software retains its own rights and licenses: see NOTICE.txt and THIRD_PARTY_LICENSES.txt.

Run MouillayCPUMiner.exe --notice to display the embedded notices.

Gzip proof transport (1.0.2)

The miner requests gzip v2 during Stratum authorization. Proofs are gzip-compressed before Base64 encoding only if the pool explicitly replies with type: "v2". Otherwise, the existing uncompressed format is used. Proof contents and mining calculations remain unchanged. This reduces submission traffic, not the local GH/s rate.

In local transport tests with 12 workers, median proof payload size fell from 134,385 to 2,738 bytes (about 98% smaller). These tests verify transport and decompression, not network acceptance. Pool support is required.

Custom share difficulty

In START_MINER.bat, leave set "SHARE_DIFFICULTY=" empty to use the pool default, or set a positive integer such as set "SHARE_DIFFICULTY=1024". The miner sends password: "d=1024" during authorization. The pool must support this convention and remains authoritative for job targets. A request is not a guarantee that the pool applied it.

Direct launch also supports --password "d=1024". Reconnects and account changes keep the configured request. This is a share difficulty request, not a change to network difficulty. No automatic difficulty value is imposed.

The production engine already uses zero-based signal matrices; the protocol-derived noise, commitments and Merkle data remain intact. Do not replace required proof bytes with zeros. Gzip compresses the original serialized proof losslessly.

Protocol references: gzip v2, custom difficulty.

Downloads & release history