Committed before the request.
A published hash-chain commitment fixes the seed in advance. The result mixes it with the request block hash, your contribution and the request context.
RUFF
Randomness Utility & Fulfillment Framework
Give your app a random number with public proof. Request in USDC, receive the result onchain and let anyone verify it.
THE RUFF APPROACH
A published hash-chain commitment fixes the seed in advance. The result mixes it with the request block hash, your contribution and the request context.
The hub verifies the seed and computes the result onchain before calling your contract. If your callback fails, the same result stays available to recover.
Follow requests and proofs in RUFF Explorer. Use the public SDK or CLI to check the commitment and recompute a delivered result yourself.
WHAT YOU CAN BUILD
Resolve rounds, loot drops and PvP outcomes with randomness players can check.
Draw winners from a fixed entry list, with a public record of the random result.
Shuffle a collection, assign traits or select recipients under rules set by your contract.
INFRASTRUCTURE FOR ARC
Games and apps on Arc need a way to settle random outcomes transparently. RUFF supplies that shared primitive: request, verification and settlement on the same chain, with fees in native USDC.
Any consumer contract can connect within the published fee and capacity limits. No allowlist or extra service token.
Connect your contractPAY PER REQUEST

Default fee · 100,000 callback gas
1,000 requests = 13.33 USDC
Request transaction gas is separate. Your callback budget affects the fee; quote the current tariff from the hub before sending.
Fees & limitsBUILD WITH RUFF
npm install ruff-hub viem