On-Chain Random Numbers

The xDai stable chain features an on-chain RNG based on RANDAO. It may be leveraged by smart contract developers to introduce random numbers into their applications. Note that random numbers are limited to certain blocks in the current implementation. See below for more information.

The following article explains on-chain randomness functions and how they will be used when POSDAO is fully implemented. It includes concepts and an example, and is a good place to start.


Randomness Contract (RandomAuRa)

RandomAura is an upgradeable contract, so it includes both an implementation and proxy address. To access, utilize the proxy address (RandomAuraProxy) along with the ABI of the implementation contract (RandomAuraCode). Seed values are read from the proxy contract.



Last Update



June 2021



June 2021

The current implementation requires a chain running Parity's AuRa consensus mechanism with version 3.2.5+ or Nethermind v 1.10.71. The Random Number generation contract was introduced in this PR.