Skip to main content
FreeDiscordTools
← Back to Blog

What is a Discord Snowflake ID? Complete Anatomy Explained

Published on June 18, 2026·FreeDiscordTools

The Cryptic 18-Digit ID Number

If you have spent any time in Discord server moderation, you have probably encountered Discord IDs those long 17-20 digit numbers that identify users, servers, channels, messages, and roles. To most people they look like random, boring strings of numbers. But they are not random at all. Every Discord ID, or Snowflake, encodes precise information about the exact millisecond it was created.

Understanding how Discord Snowflake IDs work gives you a practical superpower as a server moderator, bot developer, or curious user. You can verify when an account was created, check the age of a server, find the timestamp of a specific message, or confirm that a user is not running a recently-created alt account to evade a ban.

Why check account age? Automated spammers and raid bots almost always use accounts created within the last 24-48 hours. By checking Snowflake IDs, you can block bad actors before they spam your server.

The Anatomy of a Discord Snowflake

A Discord Snowflake is a 64-bit integer. Those 64 bits are divided into four distinct fields, each carrying specific information:

Bits Name Purpose
63 to 22 (42 bits) Timestamp Milliseconds elapsed since Discord Epoch (January 1, 2015).
21 to 17 (5 bits) Worker ID Identifies the internal server machine generating the ID.
16 to 12 (5 bits) Process ID Identifies the specific process on the worker machine.
11 to 0 (12 bits) Increment A counter that increments for unique IDs created in the same millisecond. Resets to 0.

How to Extract the Date from a Discord Snowflake

The math to extract the creation date from a Snowflake is straightforward once you understand the structure. Here are the steps:

  1. Take the Snowflake integer (e.g., 175928847299117063).
  2. Right-shift it by 22 bits: Snowflake >> 22. This discards the worker ID, process ID, and increment fields, leaving only the timestamp component.
  3. Add the Discord Epoch in milliseconds: 1420070400000 (which is January 1, 2015 in Unix milliseconds).
  4. The result is a standard Unix timestamp in milliseconds. Convert to seconds by dividing by 1000, and then format it as a human-readable date.

Here is how you can do it in JavaScript:

function snowflakeToDate(snowflake) {
  const discordEpoch = 1420070400000;
  // Convert using BigInt to prevent precision loss
  const timestamp = Number(BigInt(snowflake) >> 22n) + discordEpoch;
  return new Date(timestamp);
}

Our Snowflake Converter runs this calculation instantly, displaying the result in both UTC and your local timezone.

How to Find a Discord ID

Discord IDs are hidden by default. To see them, you need to enable Developer Mode, which is available to all users regardless of whether they are actually developers. Go to User Settings → Advanced → Developer Mode and toggle it on. Once enabled, right-clicking (or long-pressing on mobile) any user, server, channel, or message reveals a "Copy ID" option.

Try the Tools

Explore our full collection of free utilities for Discord, developers, and job seekers.

View All Tools →