Discord Bot Snowflake Decoder
Decode any Discord snowflake ID (user, message, channel, guild, role) to its exact creation timestamp, internal worker ID, internal process ID, and increment counter. Paste any ID, get the full bit breakdown.
Enable Developer Mode in Discord (User Settings → Advanced) and right-click anything to "Copy ID".
Bit decomposition
How a Discord snowflake is packed
Every Discord ID is a 64-bit integer. The layout (MSB → LSB):
bits 42 41 22 21 17 16 12 11 0
┌───────────────────────────────┬─────────┬─────────┬──────────────────┐
│ (timestamp - Discord epoch) │ worker │ process │ increment │
│ 42 bits (ms since 2015-01-01) │ 5 bits │ 5 bits │ 12 bits │
└───────────────────────────────┴─────────┴─────────┴──────────────────┘Discord epoch is 2015-01-01 00:00:00 UTC (1420070400000 ms). Shift right by 22 bits and add the epoch to recover the creation timestamp — useful for checking when a user joined Discord, when a message was posted, or debugging old cached IDs.
Every Discord ID contains its own timestamp
Every Discord snowflake is a 64-bit integer that packs four values: a millisecond timestamp (42 bits, shifted from Discord's custom 2015-01-01 epoch), an internal worker ID (5 bits), an internal process ID (5 bits), and an auto-incrementing counter (12 bits). Decode any ID and you instantly know when that user joined, when that message was posted, when that channel was created — no API call, no database lookup.
Paste any snowflake: user ID (right-click profile → Copy ID with Developer Mode on), message ID, channel ID, guild ID, role ID, application ID, all of them use the same structure. The decoder returns the creation timestamp in your local timezone, the ISO 8601 UTC string, Unix milliseconds, Unix seconds, plus the full 64-bit binary representation and the internal worker/process/increment values.
Common uses: verifying a user's actual join date (the Discord UI 'member since' can be manipulated with rejoins), auditing old bot messages by timestamp, debugging rate-limit ordering (same-millisecond events use the increment counter to sequence), proving when a server was created for verification badges, and forensic investigation of scam accounts (where the creation timestamp often reveals throwaway accounts made minutes before the scam).
The math: take the ID, shift right by 22 bits, add 1420070400000 — that's Discord's epoch in Unix ms. The lower 22 bits hold worker/process/increment which Discord only exposes indirectly. A newer ID is always numerically greater than an older ID, which is why Discord's API uses snowflakes for cursor-based pagination (the `before` and `after` parameters).
Discord Bot Snowflake Decoder — FAQ
What is a Discord snowflake?
Every ID in Discord (user, message, channel, guild, role, application) is a 64-bit snowflake integer. It packs a millisecond timestamp + internal worker ID + process ID + increment counter. The timestamp part lets you decode when the thing was created without calling the API.
What's Discord's epoch?
2015-01-01 00:00:00 UTC (Unix ms 1420070400000). Snowflakes store ms since this custom epoch (not Unix epoch) in the top 42 bits. Shift right by 22 bits and add 1420070400000 to get Unix ms.
Can I tell when a user joined Discord from their ID?
Yes — a user's ID is created when their account was first created (not when they joined a specific server). Decode the snowflake to get the exact second they signed up. Useful for spotting throwaway accounts (created minutes before a scam/raid attempt).
How do I get an ID from Discord?
Enable Developer Mode in User Settings → Advanced. Then right-click any user, message, channel, or server and click 'Copy ID'. That's the snowflake to paste into this decoder.
Why are my snowflakes all bigger than 2^52?
They're 64-bit integers — JavaScript's Number type only handles integers up to 2^53 safely. This tool uses BigInt to parse and bit-shift snowflakes accurately. If you're working with snowflakes in your own code, always use BigInt (`BigInt(id)` in JS) or string comparison, never Number.
You might also need
Timestamp Generator
Generate Discord's <t:…> timestamp markdown in every format — short/long date, short/long time, short/long full, relative. Live preview as Discord actually renders it.
Permissions Calculator
Build Discord bot/role permission bit-mask integers. Toggle all 41 permissions (Administrator, Kick, Ban, Manage Channels, Send Messages, Use Slash Commands, etc.) and copy the decimal integer for your OAuth URL or role config.
Embed Builder
Visual builder for Discord embeds — title, description, fields, author, thumbnail, image, footer, color. Live Discord-accurate preview + copy-ready JSON payload + optional direct-to-webhook send.
Slash Command Builder
Build a Discord application command (slash, user-context, message-context) visually. All 11 option types, choices, autocomplete, min/max/length constraints, channel type filters. Copy-ready JSON + curl registration snippet.

Config Tool Built Into XGamingServer
Get managed Discord Bot hosting with this tool in your panel — configure, deploy, and play in minutes. No file uploads needed.