UUID & ULID Decoder - Find the Version, Variant and Timestamp

AdSense Placeholder
Slot: header_tool

UUID & ULID Decoder

Read the version, variant and timestamp hidden inside an identifier

AdSense Placeholder
Slot: tool_mid_article

Versions 1 to 8

Recognizes time-based, DCE, name-based, random, reordered-time, Unix-time and custom UUIDs, plus the nil and max UUIDs.

Hidden Timestamps

Version 1, 6 and 7 UUIDs and ULIDs contain the moment they were created. See it in UTC, in your local time and as Unix milliseconds.

UUID and ULID Forms

Every identifier is shown both as a UUID and as the 26-character ULID with the same 128 bits.

Private

Identifiers are decoded in your browser and are never sent anywhere.

What Is Inside an Identifier

A UUID is 128 bits, and a few of them are fixed. Four bits say which version it is and two or three bits say which variant (layout family) it follows. The rest depend on the version: version 4 is almost entirely random, versions 3 and 5 are hashes of a name, and versions 1, 6 and 7 start with a timestamp. That is why IDs created close together often share their first characters, and why version 7 IDs sort in the order they were made.

A ULID is a different format with the same size: a 48-bit millisecond timestamp followed by 80 random bits, written in 26 characters of Crockford base32. Because both are 128 bits, one can be shown in the other’s notation. A time-based ID reveals when it was created, and a version 1 node field may reveal a hardware address, so think before exposing such IDs publicly.

Key Takeaways

  • Checked against reference libraries: Results were compared with Python’s uuid module and a ULID library on hundreds of identifiers.
  • Accepts common spellings: Hyphens are optional, and braces and urn:uuid: prefixes are removed.
  • Related tools: Use the UUID Generator to create new identifiers.
AdSense Placeholder
Slot: footer_leaderboard