A Verifiable Random Function at your fingertips

Pythia provides cryptographically secure and verifiable randomness. It focuses on providing simple, cost efficient and scalable solution.

Integrate with
VRFConsumer

Pythia VRF is build to be secure yet simple to use. All you need is to create a subscription, grab your desire network information and implement two simple function in you Solidity contract.

pragma solidity ^0.8.4;

import "@pythialabs/contracts/src/v1/vrf/VRFConsumer.sol";
import "@pythialabs/contracts/src/v1/vrf/interfaces/IVRFCoordinator.sol";

contract VRFSimpleConsumer is VRFConsumer {
  IVRFCoordinator private _oracle;

  constructor(address coordinator) VRFConsumer(coordinator) {
    _oracle = IVRFCoordinator(coordinator);
  }

  function requestRandom() public {
    _oracle.requestForRandomness("<key-hash>", "<subscription-id>", 1);
  }

  function fulfillRandomWords(uint256 requestId, uint256[] memory randomWords) internal virtual override {
    // Random words will receive here
  }
}

Everything you expect from
Oracle

Block Verification

Wait for block confirmations before attemping to respond randomness request.

Multiple Randomness

Within a single randomness request, you can recieve up to 500 random words for oracle.

Callback Gas Limit

Never pay more for randomness requests. Define gas limit for your callback functions.

Moderation Panel

Monitor and Control your Subscriptions and Consumers withing moderation panel.

Easy Setup

Test the contract and application in test network with easy steps.

Cost Efficient

With Subscription system and multi-random requests you can pay less and get more from info form oracle.

How Pythia works

Lets say you want to create a simple coin flip game.
User
Start the Game
Reveal the Result
FlipGame
Flipping Coin
Calculate flip result
Pythia Pythia
Generate Randomness
Verify Proof & Fullfill Request
VRF Function