RNG for games on Robinhood Chain
A game contract cannot safely roll from values already known in the same transaction. Torinox Protocol supplies a later, verifiable bytes32. The game maps that word into faces, loot rows, or seat assignments in deterministic code.
Live parameters
| Network | Robinhood Chain mainnet |
| Chain ID | 4663 |
| Oracle (TorinoxEntropy v10) | 0xd8a0680e7699526b57140ed4eafdcc7219dc0a0c |
| Provider / keeper | 0x8741b8a825644D9Ef18Faf2DAB5e9b47B900F2b6 |
| Fee | exact 0.000025 ETH via getFeeV2() |
| Refund delay | 6 L1 blocks (~60-90s) |
| Hash chain length | 500,000 registered |
| SDK | @diceprotocol/sdk |
| Agent paid path | $0.05 USDG fixed over x402 |
Pattern
- Player action calls your game function and pays the exact Torinox fee (or you forward it).
- Game stores the request sequence and any inputs that must stay fixed.
- Game implements
IEntropyConsumerand maps the callback word:(uint256(random) % 6) + 1for a d6. - If the reveal never arrives, the original requester refunds after 6 L1 blocks.
function entropyCallback(uint64 seq, address, bytes32 random) internal override {
uint256 face = (uint256(random) % 6) + 1;
results[seq] = face;
}Weighted loot uses the same word: uint256(random) % totalWeight, then walk the published table. Publish the table before the request.
Full samples: /docs/quickstart/. Verification: /docs/verification/.
Home · RNG for Robinhood Chain · Docs · Architecture · Security · SDK · x402 · GitHub