Quest for Gaming dApp (to be used in Phase 2)

Technical Requirements:

Overall System:

  • Points will be on Optimism and NFTs will be on Base.
  • Users can earn points every 5 minutes by playing a “Spin-the-Wheel” type of game.
  • Cross chain transaction will be invoked to distribute tokens
  • Points can be redeemed for NFTs
    • Points will be transferred cross-chain to the NFT smart contract on Base, which will distribute the NFTs
  • NFTs can be burned for points
    • NFTs can be burned which will mint tokens on Optimism

Token System:

  • Network: Optimism
  • Use PolyERC20 smart contracts for managing tokens.
  • Use phase2NFT for NFT Distribution
  • Allow users to earn points through tasks or games, and spend points on NFTs or the randomizer.
  • Faucet Contract:
    • Implement a faucet contract enabling users to claim a maximum of 10 tokens per 5 min.
    • Control Faucet Contract through a gamified faucet “Spin-the-Wheel” Contract which randomly determines the amount which faucet sends to the user

NFT System

  • Create PolyERC721 - Can use template from Challenge 4
  • NFT Specifications:
    • Implement smart contracts to manage four distinct NFTs (NFT1, NFT2, NFT3, NFT4) with specified circulation and point values.
    • NFT1: 25 tokens.
    • NFT2: 50 tokens.
    • NFT3: 75 tokens.
    • NFT4: 100 tokens.
  • Points will be distributed as follows
    • NFT 1: 10 Points
    • NFT 2: 50 Points
    • NFT 3: 150 Points
    • NFT 4: 500 Points
    • Bonus - All 4: 2000 Points
  • Network: Base
  • NFT Burn Mechanism:
    • NFTs must be burnable. Upon burning, PolyERC20 tokens are redistributed to the user.
  • Restriction on NFT Trading:
    • Ensure NFT cannot be traded between accounts; they can only be burned.
  • User NFT Holdings:
    • Ensure users can hold a maximum of 4 NFTs simultaneously.
    • Implement functionality for users to return NFTs to circulation, receiving a 20% point refund.
      • NFT 1: 5 tokens refund
      • NFT 2: 10 tokens refund
      • NFT 3: 15 tokens refund
      • NFT 4: 20 tokens refund
  • Randomizer Purchase:
    • Enable users to spend 60 tokens to purchase a randomizer, which awards an NFT from the total circulation at random.
  • NFT Implementation Details
    • NFTs will be minted upon purchase of either an individual NFT or a randomizer
    • Randomizer should partition the following percentages to what NFT is allocated:
      • NFT 1: 40%
      • NFT 2: 30%
      • NFT 3: 20%
      • NFT 4: 10%
    • NFT Contract will burn Polymer Testnet Tokens upon receiving it to mint the NFT

User Flows

  1. Obtain Polymer Testnet Tokens

  2. Spinner is pressed → allocation is landed on

  3. Invoke a function on Optimism → sends packet to Base

  4. Base contract sends ack back to Optimism

  5. Optimism transfers tokens to user upon ack

  6. Purchase NFTs or Random NFT with Polymer Testnet Tokens

  7. User calls

  8. View NFTs

  9. Burn Duplicate NFTs

  10. View a Leaderboard based on the points score

Frontend Development:

Landing Page

Faucet Flywheel Page

Buy NFT Page

NFT Portfolio

Tasks to Earn Points from the Faucet:

  • Complete Mini-Games:
    • Spin-Wheel / Slots Game


These technical requirements and tasks are designed to create a balanced ecosystem that promotes user engagement through gameplay, educational content, and community involvement. By integrating these elements seamlessly, you can foster a vibrant community around your game while highlighting the unique features of cross-chain NFT minting and distribution.