How BOOM! Bots Work
Abstract
BOOM! Bots represent a new paradigm in crypto trading and onchain automation. Compared to the popular connotation of what a bot is, BOOM! Bots reside onchain, not on a server and not on Telegram. We define a few constraints and standards regarding how this new bot type must operate, while allowing each bot to be configured by its owner via a modular architecture. This opens up a new design space for onchain automation, allowing bots to execute code in response to onchain events, eg selling a token after it reaches a given price.
Requirements
Before we build these bots, we examine what a bot needs to operate and what benefits a bot could provide. From this we define a set of properties that must hold true for every bot:
- Each bot must reside onchain.
- Each bot must be able to hold and manage its own tokens and investments.
- The list of bots and their state must be publicly and readily queryable.
We also define a set of properties that should hold true:
- Each bot should have an owner that can manage the bot, its code, and its tokens.
- Each bot should hold its tokens in a contract or wallet that is jointly owned by the bot and the bots owner, separate from the holdings of other bots.
- Each bot should be able to act as a standalone user / the bot owner should be able to login to the bot and instruct it to execute commands as if the bot were a standard user.
- If holding a token or using a protocol would bear rewards to a standard user, the bot should be able to collect or otherwise receive those same rewards.
How it works
The BOOM! Bots protocol was architected to meet the above requirements while also allowing flexibility and extensibility.
Each bot has a smart contract account and an ERC721 Non Fungible Token linked through ERC6551 Token Bound Accounts. This account allows each bot to have its own address, tokens, and code. Ownership of the bot is managed via the bot NFT; the owner of the bot NFT has access to the bots account.
Each bot account begins as little more than a smart contract wallet. The owner of the bot can use ERC6551 execute()
to login to the bot and execute commands.
Bots can be enhanced by teaching them new functions. The owner of the bot can install modules via ERC2535 Modular Smart Contracts. Modules can contain any functionality that can be written in code. Teach your bot to trade, invest, and more.