Snowflake ID Decoder
Paste a snowflake ID to extract timestamp and node bits, or reverse a date-time into the minimum snowflake ID for range filtering workflows.
Updated
Decode snowflake ID
Decode Discord and Twitter/X snowflake IDs fully in your browser with BigInt math.
Reverse mode: date/time to minimum snowflake
Use this for Discord message-ID range filtering by generating the minimum ID for a timestamp.
How to use Snowflake ID Decoder
The Snowflake ID Decoder converts Discord and Twitter/X snowflake IDs into human-readable metadata using pure BigInt bit math in your browser. It extracts creation timestamp, worker ID, process ID, and increment bits, then visualizes the 42/5/5/12 field split so you can verify each segment. The reverse mode converts a date-time into the minimum snowflake value for that moment, which is especially useful when building Discord message range filters or debugging ID cutovers.
- Pick Discord, Twitter/X, or custom epoch mode depending on the source system you are decoding.
- Paste the numeric snowflake ID (15–20 digits) and run Decode to extract timestamp and node fields.
- Review the ISO timestamp, relative-time label, and binary 42/5/5/12 segment breakdown for validation.
- Open reverse mode, choose a date-time, and generate the minimum snowflake for that moment.
- Copy the generated lower-bound ID into API filters or database range queries.
Your data never leaves your device — 100% private processing.
Snowflake bit layout explained
A snowflake ID is a 64-bit integer with a timestamp segment in the high bits and node sequence data in the low bits. In this tool, decoding follows the widely used 42/5/5/12 split: 42 bits for milliseconds since the platform epoch, 5 bits for worker ID, 5 bits for process ID, and 12 bits for per-process increment. Because the timestamp is left-shifted by 22 bits, decoding is a simple right shift plus epoch addition. This deterministic structure makes snowflakes sortable and efficient for distributed ID generation.
Epoch selection and reverse-mode range filtering
Epoch choice is critical: Discord starts at 2015-01-01 and Twitter/X starts at 2010-11-04, so the same numeric ID decodes to different wall-clock times if the wrong epoch is chosen. Reverse mode computes (timestamp − epoch) << 22 to produce the minimum snowflake for a given instant, with worker/process/increment bits all zeroed. That lower-bound ID is useful for paging APIs, log slices, and data exports where you need all records created at or after a specific UTC time without scanning full datasets.
| Platform | Epoch (ms) | UTC date |
|---|---|---|
| Discord | 1420070400000 | 2015-01-01T00:00:00Z |
| Twitter/X | 1288834974657 | 2010-11-04T01:42:54.657Z |
Worked examples
Discord vector decode
Inputs: ID 175928847299117063 with Discord epoch
Result: 2016-04-30T11:18:25.796Z, worker 1, process 0, increment 7
Reverse lookup for API lower bound
Inputs: Date-time 2024-01-01T00:00 with Discord epoch
Result: Minimum snowflake generated for >= that moment queries
Glossary
- Snowflake ID
- A 64-bit integer ID format that embeds timestamp and node-sequence fields for distributed unique ID generation.
- Epoch
- Custom starting timestamp used as the zero point when encoding and decoding snowflake milliseconds.
- Worker ID
- Five-bit field identifying the generator worker or shard that produced the snowflake.
- Increment
- Twelve-bit counter incremented per generated ID within the same millisecond on a process.
- Range filter
- Query technique using minimum or maximum IDs to fetch records within a time window.
Related reading
Frequently Asked Questions
Get weekly tool tips & updates
New tools, power-user tips, and productivity hacks — delivered free every Friday.
No spam, ever. Unsubscribe with one click.
Why use Snowflake ID Decoder?
- Decode snowflake timestamps locally with no server upload or dependency package
- Inspect worker, process, and increment fields for distributed-system troubleshooting
- Switch between Discord, Twitter/X, or custom epoch values in one interface
- Generate minimum snowflake IDs from date-time input for range-based querying
Common use cases
- Audit when a Discord message was created from only its numeric ID
- Confirm which shard or worker generated a Twitter/X-style snowflake in logs
- Build lower-bound snowflake IDs for time-window exports and moderation tooling
- Validate custom-epoch snowflake implementations in internal services
Related Developer Tools
Unix Timestamp Converter
Convert Unix timestamps to human-readable dates and vice versa. Supports seconds and milliseconds. Shows UTC, local, and ISO 8601 formats.
UUID Generator
Generate random UUID v4, timestamp-based UUID v1, and ULID identifiers. Bulk-generate up to 100 at once and copy them instantly — free and private.
Number Base Converter
Convert numbers between binary, octal, decimal, and hexadecimal instantly. Essential tool for programmers and developers.
JSON Formatter & Validator
Format, validate, and minify JSON instantly. Includes syntax highlighting, error detection, and a collapsible tree view — free, private, in-browser.
Regex Tester
Test and debug regular expressions online. See live matches, capture groups, and replace output. Free, private, instant.
Base64 Encoder & Decoder
Encode text or files to Base64, or decode Base64 strings back to text. Fast, free, and runs entirely in your browser.
Explore all Developer Tools.