Recently, CoinHive's JavaScript Monero miner has been used on websites to have visitors mine Monero in the background. This caused massive CPU usage for typical page views, causing online controversy on the library's integration.

What it does

XMR-Web-Miner gives users control over the web page miner. It can respond and adjust the mining parameters according to user inputs on the web page. Web hosts can provide incentives for visitors to perform desired actions for said hosts. Features include embedded mining in videos as well as CAPTCHA alternative using successful hashes.

How I built it

There is a repository on GitHub ( that hosts the library for CoinHive's. The API is fairly simple to use and kept to a functional minimum for more user-defined customization. Sample front-end are also available online.

Challenges I ran into

Mining CPU spikes to ~95% capacity, impeding basic operability. Memory is often not properly cleared out when restarting Miner (worse when having multiple mining instances open). Also, the script has to source a CoinHive-hosted file, which makes it necessary to depend on CoinHive being consistantly online (and not being blocked).

Accomplishments that I'm proud of

Solo hackathon project. I got the CoinHive IP temp-banned by the router since it was making so many calls out to the remote mining pool. Also, I'm personally running on a healthy mix of caffeine, alcohol, herbal flowers and +24hr sleep deprivation.

What I learned

Web-based mining is a worthwhile innovation in providing incentives to content providers. People would not mind web-based mining if better profit-sharing allocation occured between content providers and consumers.

What's next for XMR-Web-Mining


Built With

Share this project: