The audiences of sports events, online games, and the crypto community overlap in many ways. Our client holds a team-based online game tournament.
The event host has decided to release packages of NFT tokens and distribute them among the game's fan community. There are several package tiers. Different tiers contain rare NFT tokens, more or less likely. Also, premium packages contain unique content, for example, attributes to use in a video game, autographs of players, or their video messages.
The tokens match attributes, moments, or participants in the game. There are connections between tokens that allow users to gather them in collections. For example, a fan of a player can collect all the moments with his participation, his autographs, his avatars, and so on.
UI / UX Designers
Android, iOS, Golang, Vue JS, Docker, Nginx, MySQL
At the first stage of project development, we had to determine the architecture of the solution and its product components. There were no difficulties with the second part: the customer knew the users and their interests well. The User Journey Map, User Story, Product Design, NFT Collection Balance, and Product Metrics were jointly compiled by our teams.
To determine the product architecture, we elaborated and evaluated several options in detail. The question was: whether we needed to create a private blockchain or choose a public one. No platform on the market would allow complying with all the requirements for tokens and their collections. To deploy a private blockchain platform would require additional investments. However, it is worth it, as the benefits of the solution are no fees and more flexibility. Also, the solution allows administration and further development of the project.
After the client opted for a private blockchain, a decision had to be made on the decentralization level. The client represented several stakeholders: game developers, investors, the player community, and the NFT project team. We proposed two architecture options.
The first option involved deploying a network of several nodes, with a separate role for each: executing smart contracts, creating and storing a transaction ledger, maintaining a pool of published transactions, and so on. Each project participant would manage their node, so the system would work only with the support of all participants. This approach allows us to create a highly decentralized system. At the same time, the speed of the system would be limited by the speed of the connection and the operation of each node. This would reduce fault tolerance and the ability to operate under high loads.
In the second stage, we started the development of the project. Several teams worked together: blockchain, backend, and mobile developers. We used the Agile methodology, which allows a client to make changes during the project. Payment is made based on hours spent by specialists. Nevertheless, we made a preliminary estimate and preсised it at each iteration.
First, we released the MVP of the product to adjust the game balance and do load testing of the platform. Only one node was launched (it functioned without a consensus algorithm and utility software). In the test network, about 5% of the designed collections were issued with the main parameters and connections. A couple of dozen enthusiasts from the gaming community and trading robots that simulate the behavior of real users carried out operations during the week. Instead of a mobile application, a wallet with a web interface was used.
The release of NFT collections has brought significant additional income to the tournament hosts. With the token integrated into the online game, user engagement has increased, and the player community has expanded.
The next step was to fine-tune the platform, adjust the game balance and develop a mobile application. We conducted two more tests on the modified MVP using the same methods. After that, we got ready to release the product to the market.
It was important for the product's success to launch the first collections rightly. We have to impress the community. As a result of in-depth testing of the MVP, we managed to do this. The first release attracted great community attention, but the platform was ready for a high load. So, the product was successfully launched and continues its development. The client can add new mechanics and connections, issue tokens and collections, engage the community with new attributes integrated into the game.
Therefore, the client chose the second option: each node performs the same role, and the consensus is supported by a simple majority of network participants. This architecture provides high speed and the ability to process a large number of transactions simultaneously.