AstroBot Docs
Everything you need to set up, configure, and get the most out of AstroBot — from your first invite to advanced dashboard settings.
Introduction
AstroBot is an all-in-one Discord bot covering moderation, an in-server economy (AstroCoins), leveling, tickets, giveaways, and a full web dashboard for configuration — no command memorization required.
This documentation covers everything from adding the bot to your server, to configuring advanced features through the dashboard, to understanding premium Gold Tiers.
Installation
Getting AstroBot into your server takes less than a minute.
Click Invite
Go to the Invite page and select the server you want to add AstroBot to.
Authorize permissions
Discord will ask you to confirm the requested permissions — see Permissions below for details.
Run your first command
Try /help in your server to confirm AstroBot is online and responding.
Open the dashboard
Visit the Dashboard to configure moderation, economy, and other modules visually.
Permissions
AstroBot requests a standard set of permissions needed for its core features. You can review and adjust these at any time in Discord's Server Settings.
| Permission | Used for |
|---|---|
| Manage Roles | Autoroles, leveling role rewards, mute/timeout actions |
| Manage Channels | Ticket system channel creation |
| Kick / Ban Members | Moderation commands |
| Manage Messages | Purge, auto-moderation, embed builder |
| Send Messages / Embeds | Greetings, giveaways, announcements |
Moderation
Core moderation commands are available to anyone with the appropriate Discord permissions — no extra setup required.
# Example commands
/ban user:@member reason:"spam"
/timeout user:@member duration:10m
/purge amount:50
/warn user:@member reason:"rule 3"Full auto-moderation rules (banned words, spam detection, link filters) can be configured from the dashboard.
AstroCoins Economy
AstroCoins is AstroBot's built-in virtual currency system, letting members earn, spend, and transfer coins within your server.
/daily— claim a free daily coin reward/balance— check your AstroCoins balance/transfer— send coins to another member (captcha required)/leaderboard— view the top earners in your server
AstroCoins API
Want your own Discord bot to interact with the AstroCoins system — adding coins, removing coins, transferring between users, reading balances, or managing a per-key blacklist? There are ready-made client libraries for Python and Node.js that let you do this with minimal effort, without needing any direct database connection.
1. Create an API Key
Go to the API Keys page, enter a name for the key (e.g. your bot's name), and click "Create Key". The key is shown to you only once — save it immediately.
2. Install the library
# In your terminal
pip install astrocoins# In your terminal
npm install astrocoins3. Use it in your bot
# Set the key as an environment variable, or pass it directly to the Client
export ASTROCOINS_API_KEY="asc_xxxxxxx"
# Python code in your bot
from astrocoins import AstroCoinsClient
coins = AstroCoinsClient() # automatically reads the key from ASTROCOINS_API_KEY
# Add coins to a user
new_balance = coins.add_coins(user_id=123456789012345678, amount=100, reason="Daily reward")
# Remove coins
coins.remove_coins(user_id=123456789012345678, amount=50, reason="Shop purchase")
# Read balance
balance = coins.get_balance(user_id=123456789012345678)
# Transfer coins between two users (within this key's wallet space)
result = coins.transfer(from_user_id=123456789012345678, to_user_id=987654321098765432, amount=25, reason="Trade")
# Blacklist a user — they can no longer receive/lose coins through this key
coins.blacklist_user(user_id=123456789012345678, reason="Chargeback abuse")
# Check / remove a blacklist entry
coins.is_blacklisted(user_id=123456789012345678)
coins.unblacklist_user(user_id=123456789012345678)// Set the key as an environment variable, or pass it directly to the Client
export ASTROCOINS_API_KEY="asc_xxxxxxx"
// Node.js code in your bot
const { AstroCoinsClient } = require("astrocoins");
// or: import { AstroCoinsClient } from "astrocoins";
const coins = new AstroCoinsClient(); // automatically reads the key from ASTROCOINS_API_KEY
// Add coins to a user
const newBalance = await coins.addCoins(123456789012345678, 100, "Daily reward");
// Remove coins
await coins.removeCoins(123456789012345678, 50, "Shop purchase");
// Read balance
const balance = await coins.getBalance(123456789012345678);
// Transfer coins between two users (within this key's wallet space)
const result = await coins.transfer(123456789012345678, 987654321098765432, 25, "Trade");
// Blacklist a user — they can no longer receive/lose coins through this key
await coins.blacklistUser(123456789012345678, "Chargeback abuse");
// Check / remove a blacklist entry
await coins.isBlacklisted(123456789012345678);
await coins.unblacklistUser(123456789012345678);Full example: a !give command in a Discord bot
import discord
from discord.ext import commands
from astrocoins import AstroCoinsClient, AstroCoinsError
bot = commands.Bot(command_prefix="!", intents=discord.Intents.default())
coins = AstroCoinsClient()
@bot.command()
async def give(ctx, member: discord.Member, amount: int):
try:
new_balance = coins.add_coins(member.id, amount, reason=f"Given by {ctx.author}")
await ctx.send(f"✅ Added {amount} coins to {member.mention}. New balance: {new_balance}")
except AstroCoinsError as exc:
await ctx.send(f"❌ Error: {exc}")const { Client, GatewayIntentBits } = require("discord.js");
const { AstroCoinsClient, AstroCoinsError } = require("astrocoins");
const client = new Client({ intents: [GatewayIntentBits.Guilds, GatewayIntentBits.GuildMessages, GatewayIntentBits.MessageContent] });
const coins = new AstroCoinsClient();
client.on("messageCreate", async (msg) => {
if (!msg.content.startsWith("!give")) return;
const [, mention, amountStr] = msg.content.split(" ");
const member = msg.mentions.members.first();
const amount = parseInt(amountStr, 10);
try {
const newBalance = await coins.addCoins(member.id, amount, `Given by ${msg.author.tag}`);
await msg.reply(`✅ Added ${amount} coins to ${member}. New balance: ${newBalance}`);
} catch (exc) {
if (exc instanceof AstroCoinsError) {
await msg.reply(`❌ Error: ${exc.message}`);
} else { throw exc; }
}
});Available methods
| Python | Node.js | Description |
|---|---|---|
get_balance(user_id) | getBalance(userId) | Returns the user's current balance |
add_coins(user_id, amount, reason="") | addCoins(userId, amount, reason?) | Adds coins and returns the new balance (raises/throws BlacklistedError if the user is blacklisted for this key) |
remove_coins(user_id, amount, reason="") | removeCoins(userId, amount, reason?) | Removes coins and returns the new balance (raises/throws InsufficientFundsError or BlacklistedError) |
transfer(from_user_id, to_user_id, amount, reason="") | transfer(fromUserId, toUserId, amount, reason?) | Moves coins from one user to another within this key's wallet space. Fails if either user is blacklisted, the amount isn't positive, the sender is the recipient, or the sender's balance is insufficient |
blacklist_user(user_id, reason="") | blacklistUser(userId, reason?) | Blacklists a user within this key's wallet space — they can no longer send/receive coins through this key until removed |
unblacklist_user(user_id) | unblacklistUser(userId) | Removes a user from this key's blacklist |
is_blacklisted(user_id) | isBlacklisted(userId) | Returns whether the user is currently blacklisted for this key |
list_blacklist() | listBlacklist() | Returns every blacklist entry (user ID, reason, timestamp) for this key |
/balance//transfer economy inside your server.Leveling
Members automatically earn XP from chatting, leveling up over time. Configure XP rates, level-up messages, and role rewards from the dashboard.
/rank— view your current level and XP/leaderboard-xp— view the server's top-ranked members
Tickets
Set up a support ticket system so members can privately reach your staff team. Configure ticket categories, staff roles, and welcome messages from the dashboard's Tickets module.
Giveaways
Run giveaways directly from Discord or the dashboard, with customizable duration, winner count, and role requirements.
/giveaway start duration:1h winners:1 prize:"Nitro"Web Dashboard
The dashboard at /servers gives you a visual way to configure every AstroBot module — no slash commands required. Log in with Discord, select your server, and start configuring.
Available modules include moderation logs, autoroles, greetings, auto-replies, an embed builder, and message scheduling.
Autoroles & Greetings
Automatically assign roles to new members and send a custom welcome message (with optional welcome card image) when someone joins your server. Both are configured entirely through the dashboard.
Embed Builder
Design and send rich embeds — announcements, rules, or info panels — using the dashboard's drag-and-drop embed builder, and save templates for reuse.
Redeeming Codes
Received a gift code or promo code? Head to the Redeem page, paste your code, and it will be applied to your account automatically.
FAQ
Is AstroBot free?
Yes. The core bot — moderation, economy, leveling, tickets, and more — is free forever. Gold Tiers add optional extras on top.
Why isn't AstroBot responding to commands?
Check that AstroBot has the required permissions in that channel, and that its role sits high enough in your server's role list.
Can I use AstroBot in multiple servers?
Yes, there's no limit on the number of servers you can add AstroBot to.
Get Help
Still stuck? Reach out through our official support server, or use the dashboard's /feedback-bot command to send feedback directly to our team.