Everybody can check their rolls or other's rolls to ensure the game is fair for everybody.
I'm sorry, but I believe it's not provably fair at all.
What prevent you, with a shill account, to change your own seed at the last moment, trying several ones until you know it gives you a result that you like? This can be done automatically in microseconds and other players cannot tell that this was not a "normal" last moment seed change.
You don't got your own seed. There is just a server seed that changes once every 10 games. A hash of this seed is provided to know the seed does not change.
Once the 10th game is played, instantly the server seed is revealed for everybody to compute their past speeds(and the other players' speeds) and the new seed is generated and the hash for it provided(this is done also instantly).
This seed cannot be changed on the fly cause then the hash wouldn't mach and again the last 10 games wouldn't mach.
The algorithm uses data from the new race, so someone that wants to cheat need to know in advance the exact rats that will take place in a race, what race id and of course the server seed. So only the last player that enters the race has any chance of cheating.
The server seed is impossible to get cause nobody has access to the code except me, or someone could hack the server to get it, but the gain is so small i don't know if it worth the trouble to try.
Anyway another defense is that everything is in the open, history of all games is provided and everything is on the blockchain so anyone can look.
On the blockchain you can see the order the players entered in the race and so you can look at the last players to enter the race to check if they won more or not.
Any idea of another data feed that can be used for the RNG that is impossible to know by anyone only at the start of the race is welcomed.
thx