Discord Snowflake ID Decoder

Every Discord message, user, channel, and server ID secretly encodes when it was created. Paste one below to see the exact date, plus ready-to-use Discord timestamp codes.

Created at

Paste a message, user, channel, or server ID above.

Worker ID
Process ID
Increment

All 7 Discord codes

Renders asCode

What a Discord snowflake is

Discord IDs — for messages, users, channels, servers, roles, and most other objects — are "snowflakes": 64-bit numbers where the leading bits are a timestamp and the trailing bits are internal fields used to keep IDs unique across Discord's infrastructure. Every ID you've ever copied from Discord already contains its own creation time; you just need to unpack it.

Not the same math as a Unix timestamp

It's tempting to treat a snowflake like a big Unix timestamp, but the two aren't interchangeable. Discord's snowflakes count milliseconds from Discord's own epoch — January 1, 2015 UTC — not the Unix epoch of January 1, 1970, and only the top 42 bits are the timestamp; the rest hold unrelated internal fields. Pasting a raw snowflake into a plain Unix-timestamp field produces a nonsense date decades in the future. If you already have a genuine Unix timestamp — from an API, a log, or your own code — skip this page and use the Unix timestamp converter instead.

Finding an ID to decode

Turn on Developer Mode in Discord (User Settings → Advanced → Developer Mode), then right-click any message, user, channel, role, or server and pick Copy ID (message context menus show Copy Message ID). IDs also show up directly in Discord API responses and in every event object a bot receives — discord.js and discord.py both expose the raw snowflake as a string or int property on the relevant object.

What the internal fields mean

Alongside the timestamp, a snowflake packs three more values: an internal worker ID and internal process ID identifying which part of Discord's backend generated it, and an increment that ticks up when multiple objects are created in the same millisecond so IDs never collide. None of these are meant to be looked up or acted on — they're shown here because they're part of the number, not because they're independently useful.

Turning a decoded snowflake into a Discord code

Once decoded, the creation moment behaves like any other timestamp — the table above already builds all seven Discord format codes from it, so you can paste "this message was sent <t:…:R>" or reference an account's exact join date without doing any of the bit math yourself.

Frequently asked questions

What is a Discord snowflake?

It's the ID format Discord uses for every message, user, channel, server, and most other objects — a single number that also encodes the exact moment it was created. Discord's client and API both use these IDs constantly; you've seen one if you've ever copied a "message ID" or "user ID."

Is a snowflake ID the same as a Unix timestamp?

No — a snowflake packs a timestamp into its high bits, but relative to Discord's own epoch (January 1, 2015 UTC), not the Unix epoch (1970), and the rest of the number holds internal fields unrelated to time. Decoding a snowflake takes a different calculation than reading a Unix timestamp. If you already have a plain Unix timestamp instead of an ID, use the Unix timestamp converter directly.

How do I get a message, user, or server ID from Discord?

Enable Developer Mode in Discord's settings (User Settings → Advanced → Developer Mode), then right-click any message, user, channel, or server and choose "Copy ID" (or "Copy Message ID", etc.). You can also read IDs directly off Discord API responses or a bot's event objects.

What do worker ID, process ID, and increment mean?

They're internal fields Discord's ID-generation system packs into the same 64-bit number as the timestamp: which internal worker and process created the object, and an increment that avoids collisions when multiple objects are created in the same millisecond. They're not meaningful outside Discord's own infrastructure — useful to know they exist, not something you'll typically act on.

Can this tool go the other direction — build a snowflake from a date?

No — Discord generates snowflakes server-side when it creates an object, so there's no valid snowflake to build for a date you pick; the internal worker/process/increment bits aren't something a client can invent. This tool only decodes real IDs that already exist.