RandomX variants: rx/0, rx/2, rx/wow, rx/arq and more

RandomX was written to be configured. Its parameters — the salt for the cache, the size of the scratchpad, the length of the programs, how often each instruction appears — are constants a coin can change, and several coins have. The result is a family of algorithms that share the design and give completely different hashes. XMRig, the miner most of them use, keeps every variant it supports in one file, and that file is the source for this list.
Why a variant gives different hashes
Every variant has its own Argon salt, the string mixed into the cache at the start. A different salt means a different cache, a different dataset and therefore a different hash for the same input, so hardware or software tuned to one variant computes nothing useful for another. Some variants also change the amount of work, which changes the hashrate a machine gets.
None of the variants in XMRig's source changes the size of the dataset: they all need the same 2080 MiB to mine in fast mode.
The variants
rx/0 — RandomX, the reference configuration. What Monero runs today. Salt RandomX\x03, three Argon2 passes on one lane, a 2 MiB scratchpad, 8 programs of 256 instructions, each looping 2048 times.
rx/2 — RandomX v2. The reference configuration with programs of 384 instructions and the four v2 changes: the rarer CFROUND, AES in the main loop, the prefetch two loops ahead, and commitments. Monero plans to switch to it in a hard fork for which no date has been set; the RandomX v2 guide has the detail.
rx/wow — RandomWOW, for Wownero. Salt RandomWOW\x01. Programs loop 1024 times instead of 2048, but there are 16 of them instead of 8; the scratchpad is 1 MiB with a 128 KiB second level; several instructions appear more or less often than in rx/0, and the AES keys that fill the scratchpad are its own.
rx/arq — RandomARQ, for ArQmA. The lightest of the family: one Argon2 pass, 4 programs looping 1024 times, and a scratchpad of only 256 KiB with a 128 KiB second level — a quarter of the per-hash work of rx/0 and an eighth of its scratchpad.
rx/graft — RandomGRAFT, for Graft. Two Argon2 lanes instead of one, programs of 280 instructions, and the two rotate instructions rebalanced.
rx/sfx — RandomSFX, for Safex Cash. The reference configuration with its own salt, RandomSFX\x01, and nothing else changed.
rx/yada — RandomYada, for YadaCoin. Salt RandomXYadaCoin\x03, four Argon2 passes, and a lower target latency for SuperscalarHash, the function that builds the dataset, at 150 instead of 170.
An older variant, RandomXL for Loki, appears in XMRig's documentation of algorithm names but is no longer in its source.
Choosing one in a miner
A miner has to be told which variant to run, or told the coin and left to work it out. XMRig takes it from the pool when the pool supports algorithm negotiation, from a pool's coin setting, or from its algo setting with the names above. The wrong variant does not fail loudly: the miner hashes at full speed and every share is rejected. The coins guide has which coin runs which.
For a new coin, the RandomX repository has its own configuration guidelines, which set out which parameters can safely be changed and by how much.
RandomX variants: rx/0, rx/2, rx/wow, rx/arq and more: questions
What is rx/0?
The name XMRig and other miners use for RandomX in its reference configuration, the version Monero has run since 30 November 2019. RandomX v2, which Monero plans to adopt in a future hard fork, is rx/2.
Do RandomX variants need less memory?
Not for the dataset: every variant in XMRig's source keeps the 2080 MiB dataset of fast mode. Some have smaller scratchpads per thread — 1 MiB for Wownero's rx/wow, 256 KiB for ArQmA's rx/arq — so they need less CPU cache per thread.
Source: XMRig source code, src/crypto/randomx/randomx.cpp and src/base/crypto/Algorithm.h (xmrig/xmrig on GitHub) checked against the source
More RandomX guides

What is RandomX? The CPU proof of work, explained
RandomX is the proof of work Monero has run since 30 November 2019: random programs executed in a virtual machine over a 2080 MiB dataset, built so that an ordinary CPU stays the efficient way to mine. How one hash is made, and why it needs that much memory.

RandomX v2: what changes and when Monero switches
RandomX v2, released in March 2026, makes each hash about 53% more work — longer programs, AES in the main loop, a rarer rounding change and a deeper prefetch — for a small loss of hashrate. Monero has not switched yet: the change waits for a hard fork with no date set.

How much memory does RandomX need?
RandomX needs 2080 MiB of shared memory to mine in fast mode, 256 MiB to verify in light mode, and a 2 MiB scratchpad for every mining thread. Where each figure comes from, what huge pages do for it, and how much free RAM a machine needs in practice.