Legends of Flow

Legends of Flow

Play your moments. Gamifying dapper digital collectables

The problem Legends of Flow solves


Avid sports fans express their fandom in many ways, in the Flow ecosystem this is via collecting their favorite team & athlete moments.

Although our focus is La Liga, we targeted 3 issues common to all Dapper Sports Products (Golazos, TopShot, AllDay):

1) Wen Utility
Legends of Flow is a game using collectors' moments to compete against each other by predicting team & athlete outcomes. Build your squad, choose a friend or foe & test your fandom PvP or in community leaderboards.

Have you got what it takes to be a Legend of Flow !?

2) Outcome-based trading
A trend across dapper sports products is "trading" moments based on IRL outcomes.

"Hey John I'll trade you x if my team beats yours this weekend."

Legend of Flow handles this: Choose your team/athlete & offer a moment/NFT for trade based on the outcome.

Invite friends privately or post the "Outcome Based Challenge" to the community.

3) Off-season
Lulls during the offseason are unavoidable but Legends of Flows has collectors covered.

During the off-season we run "Throw Back Thursday" Challenges.
Relive historical moments, combine your collections & knowledge to build the best squad for historical games.

4) Normies
No Dapper wallet or moments are required to start.
Sport card collecting is a high-value niche and Legends of Flow helps appeal to a broader "gaming" audience as players can simply focus on building the best squad to improve their chances of winning, this seemingly subtle change in mindset can help onboard users who "don't get NFTs"

We programmatically create a wallet (hybrid-custody) & issue a free "player" to get started.
This reduces the friction onboarding players, only needing to create a dapper account if they want to take advantage of Web 3 features.

Full Pitch

Alpha is Live! Try it:


Challenges we ran into

  1. Main challenge has been the best way to deal with committed/staked Moments to be traded once an outcome is confirmed.
    As these should be "locked" once the game starts and either transferred to the winner or transferred back after the game is completed ideally this would be all done on-chain via smart contract. But currently it requires a user to confirm the trade to both commit and receive.

Currently we use an intermediary wallet however we are thinking each game could have hybrid custody created for each pvp and then delegate ownership to the winner, but if the match is a draw both players get the moment back.

Post-hackathon we will explore more how best to deal with this.

  1. Connecting Dapper Wallet Firebase authentication had some challenges as we needed to create a custom authentication token. We ended up using Firebase serverless function to generate the JWT require for custom Firebase authentication.

Once logged in when then prompt the user to add their email and username (can't seem to retrieve directly using FCL)

  1. Flow query speed is fast however there was still notable lag (especially for large collections) when querying directly on chain, so we cache player's collection to improve UI performance.

  2. Getting accurate game fixtures and results require several 3rd party APIs but allows to automate both upcoming fixtures + verify game outcomes in near real-time.