Why Merging?


The merging process allows for the creation of new NFTs. These new NFTs—along with $NRNs—are used as rewards to Gamers. The process is controlled by a central apparatus called the Merging Pool. This pool gives ecosystem the ability to control the levels of NFT inflation within the game. To understand more on how the Merging Pool is integrated within the gaming economy, please visit Economy Overview.

What is the Merging Pool?


The Merging Pool plays an important role within the Gaming Competition.

➡️ It creates stronger NFTs, enhancing the level of competition within the Arena

➡️ It serves as a source of predictable NFT inflation

➡️ It is a reward for Gamers

It is important to note that NFTs created from the Merging Pool are different from those that are purchased through primary drops. These NFTs are created via a genetic algorithm¹ that adopt the skills of the NFTs that were submitted into pool. This ensures that the NFTs rewarded possess meaningful economic value. Moreover, Merging Pool NFTs are trained² whereas the NFTs purchased from primary drops are untrained.

How Does it Work?


To begin the Merging Pool process, we take all of the NFTs (more specifically their embedded neural networks) that have been staked for a given Round in Ranked Battle and have them compete against each other³.

The competition allows us to select which NFTs we want to merge to create more powerful NFTs. We need some way to assign a score for how powerful each NFT is, so we use a fitness function.

Once we have the fitness scores for each of the NFTs, we then use the roulette method to select which NFTs get merged with each other. The idea is that we assign a probability proportional to the relative fitness score of each NFT, i.e. the higher the fitness score, the higher the probability of being selected for the merging process. Once we complete merging, we then get the new crop of NFTs and run the competition again. Each new competition in a genetic algorithm is called a generation. As the generations pass, the NFTs will evolve into stronger an stronger NFTs.

<aside> 🎖️ There is a possibility that all NFTs in a subsequent generation are worse than the best one in the previous generation. Therefore, to avoid rewarding users with a subpar NFT, we use the concept of elitism in genetic algorithms. This means that for each new generation we are carrying forward N number of the best NFTs from the previous generation. By doing this, we are ensuring that the users being rewarded are getting NFTs that are at least as good as or better than the best NFTs that were entered into the merging pool.

</aside>

How are Winners Determined?


Before entering into a Round in Ranked Battle, Gamers can elect to put a proportion of their $NRN winnings in that Round towards the Merging Pool. The more winnings they redirect towards the Merging Pool, the higher their probability of winning an NFT. For a detailed example please visit Economy Overview.

Since we are not using a uniform distribution, we are required to use a loop to select the winners. This can get quite expensive to run on-chain when AI Arena accumulates a large number of users. Instead, we select the winners off-chain and take the following steps to ensure there is fairness and transparency in the process:

➡️ Generate the random number on-chain using Chainlink VRF.

➡️ Create a front-end interface for anyone to verify the results of the Merging Pool for any Round historically.

➡️ Open source the selection code, store it on IPFS, and make its hash an immutable part of our smart contract.


Notes

  1. To learn more about these techniques, see this comprehensive blog post.

  2. There is a remote possibility that the reward NFTs are untrained. This would happen if the majority of NFTs submitted into the Merging Pool are untrained or poorly trained. The more trained NFTs staked in the Merging Pool, the higher the likelihood of strong NFTs emitted as rewards.

  3. This “competition” is run completely within the Merging Pool process, and it is not something that players are participating in.

<aside> ⬅️ Back

</aside>

<aside> ↩️ Return

</aside>