Skip to content
Marvin's Toolbox.

Search tools

Type to filter all tools

Snowflake ID Decoder

Paste a Discord, Twitter or custom snowflake ID and see the exact creation timestamp, worker, process and sequence bits it carries. Pick a preset or set your own epoch and bit layout, or turn a date into the matching id range.

Everything runs locally in your browser. Your data never leaves your device.

Layout

Epoch 2015-01-01T00:00:00.000Z, counts up to 2154-05-15

The plain decimal id, e.g. a Discord user, message or server id.

Nothing decoded yet
Paste a snowflake id above, or try the example, to see the timestamp and counters it carries.

Date to snowflake

Every id created at this moment lies between the two values, so they work as boundaries: in Discord search, use the first id with after: and the last with before:.

Pick a date and time to get the matching id range.

About the Snowflake ID Decoder Tool

This tool decodes snowflake ids, the 64-bit numeric ids used by Discord, Twitter/X and many other systems. Paste an id to see the exact moment it was created, in UTC and your local time, plus the worker, process and sequence counters packed into its lower bits, with the 64-bit binary breakdown colored per field.

The Discord and Twitter/X presets carry the right epoch and bit layout. For everything else, custom mode takes any epoch and any field widths, so home-grown snowflake variants decode too. It also works in reverse: pick a date to get the first and last possible id at that moment, the boundary values you need to search or filter by date.

What you can do

  • Get the creation date and time of a Discord id.
  • Convert a Twitter/X snowflake to a timestamp.
  • Decode snowflakes with a custom epoch and bit layout.
  • See the 64-bit binary breakdown colored by field.
  • Read the worker id, process id and sequence number.
  • Turn a date into the id range for Discord's before: and after: search.

How to use the Snowflake ID Decoder

  1. 1Pick the layout: Discord, Twitter/X, or custom with your own epoch and bit widths.
  2. 2Paste the id. The timestamp, worker, process and sequence fields appear with the binary map.
  3. 3For the reverse direction, pick a date in the date to snowflake section and copy the first or last id.

How a snowflake is put together

A snowflake packs everything into one 64-bit integer. The top bits count milliseconds since a service-specific epoch. Discord counts from the start of 2015, Twitter from late 2010. Below that sit a worker id and a process id naming the machine that made the id, and a sequence number telling apart ids created in the same millisecond. Because the timestamp sits in the highest bits, sorting snowflakes numerically sorts them by creation time.

Only the timestamp means anything outside the service. The worker, process and sequence values are internal bookkeeping. If an id decodes to a date far in the future, it was probably made with a different epoch, so try another preset or a custom layout. The UUID Decoder does the same teardown for UUIDs, and the ULID Generator covers ULIDs, which solve the same sortable-id problem in text form.

Searching by date with snowflakes

Any moment in time maps to a range of possible ids: the first has all counter bits at zero, the last has them all set. Discord's message search accepts these as before: and after: values, and the same trick filters by creation date in any snowflake-keyed database. Pick the date, copy the boundary ids, and use them as your range. For plain Unix timestamps without the snowflake packaging, use the Unix Timestamp Converter.

Paste a MongoDB ObjectId and see the creation timestamp, the random value with its legacy machine and process id split, and the counter, color coded so each part of the ID maps to its meaning. Also generates ObjectIds for any date, handy for time-range queries.

Generate Nano IDs in bulk with full control over length and alphabet. Pick the default, hex, numbers-only or a custom character set, see the collision probability for your settings, and copy the results as a plain list.

Generate ULIDs one at a time or in bulk: sortable, timestamp-prefixed identifiers in Crockford base32. Use monotonic mode for strictly ordered ids, decode any ULID back to its timestamp, and copy the results as a plain list.

Paste a UUID to see what it carries: version, variant, and for time-based versions the exact timestamp, clock sequence and node. Also shows the raw bytes, the 128-bit integer and the URN form.

Generate UUIDs in versions 1, 3, 4, 5, 6 and 7, one at a time or in bulk. Pick a version, set how many you need, and regenerate with one click. Name-based versions take a namespace and a name, and the result copies as a plain list.

Enter a resolution to get its simplified aspect ratio, or start from a ratio and one side to get the missing dimension. Knows the common ratios like 16:9, 4:3 and 21:9 and shows how close your size is to each.