verifiable randomness

zkVRF: Zero-Knowledge Verifiable Random Function

ORAO zkVRF, powered by ZoKrates' zk-SNARKs, delivers verifiable, secure randomness to EVM-compatible blockchains, enhancing the privacy, efficiency, and reliability of decentralized applications.

Start Building

At ORAO, we’ve developed a cutting-edge zero-knowledge Verifiable Random Function (zkVRF) tailored for EVM-compatible blockchains. Our zkVRF is now optimized with Poseidon hashing, reducing fulfillment times to just 10 seconds on Polygon, delivering fast, secure, and cost-effective randomness generation for a variety of decentralized applications.

Key Use Cases

  • Crypto Gambling:
    Ensure provably fair outcomes in games of chance, such as dice rolls, card games, or any other type of wagering in decentralized casinos and gambling platforms.

  • Lotteries:
    Generate secure, tamper-proof random numbers to fairly determine winners, providing users with trustless and transparent lottery systems.

  • NFT Drops:
    Fairly distribute limited-edition NFTs by generating randomness to assign token IDs or select winners from participants in highly anticipated NFT mints.

  • Decentralized Games:
    Introduce unpredictability in blockchain-based games through random events, loot drops, or character traits, improving gameplay fairness and enhancing user experience.

  • Randomized Airdrops:
    Distribute tokens or rewards randomly to a pool of eligible wallets, ensuring fair participation in community-driven initiatives.

  • Auction Systems:
    Enable secure randomness for time-sensitive auctions, ensuring unpredictable and unbiased outcomes.

ORAO zkVRF vs Chainlink VRF comparison

Feature ORAO Network Chainlink
Speed 10s 3min+
Blockchain integration Polygon, Zircuit, other EVM chains Multi-Chain (Ethereum, BSC...)
zk type zk-SNARKs based VRF NONE
Security Advanced security with zk-SNARKs Established
Gas Fees Low High
upcoming Networks Arbitrum, Starknet -

Technical Features

  • Fulfillment Time:
    With the latest Poseidon hashing, zkVRF achieves 10-second fulfillment on Polygon (Amoy Testnet), offering rapid and efficient randomness generation.

  • zk-SNARKs:
    Our zkVRF leverages zk-SNARKs (Zero-Knowledge Succinct Non-Interactive Arguments of Knowledge) to ensure cryptographic security, scalability, and privacy for sensitive use cases.

  • EVM Compatibility:
    Ready for deployment across EVM-compatible networks, zkVRF integrates seamlessly into decentralized applications.
  • Deployed Networks:
    Available on Polygon (Amoy Testnet) and Zircuit Testnet with upcoming deployments on Arbitrum and Starknet.

A Proven Solution

With more than 60,000+ VRF requests successfully fulfilled on Solana Mainnet, ORAO's zkVRF delivers fast, secure, and trustless randomness to EVM-compatible blockchains. Whether you’re building a decentralized game, a lottery system, or launching an NFT drop, zkVRF ensures your dApp’s randomness is both fair and verifiable.

Integrate zkVRF

Solidity example
copied to clipboard
contract OraoVRFConsumer is OraoVRFConsumerBase {
  bytes32 public seed;
  bytes32 public part1;
  bytes32 public part2;
  IOraoVRF internal _vrfCoordinator;

  constructor(address vrfCoordinator) OraoVRFConsumerBase(vrfCoordinator) {
    _vrfCoordinator = IOraoVRF(vrfCoordinator);
  }
    
  function calcGasUsed() public override returns (uint256 gasUsed) {
    uint256 startGas = gasleft();

    fulfillRandomness(
      0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff,
      0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff,
      0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
    );

    gasUsed = startGas - gasleft();
  }
    
  function fulfillRandomness(bytes32 _seed, bytes32 _part1, bytes32 _part2) internal override {
    seed = _seed;
    part1 = _part1;
    part2 = _part2;
  }

  function request(bytes32 _seed) public payable override {
    seed = _seed;
    super.request(_seed);
  }
}
Solidity SDK
zkVRF on Github