2025-03-09 03:42:12 +00:00
2025-03-09 03:36:29 +00:00
2025-03-09 03:36:29 +00:00
2025-03-09 03:36:10 +00:00
2025-03-09 03:42:12 +00:00
2025-03-09 03:36:29 +00:00

Discord LNbits Bot

This bot allows users to purchase a Discord role using Bitcoin Lightning payments through LNbits. Users request an invoice via a slash command, and the bot automatically assigns the role once payment is confirmed.

Features

Users request an invoice using /support (configurable).
The bot generates a Lightning invoice via LNbits.
Once paid, the bot assigns a Discord role.
Configurable check intervals & max attempts to verify payments.


Requirements

  • Ubuntu 24.04
  • Python 3.10+
  • A Discord Bot Token (from the Developer Portal)
  • LNbits Wallet Invoice Key
  • A running LNbits instance (e.g., Sats.Love)

1 Setting Up Your Bot

  1. Go to: Discord Developer Portal
  2. Click New Application
  3. Go to OAuth2 > URL Generator
  4. Check these Scopes:
    • bot
    • applications.commands (for slash commands)
  5. Under Bot Permissions, check:
    • Manage Roles
    • Send Messages
    • Embed Links
    • Read Message History
  6. Copy & paste the generated link into your browser.
  7. Select your Discord server and click Authorize.

Enable Privileged Intents

  1. Go to Discord Developer Portal.
  2. Select your bot application.
  3. Navigate to Bot in the left sidebar.
  4. Scroll down to Privileged Gateway Intents.
  5. Enable the following:
    • Presence Intent
    • Server Members Intent
    • Message Content Intent
  6. Click Save Changes.

Ensure Correct Role Permissions

  1. Go to Server SettingsRoles.
  2. Drag the bots role ABOVE the role it needs to assign.
  3. Ensure the bot has these permissions:
    • Manage Roles
    • Read Messages
    • Send Messages

2 Installation Guide

1. Install System Dependencies

sudo apt update && sudo apt upgrade -y
sudo apt install python3 python3-pip python3-venv -y

2. Clone the Repository

git clone https://code.rustysats.com/saulteafarmer/discord-lnbits-bot
cd discord-lnbits-bot

3. Create & Activate Virtual Environment

python3 -m venv venv
source venv/bin/activate

4. Install Dependencies

pip install -r requirements.txt

3 Find Your Discord Guild ID & Role ID

Before configuring the bot, retrieve your Guild ID and Role ID.

🔹 How to Find Your Guild ID (Server ID):

  1. Open Discord → Go to User Settings (⚙️).
  2. Scroll down to Advanced → Enable Developer Mode.
  3. Right-click your server name (left sidebar) → Click Copy ID.
  4. Save this ID for later (guild_id).

🔹 How to Find Your Role ID:

  1. Open your Discord Server.
  2. Go to Server SettingsRoles.
  3. Right-click on the role you want to assign → Click Copy ID.
  4. Save this ID for later (role_id).

4 Configure the Bot

Edit the config.json file inside the bot directory:

sudo nano config.json
{
  "discord_token": "YOUR_DISCORD_BOT_TOKEN",
  "guild_id": "YOUR_GUILD_ID",
  "role_id": "YOUR_ROLE_ID",
  "lnbits_url": "https://sats.love",
  "lnbits_api_key": "YOUR_INVOICE_READ_KEY",
  "price": 1000,
  "command_name": "support",
  "check_interval": 30,
  "max_checks": 20
}

🔹 What Each Setting Does:

  • discord_token → Your bot token from Discord Developer Portal
  • guild_id → Your Discord server ID
  • role_id → The Discord role the bot will assign
  • lnbits_url → Base URL of your LNbits instance
  • lnbits_api_keyInvoice-only key from LNbits (⚠️ NOT an admin key)
  • price → Price in satoshis (e.g., 1000 = 1000 sats)
  • command_name → Name of the command (default: support)
  • check_interval → How often (in seconds) the bot checks for payments
  • max_checks → How many times the bot will check before stopping

5 Run the Bot

python3 discord_lnbits_bot.py

6 Running the Bot in the Background

nohup python3 discord_lnbits_bot.py &

🔹 To stop the bot:

pkill -f discord_lnbits_bot.py

License

This project is open-source and free to use. Contributions welcome!

Description
No description provided
Readme MIT 32 KiB
Languages
Python 100%