How the miner yields
The miner runs in a dedicated worker. It never decides when to run: the page gives it a duty cycle between 0 and 1, and it fills that fraction of wall time with GPU batches of about 40 ms. A duty of 0 stops it before the next batch.
| Signal | What the miner does |
|---|---|
| Mouse, keyboard, wheel, touch | Duty 0 at once. State: hidden. |
| 15 s without input, tab visible | Ramps 25%, 50%, 75%, 100%, one step a second. State: mining. |
| Tab in the background | Stops, because you are probably using another app. |
| Idle Detection API (opt-in) | Mines while the system reports the user idle or the screen locked, even with the tab in the background. |
| Battery under 50% and unplugged | Waits. State: idle. |
| Page frames above 40 ms (median of 30) | Caps the duty at 50%. |
Idle detection is a browser permission (Chromium browsers). Without it, the miner only runs while its tab is in front and untouched, like a screen saver. Nothing starts before you press Start, and the Stop button ends the worker.
Speed and difficulty
On the first batch of the day the miner measures its speed and picks a share difficulty so that it finds about one share every 30 seconds: 28 zero bits on a CPU, around 31 on a laptop GPU doing 100 MH/s. The difficulty is then fixed for that address until 00:00 UTC.