Absolutely！And we can prove it.
Firstly, the value of the 300,001 games was generated well in advance and formed a chain, so that the crash value of each round of the game is not related to how many people bet, betting on how much.
A single crash point is generated by combining two different sha256 hashes (Server seed hash and client seed) together and turning the resulting piece of data (a single sha256) into a number.
However, in order to be considered provably fair, we have to pick those two pieces of data (sha256 hashes) in a very specific way. The data have to be chosen in a way such that neither the house nor the player can predict the resulting crash point. That process takes place like so:
ServerSeed — Here we prove that we have calculated and committed to using a given game/hash chain before the client seed is known. We have generated a chain of 300,001 sha256 hashes, starting with a server secret that has been repeatedly fed the output of sha256 back into itself 300,001 times. With that, the final sha256 in the chain is: fb17e30d649dd6560dcebf80d62e9b10372d9a919c5df4492fafddce1372ed83.
ClientSeed — In order to prove that we have not intentionally selected a secret above that would generate favorable crash points for the house, the hashes from the game chain will be salted with a ClientSeed that we have no control of. The client seed will be the blockhash for EOS block #246255000.
Proof of existence — In order to prove that this message was written before EOS block #246255000 was created, we have embedded the ServerSeed and ClientSeed information as memo into the EOS blockchain (#246254393) which is prior to block #246255000.
It can be proved that the chain we have chosen is not generally beneficial to the platform. The platform announced a future EOS Blockhash as ClientSeed which can not be predicted by anyone before it is generated. That means we are completely unaware of the crash value in each game before the start of the first inning. (It is also impossible to change after the beginning.)
The formula for the random crash number is as follows:
let seed = gameHash
let hash = sha256(seed + salt)
var h = parseInt(hash.slice(0, 13), 16);
var e = Math.pow(2,52);
return ( Math.floor( (96 * e) / (e - h) ) / 100 ).toFixed(2);