Skip to content

Contracts

Source lives in the repo under contracts/. Foundry script Deploy.s.sol targets Saigon then mainnet. Fulfillment verifies a Chainlink-format VRF proof with the audited, vendored Chainlink VRF.sol (the same verifier native Ronin VRF uses). The proof seed binds the request blockhash, request id, consumer and the oracle key hash; the oracle set is snapshotted per request, so neither the oracle nor the owner can produce a second valid output for the same request.

NetworkChain IDCoordinatorStatus
Ronin mainnet20200xC66eB2e7EE91145875000Ad46B55600000000001live
Saigon2026010xC66eB2e7EE91145875000Ad46B55600000000001live

One CREATE3 address on both chains. Consumers always point at the coordinator address above; it is a proxy and the only address you use.

  • RandooVRFCoordinator: Ronin pay-per-request. Subscriptions frozen.
  • Drop-in for the standard VRFConsumer base: keep inheriting it and swap the coordinator address at deploy.
  • Payment is computed on-chain from gasleft × declared gasPrice.
  • Same consumer interface as native Ronin VRF, not a semantic clone: seed derivation, events, and errors differ, and the coordinator is not the native proxy.
  • VRF proving key and gas wallet are separate keys; oracles rotate in turn and misses are counted on-chain per key hash.
  • DualVrfRace: playground harness that fires both coordinators in one transaction so the head-to-head shares a request block.

Last verified 2026-08-25.