diff --git a/README.md b/README.md index e09e883..926b9b5 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,8 @@ Grouper is a fourmeme sniper bot built on [Alloy](https://github.com/alloy-rs/alloy) that is triggered by on-chain trading activity to drive its buy and sell decisions. -Features: +## Features + - Sends private transactions—no worries about slippage or sandwich attacks - Uses SQLite for data storage: works out of the box with zero extra config - Recognizes bundle transactions @@ -15,22 +16,11 @@ Features: ## Quick start -1. In the root directory, create a `.env` file based on `.env.example`. +> Here is a more detailed [guide](https://github.com/chen4903/grouper/tree/main/doc/dev-guide) - ```bash - # account - BOT_PRIVATE_KEY= - - # rpc - BLOXROUTE_AUTH_HEADER= - IPC_URL= - - # tg bot - TELEGRAM_BOT_TOKEN= - TELEGRAM_BOT_CHAT_ID= - ``` +1. In the root directory, create a `.env` file based on [.env.example](https://github.com/chen4903/grouper/blob/main/.env.example). -2. Update the config base on your strategy, or just use the default strategy for quick start. +2. Update the [config](https://github.com/chen4903/grouper/blob/main/src/config.rs) base on your strategy, or just use the default strategy for quick start. 3. Start the bot: @@ -45,7 +35,7 @@ This forumeme sniper bot only provides a framework and a default trading strateg None of this would have been possible without them, so big shoutout to the materials below: - [alloy](https://github.com/alloy-rs/alloy): Provided comprehensive and convenient blockchain interaction tools; -- [burberry](https://github.com/tonyke-bot/burberry): Provided a framework for transaction execution, which itself was modified from [artemis](https://github.com/paradigmxyz/artemis/) +- [burberry](https://github.com/tonyke-bot/burberry): Provided a framework for transaction execution, which itself was modified from [artemis](https://github.com/paradigmxyz/artemis/). In this repo, we use [harpoon](https://github.com/chen4903/harpoon); - Some very outstanding papers, which provide theoretical assistance: - [A Midsummer Meme's Dream: Investigating Market Manipulations in the Meme Coin Ecosystem](https://arxiv.org/abs/2507.01963) - [Ready, Aim, Snipe! Analysis of Sniper Bots and their Impact on the DeFi Ecosystem](https://dl.acm.org/doi/10.1145/3543873.3587612) diff --git a/doc/dev-guide/README.md b/doc/dev-guide/README.md new file mode 100644 index 0000000..95f9f6f --- /dev/null +++ b/doc/dev-guide/README.md @@ -0,0 +1,74 @@ +# Dev Guide + +This forumeme sniper bot supports highly customizable strategies. This guide outlines how to develop its strategies, discusses some notes, and demonstrates the general running effects. + +## What does it look like when it runs? + +- Console + +image-20260104221824978 + +- Telegram bot + +![image-20260104220929770](./assets/image-20260104220929770.png) + +- Dashboard, e.g. gmgn + +image-20260104221221087 + +## How to customize my personal trading strategy + +This bot supports this 2 platforms: + +- If you want to trade on fourmeme stage, then develop your strategy your own strategy in [strategy_fourmeme.rs](https://github.com/chen4903/grouper/blob/main/src/strategy/strategy_fourmeme.rs) +- If you want to trade on pancake stage, then develop your strategy your own strategy in [strategy_pancake.rs](https://github.com/chen4903/grouper/blob/main/src/strategy/strategy_pancake.rs) + +All configuration file records are in [config.rs](https://github.com/chen4903/grouper/blob/main/src/config.rs). + +The default strategy: IYKYK + +## Some useful notes + +- Strongly recommend using personal nodes and connecting via IPC. Because using third-party RPC providers will receive rate limits and are prone to losing events. +- We need to monitor bundle transactions, so we store the received meme transactions in the database. However, this causes the database to become extremely large, so we maintain a cleaner to periodically clean up outdated data from the database. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/dev-guide/assets/image-20260104220929770.png b/doc/dev-guide/assets/image-20260104220929770.png new file mode 100644 index 0000000..ed10b22 Binary files /dev/null and b/doc/dev-guide/assets/image-20260104220929770.png differ diff --git a/doc/dev-guide/assets/image-20260104221221087.png b/doc/dev-guide/assets/image-20260104221221087.png new file mode 100644 index 0000000..98b3503 Binary files /dev/null and b/doc/dev-guide/assets/image-20260104221221087.png differ diff --git a/doc/dev-guide/assets/image-20260104221824978.png b/doc/dev-guide/assets/image-20260104221824978.png new file mode 100644 index 0000000..f89ec73 Binary files /dev/null and b/doc/dev-guide/assets/image-20260104221824978.png differ diff --git a/src/misc/init.rs b/src/misc/init.rs deleted file mode 100644 index 70b786d..0000000 --- a/src/misc/init.rs +++ /dev/null @@ -1 +0,0 @@ -// TODO diff --git a/src/misc/mod.rs b/src/misc/mod.rs index ff42a6d..d5de227 100644 --- a/src/misc/mod.rs +++ b/src/misc/mod.rs @@ -1,7 +1,6 @@ pub mod constant; pub mod error; pub mod format; -pub mod init; pub mod logger; pub mod nonce; pub mod util; diff --git a/src/trade/README.md b/src/trade/README.md index 52ea04e..0600a1b 100644 --- a/src/trade/README.md +++ b/src/trade/README.md @@ -1,3 +1,3 @@ ### Term Explanation -- inner pool: meme token before migrating to Pancake pool -- outer pool: meme token has already been migrated to the pancake pool \ No newline at end of file +- inner pool: meme token before migrating to Pancake pool. The fourmeme stage. +- outer pool: meme token has already been migrated to the pancake pool. The pancake stage. \ No newline at end of file