I have implemented a basic Chainlink VRF function in Solidity and deployed to Ethereum test network Rinkeby

  function getRandomNumber() public returns (bytes32 requestId)
    require(LINK.balanceOf(address(this)) >= fee, "Not enough LINK");
    return requestRandomness(keyHash, fee);

  function fulfillRandomness(bytes32 requestId, uint256 randomness) internal override 
    randomResult = randomness;
    _requestId = requestId;

This works fine, deducts the LINK fee from my wallet, and eeeeeventually does call back fulfillRandomness with a random hex value, however it takes forever!

Just did a test and it took 30 minutes. Could I be doing something wrong or why is it taking so long? I know it's async and there's lots of stuff going on to fetch the random number, but at these speeds it's basically unusable right

2 Answers 2


The Rinkeby testenet has had some downtime issues this weekend. You can use the Kovan testnet and VRF until Rinkeby is operating normally again.


I switched to Kovan and I'm reliably getting ~1 min VRF responses

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.