UUID Generator
Generate UUID v4 and time-ordered v7 in bulk, and check any UUID's version
Runs entirely in your browser. Nothing you type or upload is sent to us or stored.
Results are for general guidance. Please check anything important before relying on it. Terms of use
How to Use
- Pick the version: v4 (random) for general IDs, or v7 (time-ordered) for database primary keys.
- Enter how many you need, from 1 to 1000.
- Turn on UPPERCASE or turn off Hyphens if your system needs that format. The list updates straight away.
- Click Generate for a fresh batch, then copy the first one, copy all, or download .txt.
- To check an existing UUID, paste it into Check a UUID to see its version, variant and, for v1/v6/v7, when it was created.
What is a UUID?
A UUID (Universally Unique Identifier), called a GUID in the Microsoft world, is a 128-bit ID written as 32 hexadecimal digits in five groups: 8-4-4-4-12. Any program can create one on its own, without asking a central server, and still be confident that nobody else will ever create the same value. That's why UUIDs suit database keys, order and transaction references, file names, API request IDs and records synced between a mobile app and a server.
The format is defined by RFC 9562 (May 2024), which replaced the older RFC 4122 and added versions 6, 7 and 8.
Reading a UUID
version = 7 (first digit of group 3)
variant = 9 (first digit of group 4: 8, 9, a or b means RFC 9562)
The first digit of the third group is the version. The first digit of the fourth group shows the variant, and for standard UUIDs it's always 8, 9, a or b. The checker on this page reads both for you.
Version 4 vs version 7
| UUID v4 | UUID v7 | |
|---|---|---|
| Built from | 122 random bits | 48-bit Unix time in milliseconds + 74 random/counter bits |
| Sort order | Random | Roughly by creation time |
| Reveals creation time? | No | Yes, to the millisecond |
| Best for | Tokens, public IDs, general use | Database primary keys, logs, event streams |
Why use v7 for databases? Most databases store primary keys in a B-tree index. Random v4 keys land all over the index, so each insert touches a different page. Time-ordered v7 keys are appended near the end, which keeps the index compact and inserts fast. PostgreSQL 18 (September 2025) added a built-in uuidv7() function, and .NET 9 added Guid.CreateVersion7().
The v7 layout in the example above: 017f22e279b0 is the timestamp 1,645,557,742,000 ms, which is 22 February 2022, 19:22:22 UTC (23 February, 00:52:22 IST). 7 is the version, and the rest is random apart from the variant bits. Paste it into the checker to see the date.
How this generator works
- v4 uses your browser's
crypto.randomUUID(), which draws on the operating system's cryptographically secure random generator. - v7 follows RFC 9562: the current time in the first 48 bits, then version and variant bits, with the remaining bits from
crypto.getRandomValues(). When many UUIDs are made in the same millisecond, a 12-bit counter keeps each one larger than the previous, so a batch of 1000 is already in sorted order. - It all runs in your browser. No UUID is sent to or logged by any server.
Can two UUIDs ever be the same?
In theory yes, in practice no. A v4 UUID has 2122 possible values. By the birthday rule you'd need to generate about 2.7 ร 1018 UUIDs (2.7 quintillion) before there's even a 50% chance of a single duplicate. That's a billion UUIDs every second for about 86 years. Bugs, such as copying the same value twice or a weak random generator, are a far bigger risk than chance.
Tips
- Store UUIDs in a native
uuidcolumn (PostgreSQL) or as 16-byte binary, not as a 36-character string, to save space. - Don't use UUIDs as secrets or password-reset tokens. Use a purpose-built random token instead. v7 in particular exposes its creation time.
- Uppercase and lowercase UUIDs are the same value. RFC 9562 recommends lowercase output.