Snowflake and Prefixed ID Decoder

Decode a 64-bit snowflake using an explicit epoch and bit layout, or split a prefixed identifier at a separator.

Inputs stay on your device No sign-up Free to use
How this works

The tool runs in this browser. Your file or text is not uploaded to UseFreeTools. Check this tool's limits for anything it may save on your device.

Privacy details

Inspect input controls

Showing an example. Edit to see your own.

Decode mode only. This default is a synthetic layout example, not a verified issued ID. Zero maps to the selected epoch.

Custom layout only. Integer Unix milliseconds; the resulting date must stay within UTC years 0001 to 9999.

Prefix mode only. The suffix is kept literally and is not decoded or treated as a snowflake.

Prefix mode splits at the first exact occurrence; later separators remain in the suffix.

Custom widths must total 64. If the top bit is reserved, it must be zero.

Processed in your browser. Your inputs stay on this device.

How to use Snowflake and Prefixed ID Decoder

  1. Choose snowflake decoding or prefix splitting.
  2. Select the bit layout or enter a separator for the prefix.
  3. Review the UTC time and components, or the two identifier parts.

Example: Snowflake and Prefixed ID Decoder

Discord-layout synthetic snowflake 4194305.

You add
Operation: decode Snowflake layout: discord Decimal snowflake identifier: 4194305 Custom epoch (Unix milliseconds): 1420070400000 Custom timestamp bits: 42 Custom first worker/group bits: 5 Custom second worker/group bits: 5 Custom sequence bits: 12 Custom reserved top bits: 0 Prefixed identifier: user_00123 Literal prefix separator: _
You get
Decoded UTC timestamp: 2015-01-01T00:00:00.001Z. Sample rows: Layout | Discord documented layout; Canonical unsigned identifier | 4194305.

Options

Snowflake layout
Use the documented service layout or enter all custom bit widths and the epoch. Widths must total 64; changing the layout changes the decoded date and component values.
Prefix operation
Prefix mode splits at the first literal separator. It keeps the suffix as text, including leading zeros and later separators. It does not decode that suffix.

Supported inputs and limits

Unsigned decimal 64-bit ID (1–20 digits), chosen Discord/original Twitter/custom layout. Custom widths total 64; timestamp 1–64, both worker/group fields and sequence 0–63, reserved top 0–1 and zero when present. Epoch and decoded UTC date: years 0001–9999. Prefix text 1–256 chars; literal separator 1–8 chars; first occurrence only; no control characters. Unsigned decimal IDs up to 64 bits. A named or custom layout determines the result; a matching shape does not identify the service or prove authenticity. Prefix mode splits text only and does not decode its suffix.

Where your input is processed

This tool processes your input in this browser. Your text and files are not uploaded to UseFreeTools. Check this tool's limits for anything it may save on your device.

A decoded date depends on the entered convention

The decoder uses integer arithmetic so a 64-bit decimal identifier is not rounded through JavaScript Number. Its timestamp is a UTC interpretation under your selected epoch and bit allocation. A plausible date does not establish which system issued an identifier or whether it is genuine. Keep the layout name with exported results when comparing records.

Questions about Snowflake and Prefixed ID Decoder

Is every large number a Discord ID?

No. The selected layout is an assumption. The tool cannot establish where an identifier came from.

Why use integer text?

Large IDs exceed JavaScript’s safe Number range. Decimal text is parsed with BigInt to preserve every bit.

Does prefix mode inspect the suffix?

It splits at the selected separator. The suffix stays text rather than being guessed as a snowflake.

Project manager: Tony Hines · Content updated 4 October 2026 · Report a problem