Documentation

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.

New here? Start with Installation, then jump to Web Dashboard to configure your server without typing a single command.

Installation

Getting AstroBot into your server takes less than a minute.

1

Click Invite

Go to the Invite page and select the server you want to add AstroBot to.

2

Authorize permissions

Discord will ask you to confirm the requested permissions — see Permissions below for details.

3

Run your first command

Try /help in your server to confirm AstroBot is online and responding.

4

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.

PermissionUsed for
Manage RolesAutoroles, leveling role rewards, mute/timeout actions
Manage ChannelsTicket system channel creation
Kick / Ban MembersModeration commands
Manage MessagesPurge, auto-moderation, embed builder
Send Messages / EmbedsGreetings, giveaways, announcements
AstroBot's role must sit above any role it needs to manage (e.g. muted role, autoroles) in your server's role hierarchy.

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 are a virtual in-bot currency only — they hold no real-world monetary value. See our Terms of Service for full details.

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 astrocoins

3. 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; } } });
Each API key is fully isolated from other users' keys and has a daily limit on the amount of coins it can add — if a key is leaked or unusual activity occurs, you can revoke it immediately from the API Keys page without affecting any other bot.

Available methods

PythonNode.jsDescription
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
The blacklist is scoped to your own API key only — it has no effect on any other bot's wallet space, and no effect on AstroBot's own /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.

Gold Tiers

AstroBot offers optional Gold Tier subscriptions that unlock extra features on top of the free core bot. See the Plans page for full pricing and feature comparisons, and our Refund Policy for how refunds work.

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.