Community (Re)Packs

Community (Re)Packs

With Community (Re)Packs you can create your own secure mystery packs containing Flow NFTs from your account and make them available through pack breaks, raffles, giveaways or welcome gifts.

The problem Community (Re)Packs solves

Digital NBA Top Shot pack breaks have been very successful for Steady Breaks with new digital collectible products being added as the space continues to grow. Unfortunately, once a pack is opened and the Moments have been revealed, there is no way to re-pack Moments (or other Flow NFTs) from your collection into custom packs and allow those packs to be used for community events or activities where mystery contents are needed. In addition, NFTs can be purchased from various Flow marketplaces and then combined into new packs allowing use cases like cross-project events like weekly Flow poker to allow prizes to be distributed in the form of mystery packs for additional suspense and excitement.

One of the best community opportunities that re-packs enable is the ability to purchase NFTs to be provided as an invitation/welcome to join your community. NBA Top Shot Team Captains, for example, have often requested to be able to acquire Moments from their specific Team to give away team-centric mystery packs. i.e. Cleveland Packaliers captains want to create team packs with a few Cavalier player Moments with custom art being used for the pack art to encourage people to join or participate in their community

Challenges we ran into

We ran into some challenges at the end of the hackathon development period where some test cases were failing. We are new to Cadence so with a little more time, we would have been able to resolve these bugs. One specific bug that we couldn't handle when developing was working with capabilities and understanding how collections worked as a whole to introduce different permissions for various users. We got over it by looking at numerous contracts that other projects have deployed on flow to understand what exactly is going on rather than trying to take apart the documentation to understand it. Additionally, with a couple of runtime errors here and there, and an ongoing bug with dealing with multiple iterations of our contracts, we were able to get rid of most of our bugs and create a somewhat working demo/prototype.

Discussion