Paste a UUID to inspect RFC 9562 semantics, timeline payload, and storage-routing guidance.
| Field | Value | Copy |
|---|---|---|
| {{ row.label }} | {{ row.value }} |
| Segment | Hex | Binary | Detail | Copy |
|---|---|---|---|---|
| {{ segment.label }} | {{ segment.hex }} | {{ segment.binary }} | {{ segment.detail }} |
A Universally Unique Identifier, or UUID, is a 128-bit label used to identify records, events, and objects across systems that may never talk to the same central counter. That sounds straightforward until a log shows one value in canonical text, a database stores another representation, and an engineer needs to know whether the identifier carries time, randomness, namespace hashing, or a sentinel value that means something else entirely.
This decoder turns one UUID token into a structured record you can actually reason about. It normalizes the input, identifies the version and variant, derives timestamp fields when the layout supports them, extracts clock-sequence and node information, and then presents those findings as a ledger, a bit-lane breakdown, routing notes, a signal-allocation chart, and JSON.
That makes the page useful in several kinds of work. Developers can check whether an identifier is suitable for chronological indexing. Incident responders can decide whether a token preserves timing clues worth keeping. API and data engineers can settle representation disputes by comparing canonical, uppercase, braced, URN, and dashless forms without manually reformatting the string.
The page also recognizes boundary cases that are easy to misread in ordinary tooling. Nil and Max tokens are surfaced explicitly, variant labels are separated from version labels, and the routing posture summarizes whether the current UUID behaves more like an ordered record locator, a random identifier, or a reserved token that should not be mistaken for normal application data.
A structural pass still needs interpretation. A valid-looking UUID does not prove that the referenced object exists, that a version 4 generator had good entropy, or that a node field corresponds to a real network interface. The decoder is strongest when it is used to explain layout and transport behavior, not to imply facts about the system that emitted the token.
Start with the decoded ledger if your question is basic identity. It gives you the normalized forms, version, variant, timestamp display, clock sequence, node flags, and the package's routing posture in one place. In most day-to-day debugging, that is enough to answer whether the token is time-aware, random, or structurally unusual before you ever look at the lower-level tabs.
The preferred-representation setting is mainly a communication tool. Some teams want canonical lowercase with dashes, some ticketing systems expect braces, and some APIs pass URNs. The page does not change the underlying UUID. It changes which representation is emphasized across badges and summary rows so you can document the same token in the format that best fits the workflow around it.
The timestamp display selector matters only for versions that actually carry time in the shipped logic: versions 1, 2, 6, and 7. UTC is best for cross-system comparison. Local time is better when you are matching an event to a user-facing incident timeline. Unix seconds and milliseconds are handy when you need to compare the decoded value against raw telemetry or database columns rather than against a human-readable clock.
Strict variant mode is the main ingestion guard. Leave it off when you are analyzing whatever token you have been handed. Turn it on when the task is policy enforcement and you want the page to reject non-Variant-1 identifiers that fall outside the mainstream RFC 4122 and RFC 9562 layout. The guidance profile then adjusts the wording of the routing notes so the same decoded UUID can be framed for storage, forensics, or interoperability work.
The parser is intentionally permissive about representation and strict about substance. It accepts canonical text, uppercase text, brace-wrapped forms, and URNs that begin with urn:uuid:. It trims outer wrappers, removes hyphens and spaces, and then requires exactly 32 hexadecimal digits. If multiple non-empty lines are pasted, only the first one is decoded and the rest are reported as ignored rather than merged into a batch job.
Version detection comes from the high nibble of octet 6, and variant detection comes from the high bits of octet 8. Those two checks are what let the package distinguish between time-based layouts, name-hashed layouts, random layouts, custom layouts, and compatibility variants such as the Microsoft GUID family. The tool labels version 2 conservatively because RFC 9562 treats DCE Security details as outside its scope, and it labels version 8 as custom because the layout semantics depend on the producing system.
Timestamp handling is version-aware. For versions 1, 2, and 6, the page reconstructs the 60-bit Gregorian timestamp and converts it into Unix seconds, Unix milliseconds, and ISO 8601 clock values using the UUID epoch offset. For version 7, it reads the most significant 48 bits as a Unix millisecond timestamp and separately exposes the remaining random segments. Versions without embedded time still decode cleanly, but they show that time is not available rather than inventing one.
The remaining fields are still useful even when no timestamp exists. The clock sequence is decoded from 14 bits, the node tail is rendered in colon, hex, and integer forms, and the node flags reveal whether the leading node byte indicates locally administered or multicast semantics. Nil and Max tokens are recognized explicitly because those values often appear in testing, sentinel ranges, and migration logic where a normal identifier would be misleading.
| Version family | What the page can infer | Practical reading |
|---|---|---|
| 1, 2, 6 | Gregorian timestamp plus clock sequence and node tail | Useful for legacy time-aware analysis and sortability checks |
| 7 | Unix millisecond timestamp plus random tail fields | Useful for ordered identifiers in modern storage systems |
| 3, 5 | Name-based family label without namespace reconstruction | Useful when determinism matters more than ordering |
| 4 | Random layout label and structural field extraction | Useful for entropy-first identifiers, but not for creation-time sorting |
| 8 and other custom cases | Version marker plus generic layout rows | Useful for recognition, but semantics remain producer-specific |
The output tabs are designed around different levels of explanation. Decoded Ledger is the compact field report. Bit Lanes shows the six canonical UUID segments in hex and binary with version-aware descriptions. UUID Signal Map turns the 128 bits into a proportional chart of timestamp, version, variant, clock-sequence, and tail allocation. Routing Notes translates those findings into storage, forensics, or interoperability guidance. JSON exports the same interpreted state in a machine-friendly form.
Decoding itself happens locally in the browser, and the tool synchronizes the visible parameter set into query parameters so the current view can be restored or shared. Copy and export actions use browser APIs. One network exception remains: if you open the chart tab and the charting library is not already present, the page lazy-loads ECharts from a CDN before drawing the signal map.
Decoded Ledger for normalized forms and field values, then Bit Lanes if you need the exact six-segment breakdown.UUID Signal Map when you need a quick visual explanation of how many bits are devoted to time, versioning, and tail entropy.The version row answers the first practical question: can this UUID say anything about time or ordering? Versions 6 and 7 are the strongest fit for chronology-friendly storage because the significant time bits are arranged for sortability. Versions 1 and 2 also carry time, but they belong to older families with legacy compatibility concerns. Version 4 should be read as an entropy-first identifier, not as an ordered event marker.
The variant row answers a different question: which layout family governs the rest of the bits? Variant 1 is the mainstream RFC layout. Variant 2 signals Microsoft GUID compatibility space. Nil and Max are special because they sit in reserved variant ranges while still being legitimate sentinel values that software may use intentionally.
Timestamp rows should be read as decoded payload, not guaranteed wall-clock truth. The tool reconstructs the embedded value faithfully, but the UUID specification still leaves room for implementation-specific choices, especially around clock handling and monotonicity. A timestamp-bearing UUID can therefore help with ordering and correlation without proving exact event time on its own.
Node and clock-sequence fields are likewise descriptive, not forensic proof by themselves. A node tail can be random, synthesized, or derived from hardware. The multicast and local flags are worth noticing, because they often tell you not to over-read the node as a literal device identity. Use those rows as clues about layout behavior and exposure risk, not as standalone attribution evidence.
Version 7 storage review. A database migration plan proposes UUIDv7 for new primary keys. You paste a sample token and confirm that the page shows a Unix-millisecond timestamp, a Version 7 label, and an index-friendly routing posture. That is the quick sign that the identifier family supports chronological locality in a way version 4 does not.
Legacy token audit. An old system emits a value that turns out to be version 1. The decoder shows a reconstructed timestamp, a clock sequence, and node flags. That does not prove a hardware address leak, but it does tell you the token family carries more structural metadata than a random UUID and may deserve tighter handling in logs or external APIs.
Sentinel detection. A service responds with all zeroes or all Fs in place of a normal identifier. The page calls that out as Nil or Max immediately, which is often the fastest way to see that the value represents an empty slot, range boundary, or placeholder rather than a real entity identifier.
No. It decodes only the first non-empty line and reports how many extra lines were ignored.
No. It means the layout is the random family. The page does not test generator quality or entropy strength.
Not safely. The tool exposes the node bits and flags, but many generators randomize or synthesize that tail.
Because the text can still be 128 bits of hex while belonging to a non-Variant-1 compatibility space. Strict mode enforces the mainstream RFC layout only.
Core decoding stays in the browser. The main remote fetch happens only if the signal-map tab needs to load its charting library from the CDN.
urn:uuid:... that wraps the same UUID value.