API reference for
|constructor||Initialize your consumer contract.|
|requestRandomness||Make a request to the VRFCoordinator.|
|fulfillRandomness||Called by VRFCoordinator when it receives a valid VRF proof.|
Initialize your consumer contract.
constructor(address _vrfCoordinator, address _link) public
_vrfCoordinator: Address of the Chainlink VRF Coordinator. See Chainlink VRF Addresses for details.
_link: Address of the LINK token. See LINK Token Addresses for details.
Make a request to the VRF coordinator.
function requestRandomness(bytes32 _keyHash, uint256 _fee, uint256 _seed) public returns (bytes32 requestId)
_keyHash: The public key against which randomness is generated. See Chainlink VRF Addresses for details.
_fee: The fee, in LINK, for the request. Specified by the oracle.
_seed: This is the seed from which output randomness is determined. Provided by you.
RETURN: The ID unique to a single request.
Called by VRFCoordinator when it receives a valid VRF proof. Override this function to act upon the random number generated by Chainlink VRF.
function fulfillRandomness(bytes32 requestId, uint256 randomness) external virtual;
requestId: The Id initially returned by
randomness: Random number generated by Chainlink VRF.
Choosing A Seed
Since the ultimate input to the VRF is mixed with the block hash of the block in which the request is made, user-provided seeds have no impact on its economic security properties. They are only included for API compatibility with previous versions of this contract.
Chainlink VRF provides powerful security guarantees and is easy to integrate. However, smart contract security is a nuanced topic.