
Flow Team Go!
A mobile-first NFT battle system that turns your device into a classic game console with retro d-pad and onscreen buttons. Build a team of any NFTs then compete with friends or random opponents!
Demo
About
The problem it solves # Problems Solved - Retroactive ability to add utility to existing collections - Revive stale NFT collections through gamification - Could be used with actual collection stats (e.g., NBA Top Shot NFTs) - Add off-chain value to influence collector behavior through gamification - Supports NFTs from the entire blockchain - Cloud-based multiplayer means data delays aren't a problem - Battles are about team building and strategy, not interactive player behavior. This allows server-based competition without the need for both players to be present. - Adds discoverability to collections - Allows collections to make NFTs to target game mechanics # Main Goals - Showcase the power of NFT-aware read-only sites - Add value to existing NFTs off-chain via gamification - Low friction for new users – no logins. Jump in for a fun NFT experience! - Mobile-first collection viewer - 8-Bit retro look for mainstream appeal - IRL appeal for in-person battles with vs. mode - Promotes new collection discovery via random matchmaking # Safety First - Does not use wallet logins - Uses JWT to establish secure stateless sessions - Allows users to claim teams with a pin-code that is encrypted in the database - Server-verified logins would be a great addition to a future version
How it's made
Challenges we ran into The FLOW peer-to-peer mechanisms make things more difficult when you need to know the collection names you want to query. I struggled to load a user's public data generically, but eventually, I found the dapper maintained flow catalog list. By using this list, I could loop over known collections to load NFTs from a user's wallet. Additionally, large wallets were too much for the Cadence collection script I was using. It would hit resource limits for the query and timeout or return no results. I had to modify the cadence code to page through collections 15 at a time. This fixed the issue for the majority of wallets. I still think improvements can be made to more accurately target the collections a user has and I hope to add those in a future version.