UUID Generator

Generate random version-4 UUIDs in bulk. Pick how many and which format — they're created locally with your browser's secure random source.

Updated

Generated UUIDs 0

        
Status Ready Count — Version v4 Format Lowercase

What a version-4 UUID is

A UUID is a 128-bit identifier written as 32 hexadecimal digits in the groups 8-4-4-4-12. Version 4 means 122 of those bits are random. The remaining bits are fixed by the spec: the version nibble (the first hex digit of the third group) is 4, and the variant bits (the first hex digit of the fourth group) are 8, 9, a, or b. That shape is what tells another system “this is a random UUID,” not a time-based v1 or a name-based v5.

Because the value does not come from a counter, two machines can mint IDs at the same time without talking to each other. Collisions are possible in theory and ignorable in practice at the volumes a web app sees. This page generates only version 4. The readout Version cell is hard-coded to v4.

How to generate a batch

  1. Set Quantity to a number from 1 to 100 (the default is 5). Values outside that range are clamped when you generate.
  2. Pick a Format: Lowercase (canonical), Uppercase, No hyphens (32 hex digits), or Braces {…} (the lowercase form wrapped in curly braces, the style some Windows APIs expect).
  3. Click Generate, or press Enter in the quantity field. The single output pane fills with one ID per line. The pane header shows 1 id or N ids. Status reads Generated N UUIDs. Count and Format in the strip match what you asked for.
  4. Changing Format immediately generates a new batch. It does not re-print the IDs already on screen in a different shape. If you need both hyphenated and bare forms of the same values, copy first, then generate again only if you want fresh IDs.
  5. Copy all copies every line. Clear empties the pane, sets the header count to 0, and returns Status to Ready. Quantity and Format stay as you left them.

The page generates a batch as soon as it loads, so you can copy without clicking. Refreshing the page, or clicking Generate again, produces new values. The generator prefers crypto.randomUUID(). If that function is missing, it falls back to crypto.getRandomValues and writes the version and variant bits itself.

How to read one

Take a lowercase value such as a3bb189e-8bf9-4f76-8b8a-0c1d2e3f4a5b. The third group is 4f76: it starts with 4, so the version is 4. The fourth group is 8b8a: it starts with 8, so the variant is RFC 4122. The other digits are random and will differ every time you click Generate. That sample is a shape check, not a value this page will repeat.

The same ID in the other formats:

Lowercase    a3bb189e-8bf9-4f76-8b8a-0c1d2e3f4a5b
Uppercase    A3BB189E-8BF9-4F76-8B8A-0C1D2E3F4A5B
No hyphens   a3bb189e8bf94f768b8a0c1d2e3f4a5b
Braces       {a3bb189e-8bf9-4f76-8b8a-0c1d2e3f4a5b}

No-hyphen form is 32 characters. Braces keep the hyphens. Uppercase does not change the bits, only the letters A-F.

Worked example: checking IDs from a bug report

A bug report says the API rejects some IDs as invalid. Your schema expects version-4 UUIDs. You have four values from the logs:

3f2b8c1e-9d4a-4e7b-a6c5-1b2d3e4f5a6b
0192f1e4-7c3a-7b2e-9a1d-5f6e7d8c9b0a
3F2B8C1E-9D4A-4E7B-A6C5-1B2D3E4F5A6B
3f2b8c1e-9d4a-4e7b-c6c5-1b2d3e4f5a6b

Read the two positions that matter. The first character of the third group is the version, and the first character of the fourth group holds the variant, which must be 8, 9, a or b for the standard layout.

  • Line 1: version 4, variant a. Valid v4.
  • Line 2: the third group starts with 7. This is a version-7 UUID, the time-ordered kind defined in RFC 9562. It is a valid UUID, just not a v4, so a strict v4 check rejects it.
  • Line 3: the same value as line 1 in uppercase. RFC 9562 allows the hex letters in uppercase, lowercase or mixed case, so a validator that only accepts lowercase is too strict.
  • Line 4: version 4, but the fourth group starts with c, which is not the standard variant. It was probably typed or edited by hand.

To check a long list at once, paste it into the Regex Tester with pattern ^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$ and flags im. With these four lines it reports 2 matches, lines 1 and 3.

When a random ID is the right choice

Use a v4 UUID when you need an identifier that does not reveal how many rows you have, does not require a central allocator, and does not have to sort in creation order. Typical uses:

  • Primary keys that will be merged from more than one database
  • Request IDs and correlation IDs you attach to a log line
  • Filenames or client-side draft IDs that must not clash across tabs or devices

Do not use one as a password or an access token. The ID is unique, not a secret with stretching or rate limiting around it. If another system can guess or replay the value, uniqueness alone does not protect the resource.

Common mistakes

  • Changing Format to “reformat” a batch you already copied. You will get new IDs. Paste the old ones into an editor if you only needed a different spelling.
  • Asking for 0 or 250. The field clamps to 1..100. There is no bulk export beyond that.
  • Using a v4 UUID where you needed v5 (deterministic from a name) or v7 (time-ordered). This page cannot mint those.
  • Storing the value as a secret. Treat it as an identifier you might print in a log.

Limits and privacy

It does not produce version 1, 3, 5, or 7. It does not take a namespace and a name. It does not guarantee sort-by-time. It does not check a UUID you paste for validity; there is no input pane. It does not talk to a server to reserve a range of IDs.

Every value is created on your device from the browser secure random source. Nothing is requested from or sent to a server. Closing the tab drops the list. The IDs are not logged here.

Generating a UUID without this page

UUID version 4 values are 122 random bits in an 8-4-4-4-12 hex layout. Most platforms expose a crypto RNG you can use without this page.

  • Draw 16 random bytes from a CSPRNG (crypto.getRandomValues in the browser).
  • Set version nibble to 4 and the variant bits to RFC 4122 form.
  • Format as lowercase hex with hyphens: xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx.
  • Repeat for bulk IDs; keep one UUID per line if you need a list.
  • Do not use Math.random for identifiers that must be hard to guess.

Example: A valid v4 shape looks like 550e8400-e29b-41d4-a716-446655440000 (illustrative; generate fresh values for real use).

UUID questions

Which UUID version?

This tool mints random UUID version 4 values suitable for most identifiers — not time-based v1 layout.

Are they cryptographically unique?

v4 uses random bits; collisions are extremely unlikely for normal volumes, but uniqueness is probabilistic.

Do UUIDs leave my browser?

Generation runs locally; nothing is registered with Fieldkit.