Developer Tools

Free UUID Generator

Generate RFC 4122 v1 (time-based) and v4 (random) UUIDs — one at a time or up to 1000 in a batch. Five output formats, and a validator that parses version, variant and timestamp from any pasted UUID. All in your browser.

Crypto-Secure v4 Bulk to 1000 5 Formats UUID Validator

Settings

How many 1
15001000
Output format

Generated UUIDs

Ready to generate

Click Generate to produce UUIDs

What Is a UUID?

A UUID (Universally Unique Identifier) is a 128-bit number used to identify objects in computer systems. It is typically written as 32 hexadecimal digits in five hyphen-separated groups — 9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d — and the format is defined by RFC 4122. Microsoft calls the same construct a GUID; the two are interchangeable.

The value of a UUID is that it can be generated independently on any machine, at any time, without coordination, and will still be unique. That is what makes them the default identifier in distributed systems — you can create an ID on the client and insert it into the database without a round trip, and you never have to worry that two servers will pick the same one.

Anatomy of a UUID

Written out, a UUID is xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx. The two characters highlighted in that pattern carry structured information:

FieldPositionMeaning
Version (M)First char of 3rd group1 = time-based, 4 = random, 7 = Unix time, others reserved
Variant (N)First char of 4th group8, 9, a or b means RFC 4122 variant (the standard)
Timestampv1 only, first 60 bits100-nanosecond intervals since 1582-10-15
Nodev1 only, last 48 bitsMAC address (or random if privacy mode)
Randomv4, 122 bitsFrom a cryptographically secure source

UUID versions at a glance

VersionBased onSortableUse for
v1Timestamp + node (MAC)YesLegacy systems, ordered keys (with caution)
v2DCE Security (obsolete)—Never — do not use
v3MD5 of namespace + nameNoDeterministic IDs from a string
v4122 bits of randomNoEverything — the modern default
v5SHA-1 of namespace + nameNoDeterministic IDs (SHA-1 variant)
v6v1 with reordered timestampYesOrdered keys (RFC 9562)
v7Unix time + randomYesModern ordered keys (RFC 9562)

v4 is the safe default for almost every use case. Use v1 only when you need time-ordering and can accept that it exposes the machine's MAC address and the exact moment of creation. Modern alternatives that combine ordering with privacy (v7, ULID) exist but are not yet universally supported.

Output formats

The same 128-bit value can be written several equivalent ways. This tool supports all five:

FormatExampleUsed by
Standard9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6dDefault, RFC 4122 canonical form
Compact9b1deb4d3b7d4bad9bdd2b0d7b3dcb6dURLs, compact storage
Uppercase9B1DEB4D-3B7D-4BAD-9BDD-2B0D7B3DCB6DMicrosoft tools, .NET
Braces{9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d}Windows registry, GUID literals
URNurn:uuid:9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6dRFC 8141 URN identifiers

Will I ever see a collision?

For UUID v4 there are 2122 possible values — about 5.3 × 1036. To have a 50% chance of a single collision you would need to generate roughly 2.7 × 1018 UUIDs. At a billion per second that would take about 85 years of continuous generation. Real systems run out of storage, disk or time long before they run into a duplicate UUID.

This is why UUIDs are considered safe to generate without a central authority, even across thousands of machines. The probability of collision is so far below the probability of a hardware failure that it is not worth engineering around.

Common use cases

Database Primary Keys

Client-generated IDs that don't need a round trip to the database.

API Idempotency Keys

A unique value sent with each request so retries don't duplicate.

File & Document IDs

Rename uploads to collision-free identifiers without a registry.

Distributed Systems

Trace requests and events across services with a shared ID.

Session & Device IDs

Anonymous identifiers that don't leak user information.

Testing & Fixtures

Realistic IDs for seeds and mocked data.

Component Keys

Stable keys for React, Vue and other virtual-DOM frameworks.

Unguessable Tokens

Lower-entropy alternative to random tokens for non-security IDs.

Privacy and security

This UUID generator runs entirely in your browser. Version 4 UUIDs are built from crypto.getRandomValues() — a cryptographically secure random source seeded by the operating system, the same source used to generate TLS session keys. Version 1 UUIDs use the standard construction with a random node ID by default (to avoid leaking your MAC address). Nothing is uploaded, stored or transmitted.

Frequently Asked Questions

What is a UUID?
A UUID (Universally Unique Identifier) is a 128-bit number used to identify information in computer systems. It is typically displayed as 32 hexadecimal digits in five groups separated by hyphens, like 9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d. The format is defined by RFC 4122 and is designed so that identifiers created at different times or on different machines will never collide in practice.
Is this UUID generator free?
Yes. It is 100% free, requires no sign-up, and runs entirely in your browser. No batch limits below 1000, no watermarks, no premium tier.
Is my data sent to a server?
No. UUIDs are generated entirely in your browser using the native crypto.getRandomValues() API for v4, and standard time-based construction for v1. Nothing is uploaded, stored or transmitted.
What is the difference between UUID v1 and v4?
UUID v1 is time-based: it combines the current timestamp with the machine's MAC address (or a random node ID) to produce a UUID that is sortable by creation time. UUID v4 is random: 122 of its 128 bits are drawn from a cryptographically secure random source. V4 is the modern default because it does not leak the machine's identity or the exact time of generation.
Which UUID version should I use?
Use v4 for almost everything. It is the default in Java, Python, Node.js, Go and every major database. Use v1 only when you specifically need time-ordered identifiers (for example, as a primary key in a B-tree) and can accept that it exposes the machine ID and timestamp. Modern alternatives that solve this without leaking information include UUID v7 and ULID, but they are not yet widely supported by client libraries.
Can UUIDs ever collide?
In theory yes, in practice no. For UUID v4 there are 2122 possible values — about 5.3 × 1036. To have a 50% chance of a single collision you would need to generate roughly 2.7 × 1018 UUIDs, which is more than a billion per second for 85 years. Any real system will run out of storage, disk or time long before it runs into a collision.
What do the version and variant fields mean?
Every UUID has a version nibble and a variant field. The version nibble is the first character of the third group and tells you which algorithm produced the UUID: 1 for time-based, 4 for random, 7 for Unix epoch time-based. The variant field is the first one to three bits of the fourth group — 10xx in binary means RFC 4122 variant, which is what every modern system uses.
Can I use UUIDs as database primary keys?
Yes, and it is common in distributed systems because you can generate the ID on the client without a round trip to the database. The trade-off is that random UUIDs (v4) cause index fragmentation in B-tree databases like PostgreSQL and MySQL because new keys land in random positions. Two solutions are to use UUID v7 or ULID (which are time-sortable), or to store the UUID as a 16-byte binary column instead of a 36-character string.
What is the NIL UUID?
The nil UUID is 00000000-0000-0000-0000-000000000000 — all zero bits. It is defined by RFC 4122 as a special value that can be used when no UUID is available, in much the same way that a null pointer represents the absence of an object. The max UUID is the opposite: ffffffff-ffff-ffff-ffff-ffffffffffff.
What are the different UUID formats?
The same UUID can be written in several equivalent ways. Standard uses hyphens: 9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d. Compact removes them: 9b1deb4d3b7d4bad9bdd2b0d7b3dcb6d. Uppercase changes the hex digits to capital letters. Braces wrap it in curly brackets, as some Microsoft tools do. URN prefixes it with urn:uuid: as required by RFC 8141 for URN-based identifiers.
Can I use these UUIDs in production?
Yes. UUID v4 is generated here using the browser's crypto.getRandomValues() API, which is a cryptographically secure random source seeded by the operating system — the same source used to generate TLS session keys. The output is indistinguishable from UUIDs generated by any server-side library.

Related Developer Tools

Done!