Snowflake ID Generator & Decoder

Generate and decode 64-bit Snowflake IDs with Twitter or Discord epochs, right in your browser. Nothing you enter leaves your device.

The Snowflake ID Generator runs entirely in your browser. The IDs, timestamps, and field values you enter or decode never leave your device and nothing is uploaded to ArrayKit.

Open the ULID Generator

About Snowflake ID Generator

The Snowflake ID Generator builds 64-bit Snowflake IDs the way Twitter and Discord do: a millisecond timestamp, a worker id, a process id, and a per-millisecond sequence packed into one BigInt. Pick the Discord or Twitter epoch preset, or type your own epoch in Unix milliseconds, then set the timestamp and field values to mint an ID. Switch to Decode to paste any Snowflake and see the exact millisecond timestamp, its ISO time, and the worker, process, and sequence bits under the epoch you chose. It is handy for reverse-engineering when a Discord message was posted, reproducing an ID in a test fixture, or sanity-checking a distributed id scheme. All the bit-shifting happens on your device; the IDs and timestamps you enter are never uploaded.

Features

How to use the Snowflake ID Generator

  1. Choose Discord, Twitter, or a custom epoch
  2. In Generate, set the timestamp and worker, process, and sequence values
  3. Copy the resulting 64-bit Snowflake ID
  4. Switch to Decode and paste a Snowflake to read back its timestamp and fields

Example

Input

175928847299117063  (Discord epoch)

Output

timestamp: 2016-04-30T11:18:25.796Z
worker: 1  process: 0  sequence: 7

Decoding a Discord Snowflake recovers when it was created and its field bits.

Common errors & troubleshooting

Frequently asked questions

What is a Snowflake ID?
A Snowflake is a 64-bit id used by Twitter and Discord that packs a millisecond timestamp, a worker (machine) id, a process id, and a per-millisecond sequence into a single sortable number, so ids are unique and roughly time-ordered without a central counter.
How do I find when a Discord message was sent from its ID?
Paste the message or user id into Decode with the Discord epoch selected. The tool shifts out the 42 timestamp bits, adds the Discord epoch (1420070400000 ms), and shows the exact creation time as ISO and Unix milliseconds.
What is the difference between the Twitter and Discord epochs?
Both layouts are the same bit widths, but they count milliseconds from different start points: Twitter uses 1288834974657 (Nov 2010) and Discord uses 1420070400000 (Jan 2015). Decoding with the wrong one shifts every timestamp by that gap.
Why are worker and process capped at 31 and sequence at 4095?
The layout gives 5 bits each to worker and process (2^5 − 1 = 31) and 12 bits to the sequence (2^12 − 1 = 4095). Values above those limits would overflow into the next field, so the generator rejects them.
Can I use a custom epoch for my own service?
Yes. Choose the Custom preset and enter your epoch in Unix milliseconds. Generate and Decode then use that value, which lets you work with any Snowflake-style scheme that keeps the 42/5/5/12 bit layout.
Are the IDs I generate or decode sent anywhere?
No. Every bit-shift runs in your browser with BigInt. The timestamps, ids, and field values you type or paste never leave your device and are not uploaded to ArrayKit.

Related tools

All ArrayKit tools