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#504AlgorillaArmy#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
- Register your wallet or NFD using
/register
- Add NFTs you hold to your battle list using
/add
- Check the list of registered participants using
/users
- Battle any of the registered participants with
/battle_user
- Make a battle wager against any of the registered participants with
/battle_bet