How does it work
We have generated a chain of 10 million SHA256 hashes for each game, starting with a server secret that has been repeatedly fed the output of SHA256 back into itself 10 million times.
The SHA256 of the final hash for crash is: fa75616697eea331e4c5942b19d9a5d06afdca56cced9c2a3d57fe1ce926c152.
The SHA256 of the final hash for roulette is: 5bf9a3fae704667be2d3704ea8b6e703796defaa5f328e1a8d46b3a0fa12269f.
By publicising it here we are preventing any ability to pick an alternate SHA256 chain. Now the game server is playing through this chain of hashes in reverse order, using these values to calculate the game's crashpoint provably fair.
How to verify
Anyone can easily verify integrity of the chain. We're publishing a game's hash immediately after the game ends. By checking that the SHA256 hash of that game's hash is the game's hash of the previous game you can make sure that we were not able to modify the result.
The sample code to generate games hashes and calculate "Crash" results based can be found here.
The sample code to generate games hashes and calculate "Roulette" results based can be found here.
Bottom line is that results for all future games are already predefined and normally distributed due to math that backs up the strong cryptographic SHA256 function. We cannot manipulate this chain of results without the public noticing it.