Admin Setup Guide

Complete guide for admins to set up and configure the ESDT Tipping Bot

This comprehensive guide will walk you through setting up the ESDT Tipping Bot for your Discord server.


Prepare Supported Tokens List

  • Make a list of all ESDT tokens you want the bot to support, separated by commas.

  • Example: WEGLD-bd4d79,USDC-c76f1f,REWARD-cf6eac,UTK-2f80e9

  • You will need this list when registering a project wallet.


Channel Permissions

Before you start, ensure the bot has the following permissions in the channels where it will operate.

Required Permissions

  1. View Channel - Bot needs to see the channel

  2. Send Messages - Bot needs to send messages and embeds

  3. Embed Links - Bot needs to create rich embeds for games and activities

  4. Create Public Threads - Required for games and activities (bot creates threads)

  5. Send Messages in Threads - Bot needs to post in threads

How to Set Permissions

  1. Go to Server SettingsRoles

  2. Find the bot's role (or create one)

  3. Enable these permissions:

    • ✅ View Channel

    • ✅ Send Messages

    • ✅ Embed Links

    • ✅ Attach Files

    • ✅ Read Message History

    • ✅ Create Public Threads

    • ✅ Send Messages in Threads

Option 2: Channel-Specific Permissions

  1. Right-click on the channel → Edit Channel

  2. Go to Permissions tab

  3. Add the bot's role or user

  4. Enable the same permissions listed above

Verification

Test permissions by running:

If the bot responds with an embed, permissions are correctly set.


Creating Your First Project

A project represents a wallet that can send tokens, NFTs, and SFTs to users. You can have multiple projects per server.

Note: The bot supports both NFTs (Non-Fungible Tokens) and SFTs (Semi-Fungible Tokens). SFTs have a quantity (amount) field and can be sent using the same commands as NFTs.

Step 1: Register the Project

Use the /register-project command to create a new project with an auto-generated wallet:

Parameters Explained

  • project-name (Required): A unique name for your project (e.g., "Main Wallet", "Gaming Fund")

  • supported-tokens (Required): Comma-separated list of token tickers (e.g., REWARD-cf6eac,EGLD,USDC)

  • project-logo-url (Optional): URL to your project logo image (will be used in notifications and embeds)

  • user-input (Optional): Additional notes or description for the project

Example

Note: The bot will automatically generate a new MultiversX wallet for your project. You don't need to provide a wallet address or PEM file.

Step 2: Save Your Wallet Information

After registering the project, the bot will:

  1. Display wallet details in the command response (embed) including:

    • Wallet address

    • Seed phrase (24 words)

    • PEM file content

  2. Send you a DM with the same information plus a downloadable PEM file (if possible)

⚠️ Important:

  • Save the PEM file to a secure location (copy/paste into a text editor and save as WalletKey.pem)

  • Save the Seed Phrase - you can use it to log in to xPortal or Extension wallet

  • Keep this information secure - you have full control of this wallet

Step 3: Top Up Your Wallet

Before using the wallet, you must top it up with:

  • EGLD - Required for blockchain transaction fees

  • REWARD tokens - Required for MakeX API usage fees ($0.03 per transaction)

Without these, the bot cannot send tokens, NFTs, or SFTs from this wallet.

Step 4: Verify Project Registration

Check that your project was created:

You should see your project listed with its wallet address and supported tokens.


Setting Up Community Fund

The Community Fund is a special project wallet that:

  • Receives deposits from users (for virtual account top-ups)

  • Powers P2P tips and games

  • Is used for Rock Paper Scissors challenges

  • Can be used for football betting

Step 1: Create Community Fund

Use the /set-community-fund command:

Parameters Explained

  • fund-name (Required): Name for your Community Fund (e.g., "Main Fund", "Gaming Fund")

  • supported-tokens (Required): Comma-separated list of supported tokens (e.g., REWARD-cf6eac,EGLD)

  • qr-code-url (Optional): URL to a QR code image of the Community Fund wallet address

Example

Note: The Community Fund wallet is auto-generated by the bot. You don't need to provide a PEM file - the bot creates and manages this wallet automatically.

Step 2: Get Community Fund Address

After creating the Community Fund, get its address:

This will display:

  • The wallet address (users need this to top up)

  • QR code (if you provided a URL)

  • Supported tokens

Share this address with your users so they can transfer tokens to top up their virtual accounts.

Step 3: Verify Setup

Check blockchain listener status:

This shows:

  • ✅ Listener is running

  • Number of monitored wallets

  • Polling interval (10 seconds)

  • Processed transaction count


Updating Project Settings

You can update project details at any time using /update-project.

To add or update a project logo (for non-Community Fund projects):

Note: Project logos are stored in the projects table and used in:

  • DM notifications when sending tokens

  • Embed footers

  • Project listings

Updating Community Fund QR Code

To add or update the Community Fund QR code:

Note:

  • QR code URLs are stored in the community_fund_qr table

  • Only the Community Fund project can have a QR code URL

  • QR codes are displayed in:

    • Game embeds (RPS, Football Betting)

    • Wallet registration confirmations

    • Community Fund address displays

Updating Other Project Fields

You can update multiple fields at once:

Available Update Options

  • new-project-name: Change the project name

  • wallet-address: Update wallet address

  • wallet-pem: Update PEM file content

  • supported-tokens: Update supported tokens list

  • project-logo-url: Update project logo (non-Community Fund only)

  • qr-code-url: Update QR code (Community Fund only)

  • user-input: Update project notes/description

Important Notes

  1. Project Logo vs QR Code:

    • Project Logo (project-logo-url): For regular projects, used in notifications

    • QR Code (qr-code-url): Only for Community Fund, displayed in game embeds

  2. You can't mix them:

    • Regular projects can only have project-logo-url

    • Community Fund can only have qr-code-url

  3. Both are optional but recommended for better user experience

circle-check

Understanding House Balance

The House Balance is a special account that tracks earnings and spending for different activities. It's separate from the Community Fund and Virtual Accounts.

What is House Balance?

House Balance tracks three separate pools:

  1. ⚽ Betting House - Earnings from football matches with no winners

  2. 🎨 Auction House - Earnings from NFT auction sales

  3. 🎲 Lottery House - Commission from lottery ticket sales

How House Balance Works

Earnings (Money In)

Betting House:

  • When a football match has no winners, all bets go to the Betting House

  • Example: 10 users bet 100 tokens each, no one wins → 1000 tokens to Betting House

Auction House:

  • When an NFT or SFT is sold at auction, the sale amount goes to Auction House

  • Example: NFT/SFT sells for 500 tokens → 500 tokens to Auction House

Lottery House:

  • When lottery tickets are sold, a percentage (house commission) goes to Lottery House

  • Example: 1000 tokens in ticket sales, 5% commission → 50 tokens to Lottery House

Spending (Money Out)

Betting House:

  • Can be used to fund prizes for special matches

  • Can be tipped to users via /house-tip

Auction House:

  • Used to pay NFT/SFT sellers when auctions complete

  • Can be tipped to users

Lottery House:

  • Used to fund initial prize pools for new lotteries

  • Can be tipped to users

Top-Up House Balance

Users can transfer tokens from their Virtual Account to House Balance:

Parameters

  • token: Token ticker (e.g., REWARD-cf6eac)

  • amount: Amount to transfer

  • house-type: Which house to top up:

    • betting - Betting House

    • auction - Auction House

    • lottery - Lottery House

  • memo (Optional): Note about the transfer

Example

This transfers 1000 REWARD tokens from your Virtual Account to the Lottery House.

Withdrawing from House Balance

Admins can tip users from House Balance:

Parameters

  • user: Discord user to tip

  • token: Token ticker

  • amount: Amount to send

  • source: Which house to use:

    • betting - From Betting House

    • auction - From Auction House

    • lottery - From Lottery House

  • memo (Optional): Note about the tip

Example

This sends 500 REWARD tokens from Betting House to the user's Virtual Account.

Checking House Balance

View current House Balance:

This shows:

  • Betting House: Earnings, Spending, PNL (Profit & Loss)

  • Auction House: Earnings, Spending, PNL

  • Lottery House: Earnings, Spending, PNL

PNL = Earnings - Spending (positive = profit, negative = loss)

Using House Balance for Lotteries

When creating a lottery, you can fund the initial prize pool from Lottery House:

If you specify initial-prize-pool, the bot will:

  1. Check Lottery House balance for that token

  2. Deduct the amount from Lottery House

  3. Add it to the lottery's prize pool

Example:

This creates a lottery with:

  • Match 3 out of 50 numbers

  • 10 tokens per ticket

  • 5% house commission

  • 1000 tokens initial prize pool (from Lottery House)

House Balance Top-Up Workaround

Important: To top up House Balance, you need a Virtual Account. Here's the recommended workaround:

  1. Create a Generic Discord Profile: Create a separate Discord account for your project (e.g., "Project Bot Account")

  2. Register Project Wallet: Use /set-wallet with the generic account to register your Project Wallet address

  3. Deposit to Community Fund: Transfer tokens/NFTs/SFTs to the Community Fund wallet address

  4. Top Up House Balance: Use /virtual-house-topup with the generic account to transfer from Virtual Account to House Balance

  5. Fund Lotteries: Once House Balance is funded, you can use it to sponsor initial prize pools when creating lotteries

Why This Works:

  • The generic Discord account gets a Virtual Account when you register the Project Wallet

  • Deposits to Community Fund automatically credit the Virtual Account

  • You can then transfer from Virtual Account to House Balance

  • This allows you to fund House Balance without exposing admin wallets

Example Flow:


Activity Subscriptions

The bot allows your server to subscribe to activities from all other servers where the bot is active. This creates a cross-server network where activities like Auctions, Listings, and Lotteries are automatically forwarded to your designated channels.

What Are Activity Subscriptions?

Activity subscriptions enable your server to receive:

  • NFT Auctions - When auctions are created in other servers

  • NFT Listings - When NFTs are listed for sale in other servers

  • ESDT Lotteries - When lotteries are created in other servers

These activities are automatically forwarded to channels you specify, allowing your community to discover and participate in activities across the entire bot network.

Setting Up Activity Subscriptions

Step 1: Subscribe to Activities

Use the /subscribe-activity command:

Parameters:

  • activity-type: Choose one of:

    • NFT Auctions - Receive auction notifications

    • NFT Listings - Receive marketplace listing notifications

    • ESDT Lotteries - Receive lottery notifications

  • channel: The channel where forwarded activities will appear

Example:

This subscribes your server to receive NFT Auctions from all other servers in the #auctions channel.

Step 2: Multiple Subscriptions

You can subscribe to multiple activity types, each in different channels:

You can also subscribe to the same activity type in multiple channels:

Step 3: Verify Subscriptions

After subscribing, activities from other servers will automatically appear in your designated channels. The bot will:

  • ✅ Forward activity embeds to your channel

  • ✅ Include all relevant information (prices, deadlines, etc.)

  • ✅ Allow users to interact with activities directly

Managing Subscriptions

Unsubscribing from Activities

To stop receiving activities, use /unsubscribe-activity:

Parameters:

  • activity-type: The activity type to unsubscribe from

  • channel (Optional): Specific channel to unsubscribe. If omitted, unsubscribes from all channels for that activity type

Examples:

Unsubscribe from a specific channel:

Unsubscribe from all channels for an activity type:

How It Works

  1. Activity Creation: When an activity (Auction, Listing, or Lottery) is created in any server

  2. Network Broadcast: The bot checks all servers subscribed to that activity type

  3. Automatic Forwarding: The activity embed is forwarded to all subscribed channels

  4. User Interaction: Users in your server can interact with forwarded activities just like local activities

Best Practices

  • Dedicated Channels: Create dedicated channels for each activity type (e.g., #cross-server-auctions, #network-lotteries)

  • Channel Permissions: Ensure the bot has proper permissions in subscription channels

  • Moderation: Monitor forwarded activities to ensure they align with your server's guidelines

  • Selective Subscriptions: Only subscribe to activity types relevant to your community

Benefits

  • Discover New Opportunities: Your community can discover auctions, listings, and lotteries from across the network

  • Increased Engagement: More activities mean more opportunities for user participation

  • Network Effects: Your server's activities are also shared with other servers, increasing visibility

  • Easy Management: Simple subscribe/unsubscribe commands for admins


Next Steps

Now that you've set up your projects and Community Fund, you can:

  1. Ask your Community: to register their wallets with /set-wallet command.

  2. Run Activities: Set up lotteries, football betting, auctions, and RPS games

  3. Manage Users: Help users register wallets and top up their accounts

  4. Monitor Activity: Use admin commands to track balances and activity

  5. Set Up Subscriptions: Subscribe to activities from other servers to expand your community's opportunities

See the Running Activities guide for details on setting up games and activities.

Last updated