Band4Band
Band4Band is a blockchain-based platform that allows users to engage in band-versus-band matches while wagering cryptocurrency. Users can connect their wallets via MetaMask, create profiles, and participate in matches where the winner receives $1000 from the loser.
Screenshots



Problem Statement
User connects with metamaskUser creates a profile for that specific walletWallet address stays anon until the end of each matchGo band for band until you cant anymore (reveal your net worth in $1000 increments)Loser loses $1000 to the winner in an instant transferBoth users' wallet address and amounts are revealed at the end of the match
Solution
User Authentication with MetaMask: Use web development technologies like HTML, CSS, and JavaScript to create a front-end interface. Integrate MetaMask for user wallet management and authentication. Utilize MetaMask's JavaScript library for interacting with the user's Ethereum wallet.User Profile Creation: Implement a web form that allows users to create a profile for their specific wallet. Collect relevant user information, such as username, profile picture, and any other required details.Anonymity Until the End of Each Match: Store user profiles and wallet addresses off-chain in a traditional database, ensuring anonymity. Use smart contracts on the Ethereum blockchain to manage and trigger events for matches.Band for Band Matches: Develop a smart contract for handling band-versus-band matches. Each match should be a unique instance of this contract. Use a randomization algorithm for selecting winners or losers in a fair and unbiased way.Instant Transfer of Funds: Leverage blockchain technology to enable instant cryptocurrency transfers. Ethereum's native cryptocurrency, Ether, is suitable for this purpose. Use smart contracts to manage the transfer of $1000 in cryptocurrency from the loser's wallet to the winner's wallet. Implement safeguards to prevent cheating or manipulation.Reveal Wallet Addresses and Amounts: At the end of each match, trigger a smart contract function to reveal the wallet addresses and amounts. Make this information publicly accessible on the blockchain so that it can be independently verified.Technologies Used:Solidity for the smart contracts that handle user profiles, matches, and fund transfers. Web3.js To interact with the Ethereum blockchain from the front-end. MetaMask: For user wallet management and authentication. HTML, CSS, Typescript, React for creating the front-end user interface and forms. A traditional database (e.g., MySQL or MongoDB): To store user profiles and wallet addresses off-chain. Node.js and a web framework like Express.js: To build the back-end for handling user data and interactions with smart contracts.
Hackathon
ETHGlobal New York
2024