Inspiration

Buying or selling physical sports trading cards, getting collectables authenticated is a time-consuming and expensive process that includes shipping it back and forth. Real cards could incur damage, hurting its value, and there are high chances of fraud. Blockchain technology offers scarcity with one-of-a-kind digital assets. In 2020 on OpenSea, “Statue of LeBron” NFT is worth 10,000 ETH (more than $35 million). With these million dollar deals, fraud needs to be combatted with blockchain verification over Etherscan. We were interested in the commercial application of sports NFTs into building collectibles, independent tokens for sports betting, QR code event tickets, real assets like basketball sneakers and other gaming applications.

Fanatic "iBalls"

Fanatic iBalls is an amazing opportunity for digital creators and collectors to connect with their fans. Buy a unique one-of-a-kind sentimental “iBall” Fanatic box package. Each tokenized iBall is released in limited sets (circulation count) so they are rare. Each NFT is unique, 100% owned by the fan, and cannot be replicated, taken away, or destroyed. Each trading card has a unique serial number and that serial number is an NFT that is stored on the blockchain. The lower the serial number, the earlier the NFT was minted determining the scarcity value. In each "iBall" package, fans will have access to:

  1. Trading cards
  2. Sports media highlights
  3. Memorabilia
  4. Autographs
  5. Game Tokens

Fanatic iBalls offers fans an NFT package that will include an autograph, a photo with an athlete, collectible game card, and potential in-person meeting QR code tickets. NFT autographs from a roster of athletes and celebrities addresses exclusively to fans as loyalty tokens. Trading card history of who’s owned it, how many others there are, what iBall sold for in the past and estimate its value off that information. Community driven experiences with fans buying for the experience, incentive, and engagement. Opening iBalls and trying to collect them. Fans follow NBA players and see their collection - try to beat them. each other, make sports bets, or team up and host virtual competitions. Leverage NFTs as QR codes for proof of sport ticket or voucher use. The QR code stores a URI to the deployed (when the address is added to the URI) smart contract. Smart contracts where creators get royalties from resellers. Fan can resell it - the celebrity will get % of that income (secondary) with potentially large return on investments on top of the sentimental value.

Games like Random NBA facts or Trivia. Fanatic's iball tokens can be used as IPFS game assets for fans to play and earn. As the player progresses through the game, the stats on the NFT trading card would be updated with Chainlink. Convert rare media clips into valuable tokens which have never been published as NFTs on the Internet. QR code feature physical assets here a picture of the product and we can generate a QR code assigned a physical iBall sports asset. Blockchain traceability of financial transactions on a secure ledger. Print and adhere label to trace assets, Scan barcodes as event tickets. Allows for industry-wide compliance. NFTs to represent artwork, concert tickets, photos, GIFs, videos, audio, sports even tickets and other things that you could never imagine being tokenized.

How we built it

Digital asset creation of NFTs were developed with Chainlink, Node.js, solidity, and saved on IPFS on the Ethereum blockchain. Scalability is important working with generative image software to scale up to tens of thousands of cards.

Canvas Algorithmic/Generative Art for "iBalls"

  • Easily import images with reference to an HTMLImageElement tokenized object
  • for developer to create own shapes and applied styles to them
  • Draws layer on Fanatic iball's canvas using the drawImage() function with layers of svg images with dynamic photo compositing
  • Don't need to load every image individually improving load performance
  • NFT adds IPFS metadata to decoded hash as attribute with const addMetadata = (_edition) in metadata.json

Node Scripts for image generation:

  • Google V8 JavaScript engine to execute code
  • Maximize throughput and efficiency
  • Asynchronous events with Node.JS
  • Uses multiple threads for file and network events
  • Asynchronous events with Node.JS for non-blocking I/O library for file, socket, and HTTP communication
  • Tiered "iBalls" with bronze, silver, and gold basketballs representing rare (150-999), and superrare (25-99) editions.

Fanatic Sports Players Trading Carts

  • Mint ERC721 (NFTs) making each trading sports card unique
  • Mapping each tokenId has a specific tokenURI making an API call to pull the JSON object from IPFS of player stats uint256 attributes
  • NFT attributes on the tokenURI match the attributes of NFT smart contract for in-game interaction
  • TokenURI added to IPFS file - hashed so that if it player stats changes, so does its hash (we can have a record of the history of the metadata)
  • JSON object player stats in create-metadata.js script { "name": "LEBRON JAMES", "description": "Rare Fanatic iBall Player Card of Lebron James", "image": "https://ipfs.io/ipfs/QmeuB6qLhC6HJ7MFyMzd6X6QZXLZvi7vtMExZVByy1kXCQ?filename=fanatic9.png", "attributes": [ { "trait_type": "GP", "value": 45 }, { "trait_type": "Min", "value": 33 }, { "trait_type": "Pts", "value": 51 }, { "trait_type": "Fg%", "value": 37 }, { "trait_type": "Reb", "value": 8 }, { "trait_type": "Ast", "value": 8 }, { "trait_type": "Stl", "value": 1 } ] }

Challenges we ran into

We were worried about IPFS nodes going down during the development of our hack. This is why we looked into distributed Storage security powered by IPFS, and Pinata for NFT security and scaling. The hashing encryption helped with streams between web app to ensure no tampering of data while in transit (MITM), XSS attacks, proper encryption or key generation/storage from malicious attacks. Being able to add NFT to IPFS node and then “Pin” it via Pinata for security. This will just help keep the data up even when iB all's IPFS node is down. Given the NFT CID of Image and JSON metadata file, and adding it to Pinata account.

Accomplishments that we're proud of

  • The generative "iBalls" == "EyeBalls" were so much fun to make
  • Being able to scale it up to 10,000 images with a node.js command
  • Currently on Rinkeby testnet - Looking to expand on marketplaces like Mintable, Rarible, and OpenSea

What we learned

  • When testing with NFTs and IPFS, we can download IPFS companion to be able to view IPFS Fanatic iBall data natively in browsers reducing the need to jump back and forth
  • Concepts of artificial scarcity in economics with the implementation of tiered "iBalls" with bronze, silver, and gold basketballs representing rare (150-999), and superrare (25-99) editions
  • The use of QR codes connected with IPFS hashes to store a URI to the deployed (when the address is added to the URI) smart contract

What's next for iBall

  • Pull dynamic live data from sports websites like NBA and output scores using chainlink, & ERC 1155 smart contracts as a scrolling toolbar on our website and wanted to add the stats of each sports player to the back of each card - ideally dynamically link to Chainlink
  • NFT drops gives fans a chance to obtain preferred access to future releases via initial drops for ‘Pre-Season Access’ collection.
  • In depth smart contracting testing with solidity and Remix
  • Circle allows users to buy NFTs without needing to pay in cryptocurrency increasing access to the average person. - payments, identity, fraud protection, KYC/AML,  consumer API hardening and protection experience. Add a wait period for purchases to avoid fraud

Built With

Share this project:

Updates