Mint a CryptoPoker Hand

  • UI: Connect to Wallet
  • Read from blockchain contract:
    • Is wallet allowed to mint? bool
    • Is there an active game? bool
    • What number of hands have been played? uint
  • Content: What does the user need to see?
  • UI: Mint hand (s) – button -> triggers
    • Call to generator contract to generate the hand at random and provide the key hand data (all five cards)
    • Supply contract data to generate the artwork for the hand and pin to IPFS (using Pinata API) – web3.js APIs
    • Mint the art and metadata to the blockchain using the minter contract and provide the user the NFT to their connected wallet
  • Content: After minting, the player gets treated to an interactive animation of the cards being dealt and then being clickable to flip them over. They already have the NFT in their wallet at this point, so this is more for fun than anything. A chance to show off the cool design, should be repayable. (note: maybe mint the animation as a short video clip of the deal and flip. v2.0) Sample -> link required.
  • UI: Two buttons for interaction with each hand are presented to the user -> It’s a one-time choice (immutable)
    • PLAY -> Enters the hand NFT received as “played” = true in the game contract
      • If “In Play” the NFT hand remains in the players possession (wallet control)
      • Owned Hands in play are all viewable on this screen here. Chance to design multiple UI interfaces for those people who have only one hand in play
      • Number of hands in play / Number of Burned Hands / Total Number of hands before game ends – > contract data to be shown on the scoreboard screen
    • FOLD -> Enters the hand NFT as “played” = false in the game contract -> triggers
      • Send NFT file to burn address 0x0 – delete from user account, cannot be recovered.
      • Folded hands should still be viewable on aggregator sites like OpenSea, but will be unable to be controlled by anyone ever.