
The Randomness Layer
for Robinhood Chain
RNG for Robinhood Chain
A commit-reveal oracle delivering verifiable randomness onchain. Every output is deterministic and publicly verifiable onchain.
Built onRobinhood Chain
Looking for RNG for Robinhood Chain? Live oracle, fee, and integration path.
$TORINOX · Graduated on pons
https://www.ponsfamily.com/launchpad/0x3f9f0b6073ee8c495aed96869af31850fed40febOracle Contract
0xd8a0680e7699526b57140ed4eafdcc7219dc0a0c
Features
Built for developers who need
real randomness.
Unbiased
Two-party commit-reveal: user randomness combined with provider's hash chain reveal. Designed so neither party can unilaterally bias the outcome when commitments hold and the provider seed stays private.
Verifiable
Every reveal is checked onchain via Keccak256. Anyone can independently verify the randomness was computed correctly.
Developer-first
TypeScript SDK, Solidity interfaces, and a simple callback pattern. Integrate in under 50 lines of code.
Agent-friendly
x402 live: agents pay fixed $0.05 USDG on Robinhood via Primer, then receive verifiable randomness. Direct on-chain requestV2 (exact ETH fee) still available.

How it works
Three steps. About 1-3 seconds typical. If reveal never comes, refund after ~60-90s.
Request
Your contract calls requestV2() with a user-generated random value and pays the exact 0.000025 ETH fee. If unrevealed after ~60-90s, requester can refundRequest.
Reveal
The Tyche keeper detects the request event and submits the next hash chain value as a reveal in ~1-3 seconds typically.
Callback
The contract verifies the reveal, combines it with the user's value and the provider's preimage, then calls your entropyCallback() with the final random number.

Quick Start
Integrate in 30 lines.
import { IEntropyConsumer } from "@diceprotocol/sdk/solidity/IEntropyConsumer.sol";
import { IEntropy } from "@diceprotocol/sdk/solidity/IEntropy.sol";
contract MyGame is IEntropyConsumer {
IEntropy public immutable dice;
address public provider = 0x8741...F2b6;
constructor(address _dice) {
dice = IEntropy(_dice);
}
function roll() external payable {
bytes32 userRandom = keccak256(
abi.encodePacked(msg.sender, block.timestamp)
);
dice.requestV2{value: msg.value}(
provider, userRandom, 200000
);
}
function entropyCallback(
uint64 seq, address, bytes32 random
) internal override {
uint256 result = uint256(random) % 6 + 1;
}
function getEntropy() internal view override returns (address) {
return address(dice);
}
}Start building with
onchain randomness.
No sign-up. No API key. Just call the contract and get random numbers.