Getting Started
Invite the bot, unlock Ed25519 signing keys, configure voice tracking, and verify signed session records.
This guide walks server admins through the first-time setup of AttendiBot. You need Manage Server permission on the guild you want to configure.
First 10 minutes
| Step | Action | Where |
|---|---|---|
| 1 | Add AttendiBot to your server | Add to Discord |
| 2 | Sign in to the dashboard | Dashboard login |
| 3 | Generate Ed25519 signing keys | Dashboard → Signing |
| 4 | Unlock signing with your passphrase | Dashboard → Signing |
| 5 | Set tracking mode + channels | Dashboard → Settings → Tracking |
| 6 | Join a tracked voice channel and leave | Discord |
| 7 | Verify a session signature | Public verifier |
Setup checklist
- Bot invited with
applications.commandsscope - Signed in to dashboard with same Discord account
- Ed25519 keypair generated (passphrase ≥ 8 characters)
- Signing unlocked (required after every backend restart)
- Tracking mode set (Allowlist, Denylist, or All)
- Tracked channels configured (if using Allowlist/Denylist)
- Reset interval configured
- (Optional) Log destinations added
- Test session verified on public verifier
1. Invite the bot and sign in
Click Add to Discord on attendibot.com to install AttendiBot with the applications.commands scope. You need Manage Server permission on the guild.
Then sign in to the dashboard with the same Discord account. The dashboard uses Discord OAuth and only shows servers where you have Manage Server permission.
Tip: Use the same Discord application for bot install and dashboard OAuth. See Discord Setup for Developer Portal configuration.
2. Generate and unlock signing keys
AttendiBot signs every completed voice session with Ed25519. Without unlocked signing keys, sessions are not recorded.
Generate keys (once per server)
In the dashboard, go to Signing and click Generate keys. Choose a passphrase (minimum 8 characters) and store it securely.
Alternatively in Discord:
/admin generate-keys passphrase:your-secure-passphraseUnlock signing (after every restart)
Signing keys are encrypted at rest. After every backend restart, an admin must unlock them:
- Dashboard → Signing → Unlock signing
- Or Discord:
/admin unlock-signing passphrase:your-secure-passphrase
Check status with /admin signing-status or the dashboard signing panel.
Important: If signing is locked, voice sessions are dropped when members leave channels. Always unlock after deploys or restarts.
Share your public key so anyone can verify session signatures. See Signing & Verification.
3. Configure voice tracking
Choose which voice channels AttendiBot monitors in Settings → Tracking:
| Mode | Behavior |
|---|---|
| Off | No tracking |
| Allowlist | Track only selected channels |
| Denylist | Track all except excluded channels |
| All | Track every voice channel in the server |
For Allowlist or Denylist, add or remove channels in the dashboard or with /admin track-channel.
Configure fairness rules (pause on mute, solo detection, minimum session duration) in the same settings page.
AttendiBot records join, leave, and move events — never voice audio.
4. Set period resets and log destinations
Period resets
Configure leaderboard reset intervals in Settings → Periods:
- Interval: hourly through yearly (e.g. every 1 week)
- Anchor mode: rolling or calendar-aligned (start of day, week, month, year)
- Timezone for calendar alignment (IANA, default UTC)
Each reset archives a signed period snapshot and starts a fresh leaderboard.
Force an immediate reset with /admin reset-now or the dashboard.
Log destinations (optional)
Post automated embeds to Discord text channels via Logs in the dashboard or /admin logs commands:
- Real-time: voice join, voice leave, session completed
- Periodic: leaderboard summaries, attendance summaries
See Commands for log subcommands.
5. Verify signed sessions
Every completed session receives a UUID and Ed25519 signature. Anyone can verify a record:
- Open the public session verifier on the homepage
- Paste the session UUID
- Confirm the signature matches your server's public key
Admins can also verify in Discord:
/admin verify-session session_id:550e8400-e29b-41d4-a716-446655440000
/admin verify-period period_index:16. Explore the dashboard
| Page | Purpose |
|---|---|
| Overview | Live occupancy and current period stats |
| Leaderboard | Period rankings for your server |
| Analytics | Activity heatmaps |
| Stats | Per-user and per-channel breakdowns |
| Export | Download signed period bundles (Pro) |
| Subscription | Compare Free, Pro, and Enterprise tiers |
Members can check stats with /stats and view leaderboards with /leaderboard.
See the full Dashboard Guide for every route.
Next steps
- Slash Commands — reference for all bot commands
- Fairness & Tracking — tracking modes and fairness settings
- Troubleshooting — if sessions aren't recording
- FAQ — common questions