Skip to content

GiveMintBot: An advanced Telegram bot for creating, managing, and automating giveaways in Telegram channels.

Notifications You must be signed in to change notification settings

bisnuray/givemint

Repository files navigation

🎁 Give Mint Bot

GitHub Repo stars GitHub issues GitHub pull requests GitHub contributors GitHub forks

GiveMintBot: An advanced Telegram bot for creating, managing, and automating giveaways in Telegram channels. It supports multi-admin channel management, giveaway templates, automatic deadline handling, smart winner selection, and secure prize delivery via private messages.


✨ Features

  • Add & Manage Channels - Link multiple channels with admin verification
  • 🎁 Create Giveaways - Step-by-step wizard for easy setup
  • 🏆 Winner Selection - Random or First-X participant selection
  • 🎯 Required Subscriptions - Ensure participants join specific channels
  • 📊 Dashboard & Analytics - Track active/expired giveaways and stats
  • Automatic Deadline - Background task checks and ends giveaways
  • 💬 Prize Distribution - Automatic DM to winners with their prizes
  • 📄 Giveaway Templates – Save pre-configured giveaway settings to create new giveaways faster

📋 Requirements

  • Python 3.11+
  • MongoDB (running locally or MongoDB Atlas)
  • Telegram Bot Token (from @BotFather)
  • Telegram API credentials (from my.telegram.org)

🚀 Installation

  1. Clone or download this project

  2. Install dependencies:

pip install -r requirements.txt
  1. Setup environment variables:

Open .env and edit with your values:

BOT_TOKEN=your_bot_token_here
API_ID=your_api_id_here
API_HASH=your_api_hash_here
MONGODB_URI=mongodb://localhost:27017/
DB_NAME=giveaway
BOT_OWNER_ID=your_telegram_user_id

How to get these values:

  1. Run the bot:
python main.py

📖 Usage

Add a Channel

  1. Click ➕ Add Channel
  2. Send the channel ID or @username
  3. The bot verifies admin permissions
  4. Channel is linked and ready for giveaways

Create a Giveaway

  1. Click 🎁 Create Giveaway
  2. Follow the wizard:
    • Select channel
    • Enter title
    • Enter description
    • Set duration (e.g., 5m, 1h, 2d)
    • Set winner count
    • Choose winner type (Random / First X)
    • Send prize(s)
    • Add required subscriptions (optional)
    • Confirm and publish

Prize Format

Single Prize (same for all winners):

THM-PREMIUM-KEY-9A3X7B2

Multiple Prizes (one per winner):

johndoe:12345
janedoe:pass4321
THM-PREM-KEY-9Q2W
KEY-AAA1-BBB2-CCC3

Supported formats:

  • username:password
  • email@example.com:password
  • REDEEM-CODE-12345
  • KEY-XXXX-YYYY-ZZZZ
  • https://www.canva.com/join/abc-def-ghi [ Link Suported ]

One prize per line. Each line is treated as a separate prize.

Dashboard

Click 📊 Dashboard to:

  • View active giveaways
  • View expired giveaways
  • Check analytics (participants, winners, etc.)

🔐 Important Notes

  • The bot must be an admin in every channel where giveaways are hosted
  • The bot must be an admin in all channels used for forced subscriptions.
  • Required permissions: Post messages, Edit messages, Delete messages
  • Prizes are sent via private DM to winners only
  • The bot verifies that users are channel admins before allowing them to add channels

🛠 Troubleshooting

"Failed to link channel"

  • Ensure the bot is an admin in the channel
  • Check that the channel ID/username is correct
  • Verify you are an admin in the channel

"Missing permissions"

  • Grant the bot: Post, Edit, Delete messages permissions

"Giveaway not posting"

  • Verify bot is still an admin with proper permissions

Author

Feel free to reach out if you have any questions or feedback.

About

GiveMintBot: An advanced Telegram bot for creating, managing, and automating giveaways in Telegram channels.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages