A simple Discord bot that picks the 10 most active members of a server (guild) and distributes tokens to them.
-
Clone the repository:
git clone https://github.com/izikdepth/MemeBot.git
-
Navigate to the project directory:
cd MemeBot
-
Install the required packages:
pip install -r requirements.txt
or
pip3 install -r requirements.txt
-
Create a Discord bot: Go to the Discord Developer Dashboard, create a bot, and copy your bot token. Then go to Discord -> Settings -> Advanced and enable Developer Mode. Next, click on your profile and "Copy User ID", then right-click on the server and "Copy Server ID".
-
Create a
.env
file: Copy and paste the contents of the.env.example
file into the.env
file, and fill it with the Guild ID (Server ID), Admin ID, and Bot Token. -
Start the bot:
python main.py
or
python3 main.py
ACTIVITY REWARDER The bot monitors every member's activity and rewards them. Every message or other server engagement gets rewarded with points. Those points will later be converted to crypto tokens and automatically distributed to the members' wallet addresses. After 24 hours, the bot DMs everybody with recorded activity and asks them for their wallet addresses. They can then use the /submit_wallet command to submit their wallet addresses, and those wallet addresses will receive tokens. No single wallet address can be used twice in the same day.
RAYDIUM LISTENER It periodically checks the Raydium (v4) pool for new liquidity pools. When there's a new liquidity pool, it fetches the new token's (not wrapped SOL) address and sends the Dexscreener link of that token to a specified Discord channel.
- Download and install Node.js from the official Website
- Install npm packages
npm install @solana/spl-token @solana/web3.js node-cron sqlite3 dotenv bs58
- Run
node distributor.js
- Ensure that the Python dependencies are correctly listed in
requirements.txt
. - Ensure that your
distributor.js
script is set up to use the environment variables from the.env
file. - The above instructions assume that
distributor.js
is in the root of the project directory. Adjust the paths if necessary.