UUID Generator

Click Generate to get a new random UUID (version 4 by default), or switch to version 1 or version 7 and generate up to 100 at once. Every UUID is built from cryptographically secure random bytes via your browser's crypto.getRandomValues, never Math.random(), and nothing is sent to a server.

Your UUID

Bulk generation

UUID Generator

A UUID (Universally Unique Identifier, standardized as RFC 4122 and updated by RFC 9562) is a 128-bit value, conventionally written as 32 hex digits split into five groups by hyphens (8-4-4-4-12, e.g. 550e8400-e29b-41d4-a716-446655440000). The whole point is generating unique identifiers WITHOUT a central coordinating authority — two independently-generated UUIDs, from two different systems that have never communicated, are vanishingly unlikely to collide, which makes them useful for database primary keys, distributed system record IDs, idempotency keys, and session/request tracking identifiers.

The version nibble (the first hex digit of the third group) says how a UUID was constructed. Version 4 is pure randomness — 122 random bits plus fixed version/variant bits — and is the default and most common choice today: simple, no timing or hardware assumptions, essentially zero real-world collision risk. Version 1 is time-based: a 60-bit timestamp plus a "node" field historically meant to be the generating machine's real MAC address, which is exactly why v1 fell out of favor for public-facing identifiers — embedding a real MAC address in every generated ID leaks a hardware fingerprint. This tool generates version 1 UUIDs per the RFC's own guidance for when no real MAC address is available: random node bytes with the multicast bit set, so nothing about your machine leaks into the identifier.

Version 7 (added by RFC 9562 in 2024) is the modern alternative to v1: a 48-bit millisecond Unix timestamp in the leading bits, followed by random bits. Because the timestamp sorts first, UUIDs generated later always sort after ones generated earlier — useful as a database primary key, since naturally-ordered keys insert more efficiently into a B-tree index than v4's fully-random ones, which scatter insert positions across the whole index. Unlike v1, v7's timestamp alone doesn't identify a specific machine.

Every random byte behind these generators — for all three versions — comes from crypto.getRandomValues, the Web Crypto API's cryptographically secure random number source, never Math.random(). This matters because Math.random() is explicitly NOT specified to be cryptographically secure in any JavaScript engine — its output can, in principle, be predicted or reproduced by an attacker who's seen enough of its previous outputs, which would be a real problem for identifiers used anywhere unpredictability matters (a v4 UUID's uniqueness guarantee, for instance, rests entirely on those 122 bits actually being unpredictable).

Glossary

UUID
Universally Unique Identifier — a 128-bit value (RFC 4122/9562) designed to be generated without central coordination while remaining globally unique in practice.
UUID v4
A UUID built from 122 random bits — the simplest, most common version, with no timing or hardware assumptions.
UUID v1
A time-based UUID (60-bit timestamp + node field). This tool fills the node field with random, non-hardware-derived bytes per the RFC's own guidance, rather than a real MAC address.
UUID v7
A time-ordered UUID (RFC 9562, 2024): a 48-bit millisecond timestamp followed by random bits, so generated values sort chronologically — a common choice for database primary keys.
Node field
A 48-bit field in a v1 UUID historically meant to hold the generating machine's real MAC address — a privacy concern this tool avoids by using random bytes instead.
CSPRNG
Cryptographically Secure Pseudo-Random Number Generator — the crypto.getRandomValues source this tool uses, unlike the predictable Math.random().

API equivalent

This tool has no API equivalent in our service — generating a UUID isn't an IP-address fact, so there's nothing for our API to return here. The generation above runs entirely on your device using your browser's cryptographically secure random number source; nothing is ever sent anywhere. If you're looking for our IP-lookup API instead, it covers geolocation, ASN/network and threat/fraud data for an IP address:

Read the full API docs

Frequently asked questions

Which UUID version should I use?
Version 4 for general-purpose identifiers — it's the simplest and most widely supported. Choose version 7 specifically if the UUID will be a database primary key, since its time-ordered layout inserts more efficiently into a B-tree index than v4's fully random values.
Are these UUIDs cryptographically secure?
Every random bit comes from crypto.getRandomValues, the Web Crypto API's cryptographically secure random source — never Math.random(), which is not specified to be unpredictable in any JavaScript engine.
Can two generated UUIDs collide?
In theory yes, in practice no — a v4 UUID has 122 random bits, so the probability of ever generating a duplicate is astronomically small even across billions of UUIDs. This is why UUIDs are trusted as unique identifiers without a central registry.
What's different about UUID v7 vs v4?
v7 leads with a 48-bit millisecond timestamp, so UUIDs generated later always sort after earlier ones; v4 is fully random with no ordering at all. Both use the remaining bits for randomness, and both use a cryptographically secure random source.
Does the v1 UUID leak my MAC address?
No — this tool fills the v1 "node" field with random bytes (with the multicast bit set, per the RFC's own guidance for when no real hardware address is available), never your browser's or device's actual MAC address.
Is my data sent to a server?
No — every UUID is generated locally in your browser. This page makes no network request to generate one or a whole batch.

Like this tool? Our API gives free accounts 1,000 requests/day.See the API docs →