We recently published recaps discussing what we learned about network performanceand tokenomics during Sui Testnet Wave 2. That Testnet wave helped us observe Sui’s behavior under such loads as 3.24 million NFTs minted and 7.35 million staking operations processed over its three week run. Tokenomics proved particularly interesting during Wave 2, as we proved the design of low, predictable gas fees.
Now let’s take a look at Frenemies, a game we launched during Wave 2 so the community could help us test staking functionality. In Frenemies, players staked tokens to support their assigned validator, earning points based on their validator’s success. A leaderboard showed the players with the most points.
The results of Frenemies, with over 700,000 players, were nothing less than amazing. The most important learning we found was Sui’s ability to scale, supporting continued growth once we move to Mainnet.
We designed the game to be fun and competitive, while also providing valuable insights into staking functionality. By participating in Frenemies, players learned about the mechanics of staking and helped improve the overall security and stability of Sui.
Frenemies Architecture
Demonstrating Sui’s strengths, Frenemies allowed over 700,000 players to stake with 41 validators and devise strategies to improve their scoring. Yet the game primarily consisted of two components, smart contracts and a web app.
The smart contract component interacted with the smart contracts executing staking commands on the network. It also tracked players’ scores and leaderboard status.
Frenemies’ web-based interface interacted with the smart contracts, letting players participate without in-depth technical knowledge. In building this app, we went through several iterations balancing ease-of-use with information density, trying to make the game fun with a short learning curve. In particular, later versions of the app added validator logos and a display of validators’ stakes, calculated in real time.
As the game ran, we found the need for a few fixes at the smart contract level. The score card delivered subpar performance, and needed optimization. We also moved Frenemies to a Full node so it could handle the traffic.
Gameplay Choices
Frenemies began as a simple idea to gamify staking. As we developed the idea, ensuring game balance became a major concern. We had to make choices around such mechanics as player goals and assignments. Although the game was meant to test staking on the Sui network, we also wanted it to be fun.
The Three Objectives
Frenemies assigns players one of three roles: Friend, Neutral, or Enemy. We debated whether three was too many or not enough, and even mocked up the game in a spreadsheet to simulate several rounds of play. In doing this we learned that the interesting moments of the game happen on the boundaries both of an epoch and within the validator leaderboard.
For example, game testers quickly figured out that the optimal strategy was to obscure or even fake their assignment to deprive other players of information. Testers often waited until the last moment of a round to make their moves, or stake with unrelated or enemy validators to mislead other players. Testers also figured out that staking their enemy’s enemy, another validator on the verge of leaderboard movement, was an optimal strategy to reach their desired outcome.
As testing went on we observed that three was the right number of assigned role types. Two did not result in enough marginal leaderboard positions, which offer moments of suspense in the game, and four was too many to communicate to players.
Random Validator Versus Round Robin Assignment
Frenemies needed to create a lot of staking activity to be successful. In parallel with Frenemies, validators were playing their own game during Wave 2, so we wanted staking activity to be distributed among all validators. Therefore, we randomized how players were assigned to validators to ensure that each validator had a portion of Frenemies players operating on them during each epoch.
A more interesting decision was how to assign roles. We considered random assignment, but quickly realized the number of Friends, Neutrals, and Enemies might be uneven, or worse, all the players assigned to a single validator might have a similar role. To ensure even staking versus unstaking activity, and to give every player someone else to play against, we assigned roles in a round robin fashion. This method also guaranteed that every player got to experiment with different strategies as they rotated through being a Friend, Neutral, and Enemy.
Outcome
The community response to Frenemies exceeded even our most ambitious expectations. We welcomed over 700,000 players who got to participate in the core activities of operating a Delegated Proof-of-Stake network. Given that our original goal was to generate staking activity at scale and observe validator and network performance in response to large changes in staked SUI, this volume of community participation blew away our goals.
We observed a massive community response not only in user counts, but in on-chain activity. At the launch of Frenemies we saw a huge spike in gas units, a useful proxy for network transactions. By driving this volume of transactions we are able to make confident predictions about the performance of Sui at scale, and we’re very pleased with the results.