
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
All Contract are deploy BSC testnet currently
GiveitOutWeb3 Contract https://testnet.bscscan.com/address/0x00940d38c8b1c3b16642cf9ee6f1ca861a8b83f6
GiveOutNFT Contract https://testnet.bscscan.com/address/0x2e1264F8502304d131067427fe97a6979083DB4D
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) {
- File Link (https://github.com/GiveitOutWeb3/contract/blob/01c8a5ba12839ba4b2f815406c96bc35b5685aed/contracts/GiveitOutWeb3.sol)
- VRF Transaction https://testnet.bscscan.com/tx/0x7635dd3b1ed5f83cdd56099bd2b6c64116da992a93839f4394af79c595cc1a1f
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;
}
- File https://github.com/GiveitOutWeb3/contract/blob/01c8a5ba12839ba4b2f815406c96bc35b5685aed/contracts/GiveitOutWeb3.sol
- Keeper Transaction https://testnet.bscscan.com/tx/0xd6938ff46965572e5ea7555eb0165c85052193a37c25124533d31de4bc0e4bcf
Covalent
- Using covalent api for fetch data that used to track Users NFT
Log in or sign up for Devpost to join the conversation.