giveitoutlogo

Inspiration

In traditional Web2.0, there are numerous platforms where giveaways are controlled and maintained by mediators or middleware who claim to take care of the user's funds which leads to cons where users lose their money and are restricted in the visibility to see how the platform works and it's functioning.

What it does

To prevent cons and scams, we developed the platform GiveItOut, a decentralised platform where you can create and participate in giveaways of crypto tokens. Since our platform is built on blockchain, the law of code the smart contract has functions to create, participate, declare winner, transfer amount and mint NFTs with full legitimacy. The users can view the contract and the functioning so that no scamming is involved.

How!

We have used CHAINLINK to generate random numbers for declaring a winner when the giveaway ends. We have used CHAINLINK KEEPERS to automate the contract to call and giveaway function when the time reaches the deadline of a specific giveaway.

Features

  • Generating new giveaways or take Participation in Giveaways of crypto tokens.
  • Winners will also mint NFTs of their choice and can show them off to their friends.
  • Users can check the progress of the giveaway by heading over to Chainlink keepers.
  • Users can provide social links so that viewers could visit them.
  • Users can also sell their NFTs on Opensea as well.

How we built it

BSC

Chainlink VRF

Chainlink VRF we are using for randomly selectr participate.

import "@chainlink/contracts/src/v0.8/VRFConsumerBase.sol";
import "@chainlink/contracts/src/v0.8/KeeperCompatible.sol";
import {SafeERC20, IERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";

contract GiveitOutWeb3 is VRFConsumerBase, KeeperCompatibleInterface {
constructor(
        address _vrfCoordinator,
        address _link,
        bytes32 _keyHash,
        uint256 _fee,
        address _keeperRegistryAddress
    ) payable VRFConsumerBase(_vrfCoordinator, _link) {

Chainlink Keeper

constructor(
        address _vrfCoordinator,
        address _link,
        bytes32 _keyHash,
        uint256 _fee,
        address _keeperRegistryAddress
    ) payable VRFConsumerBase(_vrfCoordinator, _link) {
        keyHash = _keyHash;
        keeperRegistryAddress = _keeperRegistryAddress;

        fee = _fee;
        owner = msg.sender;
    }

Covalent

  • Using covalent api for fetch data that used to track Users NFT

Built With

Share this project:

Updates