Free UUID Generator — v4, v7, v1 and Nil
This is a free online UUID generator that creates universally unique identifiers directly in your browser. Pick a version, choose how many you need, and get them instantly — no signup, no tracking, no server round-trip. Every UUID is generated locally using the Web Crypto API, the same cryptographic source browsers use for TLS and password managers, so the values never leave your device.
Generate a single UUID or batch up to 100 at a time. Copy them individually, copy the full list with one click, or download the batch as a .txt file. Format options let you switch to UPPERCASE, strip the hyphens, or wrap every value in curly braces — useful when you’re pasting into C#, SQL Server, or a config file that expects a specific style.
Which UUID version should you use?
UUID v4 — random (the default)
UUID v4 is the version you’ve seen everywhere. It packs 122 bits of cryptographic randomness into a 128-bit value, which means collisions are astronomically unlikely — you would need to generate about one billion UUIDs per second for 85 years to have a 50% chance of a single duplicate. v4 is the safe default for session tokens, idempotency keys, file names, API request IDs, and any scenario where you need a unique value without coordinating across systems.
UUID v7 — time-ordered (recommended for databases)
UUID v7 was standardized in RFC 9562 in 2024 and is now the recommended format for new systems, especially anything that stores UUIDs as database primary keys. It embeds a 48-bit Unix timestamp (milliseconds) at the front of the value, so IDs generated later sort after IDs generated earlier. The practical payoff is much better insert performance on B-tree indexes in PostgreSQL, MySQL, and SQL Server — new rows land at the end of the index instead of scattering across it, which dramatically reduces page splits on large tables. If you’re starting a new project and have a choice, prefer v7 over v4 for primary keys.
UUID v1 — timestamp + node (legacy)
UUID v1 combines a 60-bit timestamp (100-nanosecond intervals since 1582-10-15) with a node identifier. It’s kept around mostly for compatibility with older systems that already use v1 IDs. For anything new, v7 is a better time-ordered option because it sorts naturally in lexicographic order and doesn’t leak MAC addresses.
Nil UUID — the all-zero placeholder
The Nil UUID is the special value 00000000-0000-0000-0000-000000000000. It’s not random — it’s a fixed constant used as a “not set” sentinel or a schema default when a UUID column is required but no real value exists yet. Think of it as the UUID equivalent of NULL.
How to generate a UUID with this tool
- Pick the version tab you want — v4, v7, v1, or Nil.
- Set the count (1 to 100). Use the plus and minus buttons or type directly.
- Optionally toggle UPPERCASE, No hyphens, or Braces { } to match the format your codebase expects.
- Click Generate. Copy individual values, copy the whole list, or download as
.txt.
Changing the format toggles re-renders the visible list with the current settings — no regeneration is needed unless you want fresh values.
Common use cases
- Database primary keys — prefer v7 so inserts don’t fragment your index.
- Distributed IDs — two services can generate UUIDs at the same time without coordinating and still never collide.
- Session tokens and API keys — v4 gives you 122 bits of unpredictable randomness.
- Idempotency keys — attach a v4 UUID to each client request so retries are safe.
- File names and object storage keys — avoid name collisions when many clients upload in parallel.
- Test fixtures and seed data — Nil is handy as a known “unassigned” sentinel.
Privacy, speed, and offline use
Every UUID on this page is generated locally in your browser with crypto.getRandomValues. Nothing is sent to a server, nothing is logged, and the tool keeps working if you disconnect from the internet after the page loads. Generating 100 UUIDs takes a few milliseconds — the limit is UI rendering, not cryptography.
If you need UUIDs on the command line or inside code, every modern language ships a UUID library (uuid in Python, crypto.randomUUID() in Node.js, Guid.NewGuid() in .NET). This tool exists for the case in between: when you need a handful of real, correctly-formatted UUIDs right now without opening an editor.