UUID Generator

Generate random UUIDs (v4) or timestamp-ordered UUIDs (v7) in bulk. Customize case and hyphens, and decode an existing UUID's version and embedded timestamp.

runs locally on your browser. Your data never leaves your device.

Quantity

Version

Case

Configure your options and click Generate

Up to 1000 UUIDs at once, v4 or v7

Decode a UUID

Common Use Cases

Generate a batch of primary keys for a new database table or seed script
Create a v7 UUID for a system that benefits from creation-order sorting without giving up standard UUID compatibility
Decode a UUID from a log line or database row to check its version or, for v7, when it was created
Produce UUIDs in a specific case or hyphen format to match an existing system's expectations

About UUID Generator

A UUID (Universally Unique Identifier, also called a GUID) is a 128-bit value, almost always written as 32 hexadecimal characters split into five groups (8-4-4-4-12, e.g. 3f2504e0-4f89-11d3-9a0c-0305e82c3301), used as a globally unique identifier without needing a central authority to hand them out. They're everywhere: database primary keys, API resource IDs, session tokens, file names for uploaded assets, anywhere you need an identifier that won't collide with one generated somewhere else, ever.

This tool generates one or many UUIDs at once, entirely with your browser's cryptographically secure random number generator. Two versions are supported: version 4, the overwhelmingly common variant, which is 122 bits of pure randomness (the other 6 bits are fixed to mark the version and variant); and version 7, a newer format (standardized in RFC 9562) that encodes a 48-bit millisecond timestamp in its first bits, so, like a ULID, a list of v7 UUIDs sorts in creation order instead of scattering randomly, while still fitting the exact same 128-bit, 5-group shape every UUID library already expects.

Output can be customized to match whatever a specific system expects: lowercase (the RFC-standard convention) or UPPERCASE, and with or without the hyphens that visually separate a UUID's five groups. Already have a UUID and want to know what it is? Paste it into the decoder to see its version and variant, and, for a v7 UUID, its embedded creation timestamp, decoded to a readable date.

Everything, generation and decoding, runs as plain JavaScript directly in your browser, using the same Web Crypto API that powers encryption keys. No identifier you generate or decode is ever uploaded, logged, or transmitted anywhere.

Frequently Asked Questions

What's the difference between UUID v4 and v7?
Version 4 is almost entirely random: 122 of its 128 bits carry no information beyond randomness, so v4 UUIDs give no hint about when they were created and don't sort into any meaningful order. Version 7 spends its first 48 bits on a millisecond-precision timestamp, so a set of v7 UUIDs sorts lexicographically in creation order, the same benefit a ULID offers, while remaining a standard, RFC 9562-compliant UUID that any UUID-aware database column or library already knows how to store and validate.
Should I use UUID v7 instead of v4 for a new database's primary key?
It depends on your database, but v7's creation-order sorting is a real, well-documented advantage for indexed primary keys: many databases (Postgres and MySQL/InnoDB among them) insert rows into an index more efficiently when new keys are close to the previous ones rather than scattered randomly across the whole key space, which is exactly what v4's pure randomness causes. If your database and tooling support v7 (increasingly common, since it's now a ratified standard) and you're starting fresh, it's a reasonable default; v4 remains the safer choice for maximum compatibility with older libraries that only expect the classic random format.
Are the generated UUIDs actually unique?
As unique as any UUID gets: v4's 122 random bits mean the chance of two independently generated v4 UUIDs colliding is astronomically small (you'd need to generate billions of UUIDs per second for centuries before a collision became likely by chance), and this tool sources that randomness from the Web Crypto API's cryptographically secure generator, not Math.random(). v7 UUIDs add a timestamp on top of 74 bits of randomness per identifier, which is still more than enough entropy to avoid collisions even among UUIDs generated in the same millisecond.
Can I generate UUIDs without hyphens, or in uppercase?
Yes. The case toggle switches between lowercase (the RFC-standard convention, and what almost every system expects) and UPPERCASE, and the hyphens toggle removes the four dashes to produce a plain 32-character hex string, which some systems (certain database columns, older APIs) expect instead of the standard hyphenated form.
What does the decoder show for a UUID that isn't v4 or v7?
It always shows the UUID's version number (1 through 8) and its variant (almost always 'RFC 4122/DCE', the standard variant nearly every UUID uses) regardless of version. The embedded-timestamp decode is only shown for version 7, since that's the version with a defined, easily-decoded timestamp field; other versions either don't carry a timestamp (v4) or encode one differently enough that this tool doesn't attempt to decode it.
Is any UUID I generate or decode sent to a server?
No. Every UUID is generated and decoded entirely in your browser using JavaScript and the Web Crypto API. Nothing is uploaded, logged, or transmitted anywhere, and the tool keeps working even if your internet connection drops after the page has loaded.