Algorillas Battle Bot

TLDR

The Battle Bot is a discord bot that utilizes ARC69 traits to perform weighted-RNG battles between any two ARC69 NFTs. The odds of winning each matchup are deteremined by the rarities of the two NFTs in their respective collections. If there is an upset, the underdog is paid $RILLA and the amount of $RILLA depends on the severity of the upset.

Any trait in any of the supported collections can be temporarily boosted for a period of 7 days by spending some $RILLA. A single user cannot boost the same trait twice, but any number of users can join forces and boost the same trait.

Multicollection Support

To handle multicollection support, we normalize and align the rarity scores distributions to maximize the overlap amongst the collections. This ensures that a high ranking NFT in one collection has better odds of winning against a low ranking NFT in a different collection, regardless of the respective collection sizes.

The chart below shows the before and after effects of applying the normalization. Feel free to click on it, it's interactive. For example, clicking on a legend item will turns either hide or show the given collection depending on its initial state.

How it Works

Probabilities

For each matchup, the normalized rarity scores are used to compute the chances of winning for each NFT.
If RSN is the rarity score of player N, then the odds for each player are given by,
Player 1: RS1/(RS1 + RS2)
Player 2: RS2/(RS1 + RS2)

Example

MetaCommander#118 vs AlgorillaArmy#504
AlgorillaArmy#504 odds: 100*(493.780/(493.780 + 277.902)) = 63.99%
MetaCommander#118 odds: 100*(277.902/(493.780 + 277.902) = 36.01%

Using the probabilities computed above, we then perform a random selection where the probabilities correspond to the weights in the random draw. In this matchup, AlgorillaArmy#504 has a 63.99% chance of being drawn, while MetaCommander#118 only has a 36.01% chance of being drawn

Battle Bot Commands

The Algorillas Battle Bot has been implemented using discord slash commands. When typing in a slash command, discord will show you a list of suggested options. Make sure to click on the option associated with the Battle Bot and not one of the other bots in our discord. The video below demonstrates how to identify the battle bot registration command amongst the slash commands suggested by discord.

Command Description
/active_boosts List the trait boosts that are currently active.
/add Add an NFT to the battle list. This makes the NFT available for battle and signs you up for any future Battle Weeks.
/balance List the $RILLA balance of the wallet you registered.
/battle_bet Battle a specific discord user and wager some $RILLA. Your NFTs will be chosen at random from your list of entries. Returns a warning in the event you or your opponent do not have any entries.
/battle_user Battle a specific discord user. Your NFTs will be chosen at random from your list of entries. Returns a warning in the event you or your opponent do not have any entries.
/battle_week Initiate one of the battles on your weekly battle list. The best NFT in your list of entries is automatically chosen for the battle.
/boost Spend $RILLA to boost a trait to increase your chances of winning.
/entrants Show the list of NFTs that are available for battling.
/leaderboard Show the battle statistics for all users.
/my_entries Show all of the NFTs added to the battle list by the user. If you list an NFT you have entered, it will be removed from this list.
/my_stats List your daily battle stats (including total $RILLA farmed in upsets), all time battle stats, and weekly battle stats.
/nft_info Display an NFT from one of the supported collections.
/register Register your wallet address or NFD with the battle bot
/remove Remove an NFT from your battle list. You can only battle with NFTs that are in your wallet
/users Display a list of the registered users who are available to battle.
/weekly_battles Show the list of weekly battles you have been assigned. After a battle is completed, the corresponding entry will be shown with strikethrough text.

How to Register

  1. Register your wallet or NFD using /register
  2. Add NFTs you hold to your battle list using /add
  3. Check the list of registered participants using /users
  4. Battle any of the registered participants with /battle_user
  5. Make a battle wager against any of the registered participants with /battle_bet