HackathonTypeScript, React, Next

Web Client for a Distributed Random Number Generator

An RNG built on unconventional entropy sources — for the All-Russian FSP hackathon.

Web Client for a Distributed Random Number Generator

A prototype distributed random number generator built on unconventional entropy sources — the BTC exchange rate and independent input from lottery participants.

Built during the qualifying round of the All-Russian FSP hackathon.

The Problem

Existing entropy sources don’t inspire much trust in users — they can be predictable, and their generation mechanisms are opaque. This is especially acute in the context of lotteries.

The case presented by Stoloto: propose an RNG based on unconventional entropy sources that solves the problems above.

Result

Our team proposed the following solution: a distributed RNG with three entropy sources — the current time, the sufficiently chaotic and unpredictable BTC exchange rate, and transparent user input. Three people take part in generating the seed, which increases trust in the algorithm.

My role on this project was frontend. I needed to clearly show how a fair random number for the lottery emerges from unpredictable external data, and make it possible to verify the draw after the fact.

I built a prototype of the lottery itself (playground): a player enters a number, there’s a visualization of how the generator’s seed is assembled from the BTC rate and the entered numbers, and the final draw. The client talks to the server over WebSockets, so content updates in real time.

Home page Draw page

How to Run

The project runs via docker compose up — after that, nginx on port 8080 serves the finished app.