Guide

Setup wizard

Every server runs under its own Discord application. You create it, Keepcord hosts it. The wizard walks you through the application, the privileged intents, the invite and the first configuration.

Why your own bot

Shared bots get rate-limited together and banned together. With your own application the bot carries your name and avatar, its rate limits are yours alone, and nobody else can ever hold the tokens of your members. Keepcord stores your bot token and client secret encrypted (AES-256-GCM) and only uses them to run the process and to re-add members.

All three privileged intents are required

Server Members, Message Content and Presence intents must be enabled on the Bot page of the Developer Portal. Keepcord checks the flags of the application through the Discord API before the wizard lets you continue. Without them backups of messages, join tracking and anti-nuke cannot work.

1. Create the application

  1. 1

    Open the Discord Developer Portal

    discord.com/developers/applications → New Application. The name is what members will see on the bot, you can change it later.
  2. 2

    OAuth2 → copy Client ID and reset the Client Secret

    The secret is shown once. Keep the tab open, you will paste both into Keepcord.
  3. 3

    OAuth2 → add the redirect URL

    Add exactly https://api.keepcord.app/verify/callback. Members are sent here after authorizing; a wrong redirect makes Discord show "Invalid OAuth2 redirect_uri".
  4. 4

    Bot → Reset Token

    Copy the token. Treat it like a password: anyone with the token controls the bot.

2. Enable intents

Still on the Bot page, scroll to Privileged Gateway Intents and switch on all three. Applications in fewer than 100 servers can enable them without review.

IntentUsed for
Server MembersJoin tracking, auto-kick of unverified members, role restore on pull, member snapshots in backups.
Message ContentMessage backups (text, embeds, attachments), restore of messages through webhooks.
PresenceOnline indicators in the dashboard member list; required by Discord to be consistent with the others.

3. Register in Keepcord

Back in the wizard, paste the name, client id, client secret and token. Keepcord verifies them live:

  • the token must belong to a bot whose application id equals the client id,
  • the client secret is exchanged for a client-credentials token to make sure it is valid,
  • the application flags are read from GET /applications/@me to confirm the intents.

Within fifteen seconds the Keepcord bot process picks the new application up, logs in to the gateway and reports a heartbeat. The wizard waits for that heartbeat before moving on, and the Re-check button re-reads the intents if you enabled them after registering.

What Keepcord checks
POST /api/botapps        name, clientId, clientSecret, token
  ├─ GET  https://discord.com/api/users/@me          (bot token)      → id must equal clientId
  ├─ POST https://discord.com/api/oauth2/token       (client secret)  → must return 200
  └─ GET  https://discord.com/api/applications/@me   (bot token)      → flags: GATEWAY_GUILD_MEMBERS,
                                                                        GATEWAY_MESSAGE_CONTENT, GATEWAY_PRESENCE
bot process (every 15 s)  → reconciles BotApp rows, logs in, heartbeat every 30 s
wizard                    → GET /api/botapps/:id/status until lastOnlineAt is fresh

4. Invite the bot

The wizard builds the invite link for your application with the permission set below. Keepcord polls until the bot joins, then continues automatically.

PermissionWhy
Manage RolesGive the verified role, restore roles on pull, recreate roles on restore.
Manage ChannelsRecreate channels and categories on restore.
Manage ServerRestore server settings (name, icon, verification level, AFK, system channel).
Manage WebhooksRe-post backed-up messages with the original author name and avatar.
Manage ExpressionsRestore emojis and stickers.
Kick / Ban MembersAuto-kick unverified members, restore bans, anti-nuke actions.
Create InviteMember pull uses guilds.join and needs the bot to be able to add members.
View Audit LogAnti-nuke attribution: who deleted what.
Send Messages, Embed Links, Attach Files, Read HistoryVerify message, reports in the log channel, message backups.
Keep the bot role above the verified role and above any role you want it to restore. Discord does not let a bot manage roles higher than its own.

5. Configure

Pick the channel where the Verify button lives, the role (or roles) members receive after verifying, the log channel for reports and optionally an alert channel for incidents. The wizard then posts the verify message with your template. Everything can be changed later under Verification and Messages.

The same setup is available from Discord with /setup, and the verify message can be re-posted at any time with /verify-embed.

Re-running the wizard

The panel is locked until the wizard is completed or skipped. Skip for now opens the panel without a bot: verification and backups stay off until an application is attached. You can reopen the wizard from Billing → Run setup again, and manage every registered application under Developer → Bot apps. After a token leak, reset the token in the Developer Portal, remove the app in Keepcord and register it again.