Discord Snowflake Checker
Decode any Discord ID to see when it was created and how long ago that was: the age of an account, a server, a channel or a message. Free, no login required, and the ID never leaves your browser.
What is a Discord Snowflake ID?
Users, servers, channels, messages and roles in Discord all have IDs in the same format, called a Snowflake: a 64-bit number whose top 42 bits are the moment the ID was created, counted in milliseconds. Decoding that part shows when a Discord account was created, how old a server or a channel is, or when a message was sent.
How the Snowflake Checker works
- Paste one or more Discord IDs into the box. Separate several IDs with spaces, commas or new lines.
- Click Decode or press Enter (Shift+Enter starts a new line).
- Each ID gets its own result: the date and time it was created, in the language of the page and the time zone of your device, and how long ago that was.
- Unix time (seconds) and Discord timestamp each have a copy button. Pasted into a Discord message, the Discord timestamp shows the date in each reader's own time zone.
- Worker ID, Process ID and Increment are the three fields in the lower 22 bits, and First 42 bits (binary) shows the timestamp part bit by bit.
- An ID that cannot be decoded is named under the box, and the other IDs are still decoded. The tool accepts 17 to 20 digits and a creation time no more than one day in the future.
How to find a Discord ID
- In Discord on a computer, open the settings and turn on Developer Mode: it is under Developer in the current desktop and web app, and under Advanced in older versions and on mobile.
- Right-click a user, a server, a channel or a message.
- Choose the menu item that copies the ID.
- Paste the ID into the Snowflake Checker and click Decode.
Checking a Discord account's age
A user ID holds the moment the account was created, so decoding it shows how old the account is. That is not when the user joined a server: Discord keeps that time separately. Account age can help moderators when a raid or a wave of spam comes from accounts made shortly before it, but a new account proves nothing on its own: every account was new once.
Snowflake bit structure: the 64 bits
A Discord Snowflake is a 64-bit number split into four fields, from the most significant bits to the least:
- Timestamp - bits 22-63 (42 bits): the milliseconds since the Discord Epoch. 42 bits hold about 139 years of milliseconds, so the field lasts until 2154.
- Worker ID - bits 17-21 (5 bits): a number from 0 to 31 that Discord uses internally.
- Process ID - bits 12-16 (5 bits): another internal number from 0 to 31.
- Increment - bits 0-11 (12 bits): a counter from 0 to 4095.
To get the timestamp, shift the ID 22 bits to the right and add the epoch: timestamp_ms = (snowflake >> 22) + 1420070400000. For example, 175928847299117063 decodes to 2016-04-30T11:18:25.796Z, with worker ID 1, process ID 0 and increment 7.
The Discord Epoch
Discord counts from its own epoch, January 1, 2015 at 00:00 UTC (Unix time 1420070400000 in milliseconds), instead of the Unix epoch of 1970. Counting from 2015 means the 42 timestamp bits last until 2154 rather than 2109. No Snowflake can be older than the Discord Epoch: the timestamp field cannot hold a time before it.
One decoder for every kind of ID
Nothing in a Snowflake says what it belongs to, so the tool decodes a user ID, a server ID, a channel ID, a message ID and a role ID the same way. The buttons under ID type only change the label above the date, such as User created or Message sent; the decoded values stay the same. For a message ID, the time is when the message was sent; for a server, a channel or a role, when it was created. Two kinds of object share the ID of the one they belong to: a thread started from a message has that message's ID, so its time is when the message was sent, and the @everyone role has its server's ID.
Common pitfalls with Snowflakes
- Precision loss in JavaScript. Every ID this tool accepts is larger than the biggest whole number JavaScript can store exactly (2^53 - 1), so
Number(snowflake) can silently change the last digits. Keep IDs as strings and use BigInt for arithmetic, as this tool does.
- Account creation is not joining. A user ID tells when the account was created, not when the user joined a server.
- Time zones. The time in a Snowflake is UTC. The tool shows the date in the time zone of your device, with the name of the zone, so the same ID can read differently on two devices; the Unix time is the same everywhere.
- Deleted things keep their IDs. The tool reads only the number, so an ID still decodes after the message, the channel or the account it belonged to was deleted.
More free Discord tools
Powered by Pigona - Free Translation for Discord