Skip to content
N

NFT Art Auction Marketpalce

NFT Auction Marketplace lets anyone create an auction or bid on an existing one.Enter the starting price,time period of the auction, increment price and upload file on IPFS to create an ERC721 auction

Created on 28th February 2021

N

NFT Art Auction Marketpalce

NFT Auction Marketplace lets anyone create an auction or bid on an existing one.Enter the starting price,time period of the auction, increment price and upload file on IPFS to create an ERC721 auction

The problem NFT Art Auction Marketpalce solves

Traditional Digital art marketplace has been prone to government censorship and existing NFT solutions like Rarible are not open source and have high fees. The fees may be more than the price of the art.
We created an easy to onboard NFT-Auction marketplace that allows digital art creators to upload files on IPFS and create an ERC-721 without knowing the complexity behind. The entire model is decentralized E-bay of blockcahin for art. Because of no central storage dependency, if the website gets taken down the code can be used to keep the state of the blockchain updated.
By deploying on Matic/Polygon network, we greatly reduced the fees. Portis and Metamask were used for an easy user experience and furthermore Chain-link was integrated to get the price feed in Dollars(USD).
The IPFS CID hash is a uniquie address and is used as Uniquie Resource Identifier in the metadata of the art to prevent copying/forging.
A seller can view the items it has listed on a different page. All the art auctions are listed and updated on a seperate webpage for users to put bid on.
For example: The seller sets the minimum price of art X at 10Matic, the increment value as 1Matic and time period of 1 hour. If Bidder named Sachin bids 15Matic, The highest Bid is 11Matic(highestBid) and the amount stored internally as the highest bidding amount is 15Matic(highestBindingBid). If a person called Sanchita bids 12Matic, Sachin's highest bid of 13Matic will automatically be staked. In case no one bids after 11Matic bid of Sachin, then Sachin is the highest bidder and when the auction stops, the Token will be minted for 11Matic and rest of the 4Matic will be returned to Sachin. Scenarios of Bidder over-bidding his own bid, other bidders under-bidding the Highestbid or the highestBindingBid are covered.
More explanation on Github ReadMe.
Note: In starting a skeleton code of ERC721 was forked form one of the members repo which was changed 99%. Commit history verifies it.

Challenges we ran into

  1. Re-entreancy attack
    It was prevented by using a withdrawal-pattern design decision where the logic is implemented first and transfer is done at last.
  2. DDoS attack
    We went through fuctions to check no fallback function or any other function can be exploited
  3. Decentralized storage
    We did not want a centralized point of control and failure hence we opted for IPFS.
  4. Decentralized Price-Feed
    Chainlink was integrated for getting price feed of Matic/USD
  5. High gas fees
    We deployed on Layer-2 solution and choose Matic network to reduce gas fees and fasten the transactions
  6. Bots bidding
    Just like centralized exchanges are filled with bots which manupilate the price, same can be the case with NFTs. We set a minimum incremement which is set by seller.
  7. Easy onboarding
    We used Portis Wallet for easy integration and user friendly UI.
  8. UI/UX was made keeping in mind a non-blockchain/crypto user.
  9. Rapid UI Development
    we used MDBReact framework with relevant npm packages

In future we plan to use Pinata to store all the metadata of our NFT off-chain and Biconomy to make the first transaction gasless for a user. We will also implement DAO for contract changes and product development and create upgradable contracts through proxy pattern.

Discussion

Builders also viewed

See more projects on Devfolio