Online UUID v6 generator
Your generated UUID version-6
Bulk UUID/GUID generator
You can generate up to 1000 UUIDs at a time using the Bulk UUID Generator. Select the UUID version you require - either version-1, version-4 or version-7 - by selecting it from the drop-down list.
UUID in a nutshell
Because you might be a little confused about what a UUID actually is.
Version 1
A version 1 UUID is a unique identifier that is generated from a timestamp and the MAC address of the computer, ensuring uniqueness. However, because the MAC address is exposed, it poses potential privacy and security risks.Read more about v1
Version 4
A version 4 UUID is a unique identifier generated from random numbers. This makes it highly unlikely that any two UUIDs will ever be the same. The version 4 UUIDs generated by this site use a secure random number generator for maximum security.Read more about v4
Version 7
A version 7 UUID is a time-ordered UUID that encodes a Unix timestamp with millisecond precision in its most significant 48 bits. It uses 6 bits for version and variant, with the remaining 74 bits randomly generated. The sequential nature of UUIDv7 improves database performance by addressing the index locality issue, unlike the random UUIDv4.
UUID version 6 (UUIDv6) is a time-based identifier that improves upon the structure of UUIDv1 for better database index locality while maintaining backward compatibility. UUIDv6 uses a 60-bit timestamp with 100-nanosecond precision, a clock sequence, and a node identifier. These components are reordered to enable chronological sorting of raw bytes.
UUIDv6 rearranges the timestamp bytes from UUIDv1 (from high to low order), but retains the same data components. This enables lexical sorting of UUIDv6 values according to creation order. In contrast, UUIDv1 requires timestamp extraction for sorting. Both versions have the same 60-bit timestamp precision and MAC address exposure potential.
UUIDv6 is recommended for legacy systems that use UUIDv1 and need improved database performance without undergoing a full migration. UUIDv6 is particularly useful for maintaining compatibility with existing UUIDv1 infrastructure while providing benefits that can be sorted. New systems should use UUIDv7 instead.
UUIDv6 contains the following: 1) 48-bit high-order timestamp 2) 4-bit version (0110) 3) 12-bit low-order timestamp 4) 2-bit variant 5) 14-bit clock sequence 6) 48-bit node ID. This reorganization places the time-based bytes first for efficient sorting.
Yes, UUIDv6 inherits the potential for MAC address exposure through the node ID from UUIDv1. However, RFC 9562 permits replacing the MAC address with a random 48-bit value when privacy is a concern and setting the multicast bit to differentiate random node IDs.
UUIDv6 is compatible with UUIDv1, while UUIDv7 uses a simpler Unix millisecond timestamp. UUIDv7 has no MAC address exposure and better entropy distribution. Due to its 100 ns precision, UUIDv6 is better suited for applications requiring high-resolution time.
Yes, the byte order of UUIDv6 ensures that lexical sorting matches chronological order. Compared to random UUIDs, this reduces index fragmentation, improving insert performance by 10-15% in benchmarks while maintaining UUIDv1 compatibility.
Notable implementations include the Python uuid6 package, the JavaScript uuid-with-v6 package, the Elixir UUIDUtils package, and the Rust uuid6 crate. Some databases, such as PostgreSQL, require extensions for native UUIDv6 support.
UUIDv6 was included in RFC 9562 (2024) primarily to ensure backward compatibility with existing UUIDv1 systems. However, the simpler design of UUIDv7 was prioritized for new systems, with UUIDv6 serving as a migration path for legacy implementations that require sortable IDs.
Yes, UUIDv6 and UUIDv1 are binary compatible through byte reordering. Libraries such as Python's uuid6 provide conversion functions (uuid1_to_uuid6() and uuid6_to_uuid1()), to ensure seamless interoperability between versions.