Gaming
Provably fair dice rolls, card shuffles, loot boxes, and matchmaking. Players can audit the randomness source onchain.
The Randomness Layer
A commit-reveal oracle delivering verifiable randomness onchain. Every output is deterministic and publicly verifiable onchain.
Built on Robinhood Chain
Features
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.
Read more →Every reveal is checked onchain via Keccak256. Anyone can independently verify the randomness was computed correctly.
Read more →TypeScript SDK, Solidity interfaces, and a simple callback pattern. Integrate in under 50 lines of code.
Read more →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.
Read more →How it works
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.
Details →The Tyche keeper detects the request event and submits the next hash chain value as a reveal in ~1-3 seconds typically.
Details →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.
Details →Use cases
Provably fair dice rolls, card shuffles, loot boxes, and matchmaking. Players can audit the randomness source onchain.
Fair trait reveals and randomized drops. No one — not the team, not the minter — can influence the outcome after commitments are locked.
Random sortition, jury selection, and raffle-based participation. Trustless selection that anyone can verify.
Randomized vault strategies, verifiable airdrops, and lottery pools. Onchain entropy without offchain trust assumptions.
Security model
The user commits a random value before the provider reveals. The provider cannot change the reveal after seeing the request, and the user cannot change their commitment after seeing the reveal.
If a reveal is not submitted within the timeout window, the requester can call refundRequest to recover the fee. The oracle contract enforces this window onchain.
Each reveal is the next value in a deterministic hash chain. The contract verifies the chain link against the provider's published history.
Contracts, SDK, and documentation are public. Anyone can verify the logic, run the keeper, or integrate directly.
Quick Start
import { IEntropyConsumer } from "@axionprotocol/sdk/IEntropyConsumer.sol";
import { IEntropy } from "@axionprotocol/sdk/IEntropy.sol";
contract MyGame is IEntropyConsumer {
IEntropy public immutable axion;
address public provider = 0x8741...F2b6;
constructor(address _axion) {
axion = IEntropy(_axion);
}
function roll() external payable {
bytes32 userRandom = keccak256(
abi.encodePacked(msg.sender, block.timestamp)
);
axion.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(axion);
}
}Ecosystem
Request and decode entropy from any Node or browser app.
Learn more →Import IEntropy and IEntropyConsumer into your contracts.
Learn more →Chain id 4663. Low fees, fast finality, EVM-compatible.
Learn more →Agents pay $0.05 USDG and receive randomness without holding ETH.
Learn more →