The following commands can only be used in private chat. Using them in a group will prompt "This command can only be used in private chat. Please contact the bot directly."
Purpose: Register an account when first using the bot and get your exclusive invite link
Usage:
/start
Features:
- Create user account (if not exists)
- If accessed via invite link, automatically record invitation relationship
- Display welcome message and exclusive invite link
- Invite link format:
https://t.me/{bot_username}?start={your_telegram_id}
Use Cases:
- New users first time using the bot
- Need to get your own invite link for promotion
Purpose: View your points, binding information, invite count, and other detailed information
Usage:
/me
Displayed Content:
- Telegram ID
- Current Points (Total Points)
- Unlocked Points (Points available for transfer)
- Monthly Earned Points
- Binance UID (if bound)
- X/Twitter Account (if bound)
- Community Account Address (if bound, displayed based on configuration)
- Successful Invite Count
- Exclusive Invite Link
Use Cases:
- Check current points status
- Verify binding information is correct
- View invite statistics
Purpose: Select account type to bind via buttons
Usage:
/bind
Features:
- Display binding option buttons:
- 🔗 Bind Binance UID
- 🧵 Bind X Account
🅰️ Bind Community Account (ifCOMMUNITY_ACCOUNT_NAMEis configured)
- Click button to see specific binding command format
Use Cases:
- When unsure of binding command format
- When need to bind multiple accounts
Purpose: Bind Binance account UID
Usage:
/bind_binance 12345678
Parameters:
<UID>: Binance UID, must be numeric only
Validation Rules:
- UID must be numeric only
- Error prompt if format is incorrect
Use Cases:
- Participate in activities requiring Binance UID
- Submit Binance-related tasks
Purpose: Bind X (formerly Twitter) account
Usage:
/bind_twitter @yourhandle
Parameters:
@handle: X/Twitter username, must start with@
Validation Rules:
- Must start with
@ - Error prompt if format is incorrect
Use Cases:
- Participate in activities requiring Twitter account
- Submit Twitter-related tasks
Purpose: Bind community account address (e.g., wallet address)
Usage:
/bind_address your_address_here
Parameters:
<address>: Account address, can be any string
Notes:
- Current version has no format validation, recommend entering correct address format
- Address will be saved directly to database
Use Cases:
- Bind wallet address
- Bind other community accounts
Purpose: View successful invite count and exclusive invite link
Usage:
/invites
Displayed Content:
- Successful invite count (invited users who have joined the group)
- Exclusive invite link
- Join group button (if group link is configured)
Reward Mechanism:
- When invitee first signs in the group, inviter receives point reward (configurable
INVITE_REWARD_POINTS)
Use Cases:
- View invite promotion results
- Get invite link for promotion
Purpose: Submit Binance or Twitter article links to participate in activities
Usage:
/submit
Process:
- Send
/submitcommand - Select activity to participate in (loaded from
campaigns.json) - Select submission type (Binance or Twitter)
- Enter or paste link
- Confirm submission
Submission Types:
- Binance article link
- Twitter article link
Notes:
- Each activity can only submit once per type
- Links will be validated for format
- Can view submissions in
/my_submissionsafter submitting
Use Cases:
- Participate in community activities
- Complete tasks to earn points
Purpose: View all your submitted activity links
Usage:
/my_submissions
Displayed Content:
- List of all submitted links
- Each link shows: Type (Binance/Twitter), Link, Campaign ID
Use Cases:
- Check submission records
- Confirm if already submitted
Purpose: Query current price of specified cryptocurrency
Usage:
/price BTC
/price ETH
/price BNB
Parameters:
<symbol>: Cryptocurrency trading pair symbol (e.g., BTC, ETH, BNB)
Features:
- Get real-time price from configured API
- Support all cryptocurrencies traded on exchange
- API address can be configured in
config.jsonc
Use Cases:
- Query coin price
- View real-time market
Purpose: Send feedback, suggestions, or questions to administrators
Usage:
/feedback Enter your feedback content here
Parameters:
<content>: Feedback content, can be any text
Features:
- Feedback content saved to
feedback.csvfile - Administrators can export and view via
/export_feedback
Use Cases:
- Report issues
- Make suggestions
- Request features
Purpose: Unlock a portion of total points for transfer to other users
Usage:
/unlock_points 100
Parameters:
<amount>: Number of points to unlock, must be positive integer
Features:
- Deduct specified amount from total points
- Add deducted points to unlocked points
- Unlocked points can be used for transfer
Notes:
- Unlocked points cannot be directly converted back to total points
- Ensure sufficient points available to unlock
Use Cases:
- Prepare to transfer to other users
- Unlock points before sending red packet
Purpose: Directly transfer points to specified user
Usage:
/transfer_points 123456789 50
Parameters:
<recipient_id>: Recipient's Telegram ID<amount>: Transfer point amount, must be positive integer
Features:
- Deducted from unlocked points
- Directly added to recipient's total points
- Transfer log recorded
Notes:
- Can only use unlocked points for transfer
- Need to know recipient's Telegram ID
- Transfer cannot be reversed
Use Cases:
- Quick transfer to known user
- Transfer without interactive confirmation
Purpose: Transfer points through button interaction
Usage:
/transfer
Process:
- Send
/transfercommand - Enter recipient's Telegram ID
- Enter transfer amount
- Confirm transfer information
- Complete transfer
Features:
- Step-by-step confirmation to reduce errors
- Display transfer details for confirmation
- Transfer records saved
Use Cases:
- Transfer requiring confirmation
- When unfamiliar with command format
Purpose: View your transfer history records
Usage:
/transfers
Displayed Content:
- Transfer record list (recent records)
- Each record shows: Recipient ID, Transfer Amount, Time
Use Cases:
- View transfer history
- Verify transfer records
Purpose: View recent extra points earned
Usage:
/recent_points
/recent_points 20
Parameters:
[limit]: Optional, number of records to display, default 10, maximum 50
Displayed Content:
- Recent extra points records
- Each record shows: Point amount, Reason, Time
- Total points in last 7 days
- Total points in last 30 days
Use Cases:
- View points earning records
- Verify points source
Purpose: View FAQ answers
Usage:
/faq
Features:
- Display FAQ category list
- Click category to view questions in that category
- Click question to view detailed answer
- FAQ content loaded from
faq.jsonfile
Use Cases:
- Find answers to questions
- Learn how to use features
Purpose: View descriptions of all available commands
Usage:
/help
Displayed Content:
- User command list (private chat)
- Group command list
- Admin command list (visible only to admins)
Use Cases:
- View all available commands
- Learn command purposes
The following commands can be used in the specified group (ALLOWED_GROUP_ID).
Purpose: View today's sign-in word
Usage:
/signinword
Features:
- Display today's sign-in word
- Display points ranking information
- Display consecutive sign-in reward information
Use Cases:
- View sign-in word when forgotten
- Learn sign-in reward rules
Purpose: View monthly points ranking
Usage:
/ranking
Displayed Content:
- Monthly points ranking (Top 10)
- Each user shows: Rank, Name, Points
- Administrators not shown in ranking
Use Cases:
- View points ranking
- Understand community activity
Purpose: View monthly activity ranking
Usage:
/active
Displayed Content:
- Monthly activity ranking (Top 10)
- Activity based on points calculation, with minimum points requirement (
MIN_ACTIVE_POINTS) - Administrators not shown in ranking
Use Cases:
- View active user ranking
- Understand community participation
Purpose: Query cryptocurrency price in group
Usage:
/price BTC
Features:
- Same functionality as private chat version
- Results sent to group
Purpose: Sign in daily by sending sign-in word
Usage:
Send the day's sign-in word in the group (randomly selected from signin_words.txt)
Features:
- Bot publishes sign-in word daily at specified time (
SIGNIN_WORD_TIME) - Users send matching sign-in word to complete sign-in
- Sign-in success earns points (
SIGNIN_POINTS) - 7 consecutive days sign-in earns extra reward (
SIGNIN_BONUS_POINTS) - Sign-in word pinned for 5 minutes
Reward Mechanism:
- Daily sign-in: Earn base points
- 7 consecutive days: Earn extra reward points
- First group sign-in: Inviter earns reward points
Use Cases:
- Daily sign-in to earn points
- Participate in community activities
Purpose: Earn points by chatting in group
Features:
- Sending text messages earns points (
CHAT_POINTS) - 1-minute cooldown to prevent spam
- Administrators also earn chat points
- If
CHAT_POINTSis set to 0, this feature is disabled
Use Cases:
- Normal group chat
- Participate in discussions
Purpose: Participate in quiz activities published by administrators
Usage: After administrator publishes question, click option button to select answer
Features:
- Administrators publish questions via
/quiz_send - Questions randomly selected from
quiz_bank.json - Correct answer earns points (
QUIZ_CORRECT_POINTS) - Each question can only be answered once
- Question valid for 30 minutes
Use Cases:
- Participate in community quiz activities
- Earn extra points
Purpose: Send and claim point red packets
Send Red Packet:
/hongbao <total_points> <count>
or
/redpack <total_points> <count>
Parameters:
<total_points>: Total red packet points (must be positive integer)<count>: Number of packets (how many shares)
Claim Red Packet:
- Click "Claim" button in red packet message
- Each red packet can only be claimed once
- Points randomly distributed
- Each user has anti-spam limit (cannot click repeatedly within 1 second)
Features:
- Use unlocked points to send red packet
- Red packet points randomly distributed to claimers
- Red packet displays sender information
- Red packet valid for 24 hours
- Unclaimed red packets after 24 hours automatically expire
- Remaining points from expired red packets automatically refunded to sender's unlocked points
Red Packet Rules:
- Red packet valid for 24 hours after creation
- Red packets unclaimed after 24 hours automatically expire
- Remaining points after expiration automatically refunded to sender at specified time daily (
REDPACKET_REFUND_TIME, default 01:00) - Refunded points added to sender's unlocked points
- Expired red packets cannot be claimed
Notes:
- Need to unlock sufficient points before sending red packet
- Red packet points randomly distributed, last share gets all remaining points
- If red packet not fully claimed, remaining points automatically refunded after expiration
Use Cases:
- Celebration activities
- Community interaction
- Share points
The following commands can only be used by administrators (need to be configured in ADMIN_IDS in config.jsonc).
Purpose: Add points to specified user's total points
Usage:
/add_points 123456789 100
Parameters:
<user_id>: User's Telegram ID<amount>: Number of points to add
Features:
- Directly added to user's total points
- Operation logged
- Sensitive operation, use with caution
Use Cases:
- Activity rewards
- Compensate points
- Special rewards
Purpose: Add unlocked points to specified user (can be used for transfer)
Usage:
/add_unlock_points 123456789 50
Parameters:
<user_id>: User's Telegram ID<amount>: Number of unlocked points to add
Features:
- Directly added to user's unlocked points
- Unlocked points can be used for transfer
- Operation logged
Use Cases:
- Transfer rewards
- Special unlocked points distribution
Purpose: Batch add points to users via CSV file upload
Usage:
- Prepare CSV file with format:
telegram_id,points 123456789,100 987654321,50
- Name file as
batch_points.csv - Send file to bot in private chat
Features:
- Support batch processing multiple users
- Automatically validate user ID and points format
- Operation logged
Use Cases:
- Large-scale activity rewards
- Batch compensation
- Data migration
Purpose: Publish quiz activity in group
Usage:
/quiz_send
or
/quiz_send {"question":"Question","options":["A.Option1","B.Option2"],"answer":0}
Features:
- Without parameter: Randomly select question from
quiz_bank.json - With JSON parameter: Use specified question
- Question published in group, users click options to answer
- Correct answer earns points, each question can only be answered once
- Question valid for 30 minutes
Question Format:
{
"question": "Question content",
"options": ["A. Option 1", "B. Option 2", "C. Option 3", "D. Option 4"],
"answer": 0
}question: Question textoptions: Option array (usually A-D)answer: Correct answer index (starting from 0)
Use Cases:
- Publish quiz activities
- Community interaction
- Knowledge contests
Purpose: Add sensitive word to filter list
Usage:
/add_sensitive advertisement
Parameters:
<word>: Sensitive word to add
Features:
- Added to
sensitive_words.txtfile - Group messages containing sensitive words automatically deleted
- Warning message sent after deletion (auto-deleted after 15 seconds)
- Prompt if sensitive word already exists
Use Cases:
- Filter advertisements
- Filter inappropriate content
- Maintain group order
Purpose: Export all user data as CSV file
Usage:
/export_users
Exported Content:
- Telegram ID
- Last Sign-in Time
- Points
- Binance UID
- X Account
- Community Account Address
- Inviter ID
- Joined Group
- Name
- Custom ID
- Last Bonus Date
- Unlocked Points
Use Cases:
- Data analysis
- Data backup
- Generate reports
Purpose: Export all user submitted activity links
Usage:
/export_submissions
Exported Content:
- Telegram ID
- Submission Type (Binance/Twitter)
- Link
- Campaign ID
- Submission Time
Use Cases:
- Review submission content
- Statistics on activity participation
- Data backup
Purpose: Export all submissions for specified campaign
Usage:
/export_submissions_by_campaign campaign001
Parameters:
<campaign_id>: Campaign ID (defined incampaigns.json)
Use Cases:
- Review specific campaign submissions
- Campaign data statistics
Purpose: Export all user feedback
Usage:
/export_feedback
Exported Content:
- User ID
- Feedback Content
- Feedback Time
Use Cases:
- View user feedback
- Handle issues
- Data analysis
Purpose: Export points ranking for specified month
Usage:
/export_month_rank 2025-01
Parameters:
<YYYY-MM>: Month format, e.g.,2025-01
Exported Content:
- User Rank
- Telegram ID
- Points
- Snapshot Time
Use Cases:
- Monthly reports
- Reward distribution
- Data analysis
Purpose: Upload various configuration files to update bot functionality
Supported File Types:
-
campaigns.json- Campaign Configuration[ { "id": "campaign001", "title": "Campaign Title", "desc": "Campaign Description", "deadline": "2025-12-31" } ] -
faq.json- FAQ Configuration{ "categories": [ { "title": "Category Title", "questions": [ { "q": "Question", "a": "Answer" } ] } ] } -
quiz_bank.json- Quiz Bank Configuration[ { "question": "Question", "options": ["A. Option 1", "B. Option 2"], "answer": 0 } ]
Usage:
- Prepare JSON file
- Send file to bot in private chat
- Bot automatically validates format and updates
Use Cases:
- Update activity list
- Update FAQ
- Update quiz bank
Purpose: Search user information by keyword
Usage:
/search_user 123456789
/search_user username
Search Scope:
- Telegram ID
- Username
- Custom ID (custom_id)
- Name
Displayed Content:
- List of matching users
- Each user shows: ID, Name, Points, Unlocked Points
Use Cases:
- Find user information
- User management
- Troubleshooting
Purpose: Get current group ID (for configuration)
Usage:
/get_group_id
Features:
- Use in group
- Returns group ID and prints to server log
- Used to configure
ALLOWED_GROUP_ID
Use Cases:
- Configure bot
- Set allowed groups
Purpose: Randomly select winners from specified user list
Usage:
/draw 3 1001,1002,1003,1004,1005
Parameters:
<count>: Number to draw<id_list>: User ID list, comma-separated
Features:
- Display draw animation
- Randomly select specified number of users
- No duplicate selection (without replacement)
- If requested count exceeds candidate count, all candidates selected
Use Cases:
- Activity draws
- Random selection
- Community activities
Purpose: Reload FAQ configuration file (no bot restart required)
Usage:
/faq_reload
Features:
- Re-read
faq.jsonfile - Update FAQ content
- No bot restart required
Use Cases:
- Update FAQ and take effect immediately
- Test FAQ configuration
Purpose: Manually trigger news broadcast (if news feature enabled)
Usage:
/news
Features:
- Immediately execute news fetch and broadcast
- Requires
NEWS_ENABLEDto betrue - Read news sources from
rss_sources.json
Use Cases:
- Test news feature
- Manually publish news
-
Total Points: All user points, including:
- Earned from sign-in
- Earned from quiz
- Earned from chat
- Invite rewards
- Admin additions
-
Unlocked Points: Points that can be used for transfer
- Unlocked from total points via
/unlock_points - Admin can directly add
- Used for transfer and red packets
- Unlocked from total points via
- Daily Sign-in: Send sign-in word to earn base points
- Consecutive Sign-in: 7 consecutive days sign-in earns extra reward
- Chat Points: Chat in group to earn (with cooldown)
- Quiz Rewards: Correct answer earns points
- Invite Rewards: Invitee first sign-in, inviter earns reward
- Admin Addition: Admin manually adds points
- Transfer: Transfer to other users
- Red Packet: Send red packet to share points
- Ranking: Participate in points and activity rankings
- Sending red packet requires unlocked points
- If red packet not fully claimed, remaining points automatically refunded after expiration
- Refunded points added to sender's unlocked points
- Ensures points are not lost
- Bot publishes sign-in word daily at specified time (
SIGNIN_WORD_TIME) - Sign-in word randomly selected from
signin_words.txt - Users send matching sign-in word in group
- Bot validates and rewards points
- Sign-in word pinned for 5 minutes
- Base Reward: Each sign-in earns
SIGNIN_POINTSpoints - Consecutive Reward: 7 consecutive days sign-in earns
SIGNIN_BONUS_POINTSextra points - Invite Reward: Invitee first sign-in, inviter earns
INVITE_REWARD_POINTSpoints
Activities configured via campaigns.json file:
[
{
"id": "campaign001",
"title": "Activity Title",
"desc": "Activity Description",
"deadline": "2025-12-31"
}
]- User uses
/submitto select activity - Select submission type (Binance/Twitter)
- Enter link
- Confirm submission
- Each activity can only submit once per type
- Automatically detect sensitive words in group messages
- Messages containing sensitive words automatically deleted
- Warning message sent (auto-deleted after 15 seconds)
- Sensitive word list saved in
sensitive_words.txt
- Admin uses
/add_sensitive <word>to add - Directly edit
sensitive_words.txtfile
- Validity Period: Red packet valid for 24 hours after creation
- Expiration Handling: Red packets over 24 hours automatically expire
- Refund Mechanism: Remaining points from expired red packets automatically refunded to sender
- Refund Time: Automatically executed daily at specified time (
REDPACKET_REFUND_TIME, default 01:00) - Refund Method: Remaining points added to sender's unlocked points
-
Sending Requirements:
- Must use unlocked points to send red packet
- Total points and count must be positive integers
- Immediately deducted from unlocked points after sending
-
Claiming Rules:
- Each red packet can only be claimed once per user
- Points randomly distributed, last share gets all remaining points
- Anti-spam limit (cannot click repeatedly within 1 second)
-
Expiration Handling:
- Red packet automatically expires 24 hours after creation
- Cannot be claimed after expiration
- Remaining points automatically refunded at specified time daily
- System automatically checks at specified time daily (default 01:00)
- Find all red packets over 24 hours old and not marked as expired
- Check if there are remaining points (
remaining_points > 0) - Refund remaining points to sender's (
sender_id) unlocked points - Mark red packet as expired (
expired = 1) - Record detailed logs
- Time:
NEWS_BROADCAST_TIME(default 09:00) - Function: Fetch news from RSS sources and broadcast
- Switch:
NEWS_ENABLED
- Time:
SIGNIN_WORD_TIME(default 09:05) - Function: Select and publish daily sign-in word
- Switch:
SIGNIN_WORD_ENABLED
- Time:
PRICE_UPDATE_TIME(default 00:00) - Function: Update daily opening price
- Interval:
PRICE_BROADCAST_INTERVAL_HOURS(default 2 hours) - Function: Broadcast price changes
- Switch:
PRICE_BROADCAST_ENABLED
- Time:
REDPACKET_REFUND_TIME(default 01:00) - Function: Check expired red packets and refund remaining points to sender
- Description: Automatically executed daily, processing red packets over 24 hours old that are not fully claimed
- Processing Content:
- Find all expired and unprocessed red packets
- Refund remaining points to sender's unlocked points
- Mark red packet as expired
- Record processing logs
BOT_TOKEN: Telegram Bot TokenADMIN_IDS: Administrator Telegram ID listALLOWED_GROUP_ID: Allowed group ID for operations
SIGNIN_POINTS: Daily sign-in points (default 1)SIGNIN_BONUS_POINTS: 7 consecutive days sign-in reward (default 2)QUIZ_CORRECT_POINTS: Correct quiz answer points (default 1)CHAT_POINTS: Chat points (default 0, 0 means disabled)INVITE_REWARD_POINTS: Invite reward points (default 3)
NEWS_ENABLED: Enable/disable news broadcastSIGNIN_WORD_ENABLED: Enable/disable sign-in word featurePRICE_BROADCAST_ENABLED: Enable/disable price broadcastNEWS_BROADCAST_TIME: News broadcast time (HH:MM)SIGNIN_WORD_TIME: Sign-in word publish time (HH:MM)PRICE_UPDATE_TIME: Price update time (HH:MM)PRICE_BROADCAST_INTERVAL_HOURS: Price broadcast interval (hours)REDPACKET_REFUND_TIME: Red packet refund check time (HH:MM, default 01:00)
COMMUNITY_NAME: Community nameCOMMUNITY_GROUP_LINK: Group linkCOMMUNITY_ACCOUNT_NAME: Community account name (e.g., wallet name)DEFAULT_LANGUAGE: Default language (zh_CN or en_US)
PRICE_API_BASE_URL: Price API address
Daily sign-in word list, one word per line, supports Chinese and English.
Sensitive word list, one word per line.
Activity configuration file, defines activities that can be participated in.
FAQ configuration file, defines frequently asked questions and answers.
Quiz bank configuration file, defines quiz activity questions.
RSS news source configuration (if news feature enabled).
Activity matching configuration, used to automatically match user messages.
- Private Chat Commands: Most user commands can only be used in private chat
- Group Restrictions: Group commands can only be used in configured group (
ALLOWED_GROUP_ID) - Admin Permissions: Admin commands require ID in
ADMIN_IDS - Point Transfer: Can only use unlocked points for transfer
- Sign-in Limit: Can only sign in once per day
- Quiz Limit: Each question can only be answered once
- File Format: Uploaded configuration files must be valid JSON format
- Data Backup: Recommend regular data export for backup
- Red Packet Validity: Red packets valid for 24 hours, remaining points automatically refunded to sender after expiration
- Red Packet Refund: System automatically checks and refunds remaining points from expired red packets daily, no manual operation required
For questions or suggestions, please use /feedback command to send feedback.
Last Updated: 2025