1
Gather your KeyAuth credentials
From your application settings, note the app name and owner ID. From Seller
Settings (a different page) copy your seller key.These are two different credentials with very different blast radii — see
Configuration before you paste either one anywhere.
2
Whitelist your server's IP
Every seller API call sends the seller key as a URL query parameter — KeyAuth documents no
POST form — so IP whitelisting in Seller Settings is the main control you have over that
credential.
3
Create the Discord application
Create a bot at the Discord Developer Portal.
No privileged intents are required. Invite it with the
bot and applications.commands
scopes, plus Manage Roles if you want /key redeem to assign a role automatically — see
Installation & Permissions for the full list.4
Confirm HWID checking is enabled
On your KeyAuth application, confirm HWID checking is turned on. With it off, KeyAuth
runs no HWID logic and a reset changes nothing — the bot logs a warning at startup and says
so in the command response rather than reporting a success that isn’t one. Check any time
with
/licops status.5
Turn on License Operations (optional)
Self-service, key management, and the support control plane all require the seller key to
be configured. Once it is:
/licops permissions preset role:@Support preset:Supportgrants a sensible starting set of staff capabilities — see Support Operations/licops policy setconfigures the HWID reset quota before you enable self-service/licops roles mapconnects a KeyAuth subscription to a Discord role/licops reconcile limit:50populates the local mirror once, in batches, before setting a scheduled sweep
After setup
There’s no bot-wide/help command — the command reference starts at
Self-Service for what any member can run, and
Support Operations for the staff-facing License
Operations commands.
Something not working? Support covers the common failure modes and what
KeyAuth’s API can’t do.