Documentation

← Panda Auth

For Developers · Dashboard

Key Management

Key Management is where you generate, edit, and revoke keys for your service. The page is split into three tabs — Generated Keys (keys you have created but not yet been validated by a user), Active Keys (keys that have been validated and bound to a device), and Keyless/Whitelisted (HWID-only access for users without a key). Each tab has different operations available based on the key's lifecycle stage.

The key lifecycle in one paragraph

You generate a key in Generated Keys. The key has no HWID attached yet. A user enters the key on your get-key flow, which validates it against their device. On validation, the key moves from Generated Keys to Active Keys with the user's HWID bound to it. From that point forward, only that device can use the key.

Generated Keys

The Generated Keys tab is your key creation and pre-validation inventory. Every key you generate yourself (or through our API) lands here first. From this tab you can create new keys, edit their settings, and delete unused keys before they have been claimed by a user.

Generated Keys list
Generated Keys list

Generating a new key

Click Generate New Key to open the creation form. You configure the key's attributes here; once saved the key is added to the Generated Keys list and is ready to be handed to a user.

Generate new key form
Generate new key form

Prefix

Optional. A custom prefix prepended to this specific key, overriding your service's default Key Prefix from General Settings. Useful for distinguishing batches — for example, generating a batch of giveaway keys with prefix GIVEAWAY_ so your support workflow can tell them apart from sold keys at a glance.

Number of Keys

How many keys to generate at once. Generate one for a single user, or batch-generate hundreds for a giveaway or paid keystore export.

Expiration Type

Two ways the key can expire. You pick which one applies:

Expiration Type selection
Expiration Type — By Date vs By Days
  • By Date — a fixed calendar date. The key expires at that exact moment regardless of when the user validated it. Example: you generate a key on 06/04/2026 with expiration set to 06/06/2026. If the user redeems it on 06/05, they only get 1 day of use. If they redeem it on 06/06, the key is already expired and validation fails.
  • By Days — a duration that starts counting from validation. Example: 7 days expiration. The user redeems the key on day 4 after you generated it — the key still works for the full 7 days from the day they redeemed, expiring at day 11 from your generation date. The user always gets the full duration regardless of how long it sat unredeemed.

Which to pick

Use By Date for time-limited promotions where the offer ends at a fixed moment (Black Friday weekend, holiday event). Use By Days for sold keys where every customer should get the same usable time regardless of when they redeem.

Premium Key

A boolean toggle. When on, the key returns isPremium: true on validation. Your script or software can check that value and unlock premium features for those users. When off, the key returns isPremium: false and unlocks only the standard tier.

What "premium" actually means is up to you — Panda Auth does not enforce a specific premium feature set. You decide what premium unlocks in your software, and this flag tells your code whether the validating key has earned that tier.

Number of Accounts

Limits how many platform accounts can use this single key on the same device. Common scenario: a Roblox executor where one HWID may have multiple Roblox accounts. Set to 1 for the strictest one-account-per-key flow, or higher to allow household-style sharing.

Number of Accounts and HWID Validation
Account limits and HWID Validation

HWID Validation

When enabled, the key is bound to the first device that validates it. When disabled, the key validates anywhere — the HWID is ignored. Disabling is rare and weakens anti-piracy significantly; use only when you specifically need a transferable key (a giveaway prize, a key sold with explicit device-transfer rights).

Editing and deleting generated keys

Every row in the Generated Keys list has edit and delete actions. You can adjust any of the key's settings before it has been validated, or delete the key entirely if you want to cancel it before the user redeems.

Edit a generated key
Edit a generated key

Why generated keys have no HWID yet

A Generated Key has no device bound to it. It exists in the Generated Keys table, holding its prefix, expiration, premium flag, and other config — but no HWID. The moment a user enters the key on your get-key flow and validation succeeds, the system moves the key from Generated Keys to Active Keys and attaches the user's HWID to it.

Active Keys

The Active Keys tab is your post-validation key inventory. Every key here has been redeemed by a user and is bound to their device. The settings you configured at generation came along with the key — prefix, expiration, premium flag, account limits — and you can still edit, delete, blacklist, or suspend any individual key from this page.

Active Keys list
Active Keys list

Available actions

  • Edit — adjust the key's settings post-validation. Useful for extending an expiration for a specific user as a goodwill gesture, or fixing a setting you got wrong at generation time.
  • Delete — remove the key entirely. The user loses access immediately on next validation attempt.
  • Blacklist — bans the HWID associated with this key. The user cannot generate or redeem any new keys for your service until the blacklist is lifted.
  • Suspend — temporarily disables the key without deleting it. The user gets "invalid" on validation, but you can re-enable it later if the suspension was a mistake or the issue is resolved.
Active Key edit panel
Active Key edit panel

Blacklist vs Suspend vs Delete — pick the right one

  • Delete when the key was a mistake or a test.
  • Suspend when you suspect abuse but want to be able to undo it (chargeback in progress, customer complaint under investigation).
  • Blacklist when you have caught the user attempting bypass exploits and want them locked out of your service permanently.

Keyless / Whitelisted

The Keyless / Whitelisted tab is for HWID-only access — no keys, just a list of approved devices. Anyone whose HWID is on this list validates successfully without ever entering a key. This is the most stripped-down access model and pairs well with private beta groups, internal team tools, or trusted-user rosters.

Keyless / Whitelisted management
Keyless / Whitelisted management

Library support is limited

Keyless validation does not work with every client library out of the box. The V3 library supports it, but older or third-party libraries may not implement HWID-only flows. If you are using Keyless mode, double-check that the library or executor your users run actually calls our keyless validation endpoint. If not, you may need to build a custom integration or stick to the standard key flow.

When to use Keyless

  • Private beta groups where you know every tester and want to add them by HWID.
  • Paid customer rosters where you manage purchases manually and want to bypass the get-key flow for verified customers.
  • Internal team tools where everyone using the software is on your team and frictionless access matters.

When to use regular keys instead

  • Public-facing services where users earn or buy keys through your get-key flow. Keyless would skip your monetization entirely.
  • Large user bases where manually adding HWIDs is impractical.
  • Anti-piracy is critical — keyless gives up some flexibility because there is no key to track or revoke independently of the HWID itself.

Mass Compensation

Mass Compensation adds extra days to every eligible key in the service at once. It is the goodwill tool for when your script breaks, a game update ships, or you have downtime and want to give all of your users free extra time without editing thousands of keys one by one. You will find a Compensate button on both the Generated Keys and Active Keys tabs, and a Compensation page under Key Management that lists every compensation you have run.

Running a compensation

Click Compensate, pick how many days to add (1–365), and choose what it applies to:

  • Both — every active key and every generated key.
  • Active Keys — only keys already redeemed and bound to a device.
  • Generated — only keys created but not yet redeemed.

Before you confirm, the dialog shows a live count — how many keys will be extended and how many lifetime keys are being skipped — so you know the exact impact.

How the days are added

The chosen number of days is added to each key's current expiry. A key that expires in 10 days becomes 13 after a +3 compensation. An already-expired key moves forward from its old expiry date, not from today.

Lifetime keys are always skipped

Keys that never expire (lifetime keys) are never touched by a compensation. Adding days to a key that already lasts forever would be meaningless, so they are left exactly as they are and counted separately in the preview.

History and undo

The Compensation page is a running log — think of it like a commit history. Each compensation is one entry showing when it ran, who ran it, how many days it added, how many keys it touched, and its status. Every applied compensation has a Revert button.

Reverting subtracts the same number of days back from exactly the keys that compensation originally touched (keys deleted since are skipped), then marks the entry as reverted. A compensation can only be reverted once.

Reverts stack cleanly

Because each compensation only ever adds or removes its own fixed number of days, reverting an older one leaves any newer compensations intact. If you apply +3, then +5, then revert the +3, the affected keys keep the net +5.

Who can run it

Mass Compensation requires Key Management access — the service owner, or a contributor granted the manage-keys permission. Contributors without it cannot compensate or revert.