How the dice work

Every roll in TycoonDAG can be recomputed from public data. You do not have to trust us — and the design assumes you don't, because we also mine the blocks.

The problem

Chain 1404 has no randomness beam. block.prevrandao is 0x00 on every block and difficulty is 1, so the usual source simply isn't there. The block timestamp is no good either — it lags real time and sometimes steps backwards, because of how the DAG orders blocks.

That leaves the block hash. But a block hash is chosen by whoever mines the block, and WelshDAG runs a large mining pool on this chain. “Trust us, we mine the blocks that roll your dice” is not good enough, so we don't ask you to.

Three inputs, three parties

A roll's seed is built from three contributions, and no one party can see the others in time to exploit them:

seed = keccak256(operatorSeed, blockhash(commitBlock + 3), clientSeed, player, nonce)

The rule that carries the weight is this: a roll may only use one of our seeds that was revealed strictly after the block whose hash it uses — and only the earliest such seed. So at the moment a block is mined, the seed that will combine with it does not exist publicly yet. Grinding the block hash steers nothing. And we committed to the seed long before that block existed. Cheating would need the pool, a miner and you, together.

Check it yourself

Everything needed is public: the revealed seeds, the block hashes, the client seeds and the nonces are all on chain. Our verifier reads only those and recomputes every die ever rolled:

npx hardhat run scripts/verify-fairness.js --network blockdag

It prints how many dice reproduce exactly and how many did not. If any roll disagreed with its inputs, it says so and exits non-zero. Write your own against a public RPC if you would rather not run ours — the formula above is the whole of it.

When it degrades, it says so

A bot reveals our seeds. If it stops, rolls would be stuck, so after about two minutes a roll can be resolved on the block hash alone. That is weaker, and it is recorded on chain as degraded rather than quietly dressed up as a normal roll. The verifier counts them separately. Anyone can resolve anyone's roll, so there is no one whose absence can hold your turn hostage.

What we can still do

Being straight about the limits: we set the board, the payouts and the prices, and we can change them for future rolls. We can rotate to a new seed chain — but only by announcing the new root about fourteen hours ahead, in public, where it lands in the audit trail. What we cannot do is reach into a roll you have already committed, or pick which of our seeds it uses.