UUID v8 Generator
UUID v8 generator creates a version 8 UUID in your browser and copies it in one click. UUID v8 is the custom-use version defined in RFC 9562. It keeps the standard 128-bit layout, but leaves 122 bits for your application to define.
Shortcuts: C copy · R new uuid · G generate bulk
The tool shows the bit layout of every value, so you can see which bits are fixed and which are custom. Your UUIDs are generated in your browser, and nothing is sent to a server.
What Is UUID v8?
UUID v8, also written as uuidv8, is the custom-use version of the UUID format defined in RFC 9562. UUID version 8 keeps the standard 128-bit layout, but only fixes the version and variant bits. The other 122 bits are left for your application to define. People often shorten the name to UUID 8, which means the same thing: a standard-looking UUID whose contents you design yourself.
Other versions tell you how to fill those bits. UUID v4 uses random data, and UUID v5 hashes a namespace and a name. UUID v8 leaves that choice to you: a system might store a timestamp, a shard number, a tenant code, or a hash of its own data.
That freedom has a cost. The layout is private to the system that creates it, so another system cannot assume what the bits mean. The RFC also leaves uniqueness to the implementation, so your layout has to prevent duplicates.
A UUID v8 still looks and behaves like any other UUID. It uses the same 8-4-4-4-12 text form, the third group starts with 8, and it fits UUID columns and parsers without changes.
UUID v8 Example and Format
Here is a UUID v8 example, a UUIDv8 value created by the generator on this page in Time-based mode:
01a19725-4c8d-8321-9b3d-a1c72dcfa5ad
Every UUIDv8 value follows the standard text format: 32 hexadecimal digits in five groups of 8, 4, 4, 4, and 12, joined by hyphens, 36 characters in total. Two digits identify it. The first digit of the third group is 8, which is the version. The first digit of the fourth group is 9, which falls in the variant range of 8, 9, a, or b.
The rest is custom data, and its meaning depends on the generator.
In this tool’s Time-based mode, the first 12 hex digits (01a19725-4c8d) hold the Unix time in milliseconds. This value decodes to 1793537166477, which is 1 November 2026, 12:46:06.477 UTC. That is one generator’s layout, not a rule for every UUID v8.

UUID v8 Structure: Version Bits, Variant Bits, and Custom Data//image
In the Timestamp row, keep Current time to stamp the value with the moment you generate it, or switch to Custom time to choose the moment yourself. That helps with test data and fixtures. The embedded time is the one you chose, not the real creation time.

For the format, Standard gives the 36-character string, and URN adds the urn:uuid: prefix. Base64, Base64 URL-safe, and Hex (0x) write the 16 raw bytes instead. The style options are Uppercase, Hyphens (on by default), Braces, URL-encode, and Quotes (None by default).
Generate Multiple UUID v8 Values.
For a batch, use the same UUID v8 generator. Type a number or pick a preset: 1, 10, 50, 100, 500, or 1,000. Choose a separator (new line, comma with a new line, comma, space, or tab), then click Generate UUIDs or press G. The whole batch appears in a results panel with numbered rows.
Copy or Download the Results
Use the copy icon on any row for a single value, or Copy all for the whole list. To save the batch, download it as .txt, .csv, .json, or .sql, depending on where it is going next. Click Clear to empty the panel and start again.
UUID v8 Use Cases and Limitations
UUID v8 is useful when you need a UUID-shaped identifier that carries your own data or follows your own rules. UUID version 8 exists for vendor-specific and experimental formats, so the best uses are ones where the standard versions don’t fit:
- Embedded routing data: Put a shard, tenant, or region code inside the ID, so a service can route a record without a database lookup.
- Custom time-based IDs: Lay out your own timestamp precision or epoch, instead of the fixed 48-bit millisecond layout of UUID v7.
- Hash-based IDs with another algorithm: Derive a repeatable UUID from a name using SHA-256 instead of the SHA-1 that UUID v5 uses.
- Legacy ID migration: Keep an existing identifier scheme inside a standard 128-bit UUID column.
The limits come from the same freedom. The standard does not define what the custom bits mean, so a UUID v8 cannot be decoded without knowing the generator’s layout. A parser can confirm the version and variant, but not the contents. Sorting order, repeatable output, and compatibility with other systems exist only if your design provides them. If you don’t need custom data, a standard version is the simpler choice.

UUID v8 Uniqueness and Security Limitations
A UUIDv8 value is not unique or secure just because it is a UUID. Both depend on the algorithm that fills the 122 custom bits. A layout with plenty of random bits can make collisions extremely unlikely, but a layout built from a few fixed fields can repeat. A hash-based layout returns the same UUID for the same input, by design.
Security needs the same care. The standard does not require UUID v8 to be unpredictable, so don’t assume it is a secret. Random bits protect you only if they come from a cryptographically secure source, so check how your generator produces them. A layout that embeds a timestamp or shard code also shows that information to anyone who reads the ID.
For access tokens, password resets, or session IDs, use a purpose-built secure token instead of any UUID.
UUID v8 vs UUID v4, v5, and v7
The main difference is who defines the bits. UUID v4, v5, and v7 each follow a fixed recipe from RFC 9562. UUID version 8 fixes only the version and variant bits and leaves the other 122 bits for you.
|
UUID v4 |
UUID v5 |
UUID v7 |
UUID v8 |
|
|
What fills the bits |
Random data |
SHA-1 hash of a namespace and a name |
Unix timestamp plus random data |
Whatever your design defines |
|
Contains a timestamp |
No |
No |
Yes, in milliseconds |
Only if your layout includes one |
|
Sorts by creation time |
No |
No |
Yes, when timestamps differ |
Only if your layout makes it so |
|
Same input, same UUID |
No |
Yes |
No |
Only if your layout is deterministic |
|
Layout set by the standard |
Yes |
Yes |
Yes |
No, only version and variant |

[UUID v4] is the usual choice for general identifiers. It is random, carries no time information, and does not sort by creation time. [UUID v5] hashes a namespace and a name, so the same input always gives the same UUID. That suits stable IDs derived from names such as URLs. [UUID v7] starts with a 48-bit Unix timestamp in milliseconds, so values sort by creation time when their timestamps differ.
Choose UUID v8 when none of those recipes fit. You might need to embed a shard or tenant code, hash with something other than SHA-1, or keep an existing ID scheme inside a UUID column. The mode selector in this generator shows the range: Random, Time-based, Custom fields, and Name-based (SHA-256) each produce a different layout.
That flexibility has limits. Another system cannot know what your custom bits mean; uniqueness is your responsibility, and sorting or repeatable output exists only if you design them in. If you don’t need custom data, UUID v7 or v4 is usually the simpler choice, and the [general UUID generator](General UUID Generator link) covers every version.
