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-2f80e9You 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
View Channel - Bot needs to see the channel
Send Messages - Bot needs to send messages and embeds
Embed Links - Bot needs to create rich embeds for games and activities
Create Public Threads - Required for games and activities (bot creates threads)
Send Messages in Threads - Bot needs to post in threads
How to Set Permissions
Option 1: Server-Wide Permissions (Recommended)
Go to Server Settings → Roles
Find the bot's role (or create one)
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
Right-click on the channel → Edit Channel
Go to Permissions tab
Add the bot's role or user
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:
Display wallet details in the command response (embed) including:
Wallet address
Seed phrase (24 words)
PEM file content
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.
Updating Project Logo
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_qrtableOnly 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 namewallet-address: Update wallet addresswallet-pem: Update PEM file contentsupported-tokens: Update supported tokens listproject-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
Project Logo vs QR Code:
Project Logo (
project-logo-url): For regular projects, used in notificationsQR Code (
qr-code-url): Only for Community Fund, displayed in game embeds
You can't mix them:
Regular projects can only have
project-logo-urlCommunity Fund can only have
qr-code-url
Both are optional but recommended for better user experience
Tip: Best way to create wallet QR code is to copy Community Fund wallet address, paste it in chatGPT and ask it to generate QR code for give wallet address.
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:
⚽ Betting House - Earnings from football matches with no winners
🎨 Auction House - Earnings from NFT auction sales
🎲 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 transferhouse-type: Which house to top up:betting- Betting Houseauction- Auction Houselottery- 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 tiptoken: Token tickeramount: Amount to sendsource: Which house to use:betting- From Betting Houseauction- From Auction Houselottery- 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:
Check Lottery House balance for that token
Deduct the amount from Lottery House
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:
Create a Generic Discord Profile: Create a separate Discord account for your project (e.g., "Project Bot Account")
Register Project Wallet: Use
/set-walletwith the generic account to register your Project Wallet addressDeposit to Community Fund: Transfer tokens/NFTs/SFTs to the Community Fund wallet address
Top Up House Balance: Use
/virtual-house-topupwith the generic account to transfer from Virtual Account to House BalanceFund 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 notificationsNFT Listings- Receive marketplace listing notificationsESDT 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 fromchannel(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
Activity Creation: When an activity (Auction, Listing, or Lottery) is created in any server
Network Broadcast: The bot checks all servers subscribed to that activity type
Automatic Forwarding: The activity embed is forwarded to all subscribed channels
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:
Ask your Community: to register their wallets with
/set-walletcommand.Run Activities: Set up lotteries, football betting, auctions, and RPS games
Manage Users: Help users register wallets and top up their accounts
Monitor Activity: Use admin commands to track balances and activity
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