UUID Generator
Generate universally unique identifiers (UUIDs v4)
100% free. Runs entirely in your browser - your files and data never leave your device and nothing is uploaded to any server.
888df136-c80c-4370-a5ef-c49aac8bdd94layers Bulk Generate
About this tool
A UUID is a 128-bit identifier written as 36 characters - 32 hex digits split into five groups by hyphens. The point of it is coordination-free uniqueness: any machine can generate one at any time, without asking a central server, and be confident nobody else will ever produce the same value. That property is what makes UUIDs the default for distributed systems, where waiting on a database to allocate the next sequential id is either a bottleneck or impossible. Version 4 - what this tool generates - takes 122 of those bits from a random source, leaving about 5.3 undecillion possibilities. The practical meaning of that number is that you would need to generate roughly a billion UUIDs per second for 85 years before a 50% chance of a single collision. This uses the browser's crypto.randomUUID(), a cryptographically secure source, not the ordinary random function. Nothing is transmitted.
How to use this tool
- Choose how many you needGenerate one, or a batch when seeding test data or creating several records at once.
- GenerateValues come from your browser's crypto.randomUUID(), the same class of randomness used for security keys.
- Copy the resultCopy a single value or the whole batch straight into your code, migration or spreadsheet.
UUID, GUID and correlation IDs
A UUID is a 128-bit value written as 32 hex digits in five groups, such as 3f2504e0-4f89-41d3-9a0c-0305e82c3301. GUID is Microsoft’s name for the same thing. Version 4 UUIDs are random: 122 of the 128 bits come from a secure random source, so two never realistically collide.
A common use is a correlation ID - a UUID attached to a request and passed through every service it touches, so all the log lines for one request can be found together.
Key features
- Cryptographically secure randomness via crypto.randomUUID(), not a predictable pseudo-random source.
- Batch generation, so seeding test data is one operation.
- Runs in your browser - no request, no logging, no rate limit.
- Standards-compliant version 4 output that any language and database will accept.
- Instant, with no account.
Common uses
- Primary keys in a distributed system where sequential ids would need central coordination.
- Correlation ids that follow a request across multiple services in logs.
- Seeding a test database with realistic unique identifiers.
- Idempotency keys so a retried API call cannot create a duplicate record.
- Filenames for uploads, avoiding collisions without checking what already exists.
Tips for better results
- Do not treat a UUID as a secret. It is unguessable in practice, but it is an identifier, not an access token.
- Store UUIDs in a native uuid column where your database has one - Postgres uses 16 bytes, while storing the text form costs 36.
- Be aware that random v4 UUIDs as a clustered primary key hurt insert performance in some databases, because each write lands at a random point in the index. UUID v7 exists to solve exactly that.
- They are case-insensitive by convention and usually written lowercase. Compare them consistently or normalise on the way in.
- To check whether an existing UUID is well-formed and which version it is, use the UUID Validator.
Mistakes to avoid
- Using a UUID as a security token. Unpredictable is not the same as secret - anything that leaks it grants access.
- Storing them as VARCHAR(36) at scale, which more than doubles the storage and index size versus a native uuid type.
- Assuming a v4 UUID encodes a timestamp or ordering. It carries no information at all - it is pure randomness.
- Generating them with Math.random() in your own code, which is not cryptographically secure and can produce collisions.
- Exposing UUID primary keys in URLs and assuming that makes records private. It obscures them; it does not protect them.
Available options
- UUID version 4
- Copy / regenerate
Frequently asked questions
Click generate above. Values are produced by your browser's crypto.randomUUID() and can be copied straight out - nothing is sent to a server.
Yes. No account, no limit on how many you generate and no server involved.
Version 4, the random-based variant, which is the standard choice for general-purpose identifiers and the one most libraries default to.
In theory yes, in practice no. Version 4 has 122 random bits, about 5.3 undecillion values. You would need roughly a billion per second for 85 years to reach a 50% chance of one collision - which is why they are trusted without central coordination.
Yes. Choose a count and generate them as a batch, which is the usual need when seeding test data or creating several records.
The randomness is - crypto.randomUUID() uses the same secure source as cryptographic key generation. But a UUID is still an identifier, not a secret, so do not use one as an authentication token.
v4 is entirely random. v7 embeds a timestamp so values sort roughly by creation time, which behaves far better as a database primary key because inserts land at the end of the index rather than scattered through it.
No. Generation happens in your browser and nothing is logged or transmitted.