RandomX BONANZA

An efficient in browser Monero miner

For implementation details, see RandomX-bonanza

Remember Coinhive? Look where it redirects these days, Monero cryptojacking is dead, it has been so since the 2019s transition to RandomX, one of the side effects (? or perhaps a deliberate feature) of the ASIC resistant design is that it is now close to impossible to run the algo efficiently in contemporary web browsers, there are some implementations out there, mostly uninteresting, you are looking at ~3-5% of native execution performance at best.

Randomx.js is pretty much the only thing out there that actually works, the author has made a nice presentation vid about it, great, except for the fact that it only supports light mode, to cite the readme:

>Mining with an initialised dataset (2 GiB allocation) is not supported (though easy to implement), no one on earth would give a webpage multiple gigabytes of memory. Light/verification mode only.

Well, guess what, our implementation does support the significantly more performant full mode, which also happens to "give a webpage multiple gigabytes of memory". It builds the full dataset in less than 10s on most modern CPUs, yes, it is RAM heavy, but fortunately, idle RAM abundant.


Performance

With SharedArrayBuffer available (full mode), cca 10% of native performance on AMD64 platforms and ~23–25% on Apple M4 ARM64 (10 cores, vs. native XMRig at the same thread count); light mode lands at ~53–67% (M4 number) of native light mode efficiency at cost of increased memory usage. Full tables and methodology in the readme.


Potential use cases

PoW-gated access, alternative traffic monetisation platform, fun online, consensual e-support (charity), all the beforementioned results in more compute securing the Monero blockchain


Miner demo

In the example below, you can test out your machines in browser performance! You can point it to your wallet and check the performance against one of the two allowed pools dashboards!

demo miner
Hashrate- H/s
Shares0 / 0
Statusdisconnected
Shares
0 / 0
accepted / rejected
Mode
standby
Status
disconnected
Hashrate
▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱ - H/s
no samples yet
Dataset build
▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱ - %
not started
Next share ETA
▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱▱ - s
not mining
Wallet setup
Wallet
payout destination · Set tests pool handshake
Worker
identifier for this miner (Stratum pass field)
Preset
fills host + port (wallet unchanged)
Pool
apply on next Start (or Rebuild)
Thread count
Threads
rebuild to adjust thread count
⫘⫘⫘⫘⫘⫘⫘⫘⫘⫘⫘ randomx_bonanza v0.2.1 ⫘⫘⫘⫘⫘⫘⫘⫘⫘⫘⫘