UUID validator and decoder
This UUID validator checks that each line is a well-formed UUID and then tells you what kind it is. It reads the version and variant bits, decodes the timestamp hidden in version 1, 6 and 7 UUIDs, and shows the same value as a URN, Base64 and ULID. It works for Microsoft GUIDs too, since a GUID is the same 128-bit format.
Example
Input:
0192a4c1-7e2b-7d4a-9b1c-3f5e8a2d6c01
{123e4567-e89b-12d3-a456-42661417400}
Output:
0192a4c1-7e2b-7d4a-9b1c-3f5e8a2d6c01
✔ Valid UUID 0192a4c1-7e2b-7d4a-9b1c-3f5e8a2d6c01
Version: 7 — Unix-time-based, sortable (random tail)
Variant: RFC 9562 / RFC 4122 (standard)
Time: 2024-10-19T12:29:57.163Z
URN: urn:uuid:0192a4c1-7e2b-7d4a-9b1c-3f5e8a2d6c01
Base64: AZKkwX4rfUqbHD9eii1sAQ==
As ULID: 01JAJC2ZHBFN59P71ZBT52TV01
{123e4567-e89b-12d3-a456-42661417400}
✘ Not a UUID: expected 32 hex digits (8-4-4-4-12).
The second value looks right at a glance, but its last group has 11 digits instead of 12. The time line in the tool also shows how long ago the UUID was created.
What is checked
- Format: exactly 32 hexadecimal digits. Hyphens are optional, but if present they must split the value 8-4-4-4-12. Surrounding braces and a
urn:uuid:prefix are stripped first; upper and lower case are both fine. - Special values: the Nil UUID (all zeros) and the Max UUID (all
f, introduced in RFC 9562) are recognized. - Variant: the high bits of the 17th hex digit. Standard UUIDs have
8,9,aorbthere; other values mean legacy NCS, Microsoft-reserved or future variants. - Version: the 13th hex digit, from 1 to 8.
UUID versions explained
| Version | Contents | Decoded here |
|---|---|---|
| 1 | Gregorian timestamp (100 ns units since 1582) + clock sequence + node | Time, clock sequence, node / MAC |
| 3 / 5 | MD5 / SHA-1 hash of a namespace and name | Version only |
| 4 | 122 random bits | Version only |
| 6 | Version 1 fields reordered so the value sorts by time | Time, clock sequence, node |
| 7 | 48-bit Unix millisecond timestamp + random bits | Time |
| 8 | Custom, vendor-specific layout | Version only |
For v1 and v6, the node is labeled "MAC address" or "random, multicast bit set". Most modern libraries set the multicast bit and use a random node rather than exposing the real network card address.
Common reasons a UUID fails validation
- A missing or extra digit, often from a truncated copy or a typo in test data.
- Hyphens in the wrong place, such as
550e8400-e29b41d4-a716-446655440000. The tool reports "Hyphens are in the wrong places". - Non-hex characters like
g–z, or look-alikes such as the letterOinstead of zero. - Not a UUID at all: a 26-character ULID or a 24-character MongoDB ObjectId. Use the ULID decoder for the first.
A value can be well-formed yet have an unusual version or variant — for example a ULID stored in UUID form. The validator accepts it but labels the version accordingly, so you can spot IDs that were not produced by a standard UUID library. Need new IDs? The UUID generator creates v4 and time-ordered UUIDs, and the Unix timestamp converter helps you compare decoded times.
Privacy
Validation and decoding run in your browser, up to 1,000 lines at a time. The UUIDs you paste are not sent to a server or logged.