UUID / ULID Generator · Utilities
Generate UUIDs and ULIDs, then inspect them.
Batch out cryptographically random v4 UUIDs, the nil UUID or sortable ULIDs, copy any row, then decode a value’s version, variant and embedded timestamp — all client-side in your browser. Free, no signup, and nothing ever leaves your device.
Runs in your browser — nothing you paste leaves this page. How we prove that
UUID and ULID generator playground
Pick a type and press Generate — or tap an example — to produce identifiers here.
Paste any UUID or ULID to decode its version, variant and embedded timestamp.
Results update as you type — press Enter to run now.
The Gap
The wrong random source, a duplicate key.
Generating an identifier looks like a one-liner until the details bite. Reach for Math.random() and you get values that look like UUIDs but lack real entropy; hand-roll a ULID and it is easy to botch the Crockford alphabet or overflow the 48-bit timestamp so it no longer sorts.
This generator uses the browser’s cryptographic random source for v4 UUIDs and encodes ULIDs exactly to spec, so every value is well-formed and unique. Need to check what someone handed you? Paste it into Inspect and read back its version, variant and — for a ULID — the timestamp baked into its first 48 bits.
And don’t ask an AI to “generate a random UUID”: a language model predicts plausible-looking text, not cryptographically random bits, so its output can repeat and is never safe as a unique key. This tool draws real entropy from your browser, in your tab, with nothing uploaded.
Working with a signed token instead? The JWT Decoder splits and decodes a JWT for you.
The Pipeline
How it works.
Four deterministic steps — all inside your browser tab, drawing real entropy from the platform crypto source.
-
Pick a type.
Choose v4 UUID for a random key, ULID for a time-sortable one, or the nil UUID placeholder — the segment sets the format.
-
Draw the bits.
v4 pulls 122 random bits from the browser’s crypto source; a ULID stamps a 48-bit millisecond time then appends 80 random bits.
-
Encode and format.
Bytes are laid out as 8-4-4-4-12 hex for UUIDs or 26 Crockford base32 characters for ULIDs, honouring the uppercase toggle.
-
Generate or inspect.
Emit a batch and copy any row — or paste an identifier into Inspect to decode its version, variant and embedded timestamp.
Format Reference
UUID versions & ULID structure.
A UUID encodes its version and variant in fixed positions; a ULID splits its 128 bits into a sortable timestamp and randomness. Here is where each piece lives.
UUID version & variant
The version lives in nibble 13 and the variant in the top bits of nibble 17.
f47ac10b-58cc-4372-a567-0e02b2c3d479
^ ^
| └─ variant (top bits of nibble 17)
└─────────── version (nibble 13)
version meaning
1 time + node (MAC)
3 name-based, MD5
4 random ← generated here
5 name-based, SHA-1
7 time-ordered (Unix ms)
variant bits name
10x RFC 4122 (standard)
110x Microsoft (reserved)
0xx NCS (legacy) ULID structure
Ten Crockford base32 chars of timestamp, then sixteen of randomness — sortable as plain text.
01ARYZ6S41 TSV4RRFFQ69G5FAV (26 chars)
└───┬────┘ └──────┬────────┘
48-bit ms 80-bit
timestamp randomness
· Crockford base32: 0-9 A-Z minus I L O U
· first 10 chars decode to a Unix ms time
· sorts chronologically as plain text
· 1 char of the time field carries only 3 bits,
so a valid ULID's first char is <= '7' Next Step
Need a fingerprint, not an ID? Hash it.
A UUID is a unique label; a hash is a deterministic digest of some content. The Hash Generator computes SHA-256 and friends in your browser, or, if you are holding a token instead of an ID, the JWT Decoder reads its claims.
v4 UUID f47ac10b-58cc-4372-a567-0e02b2c3d479
ULID 01ARYZ6S41TSV4RRFFQ69G5FAV
nil 00000000-0000-0000-0000-000000000000 FAQ
Questions, answered.
Tap a question to expand the answer.
What is a UUID?
A UUID (Universally Unique Identifier) is a 128-bit value written as 32 hexadecimal digits in the 8-4-4-4-12 grouping, e.g. f47ac10b-58cc-4372-a567-0e02b2c3d479. Its size makes accidental collisions astronomically unlikely, so systems can mint identifiers independently — with no central coordinator — and still be confident they are unique. This tool generates version 4 (random) UUIDs, the standard choice when you just need a unique key.
What is a version 4 UUID and how random is it?
A v4 UUID has 122 random bits (six bits are fixed to encode the version and variant). It is generated here with the browser’s cryptographic random source — crypto.randomUUID() when available, otherwise crypto.getRandomValues() — not Math.random(). With 122 bits of entropy you would need to generate billions of UUIDs before the chance of a single collision became meaningful.
What is a ULID and how is it different from a UUID?
A ULID (Universally Unique Lexicographically Sortable Identifier) is a 128-bit value encoded as 26 Crockford base32 characters. Its first 48 bits are a millisecond timestamp and the remaining 80 bits are random, so ULIDs sort chronologically as plain strings and stay unique. UUIDs are the interoperable standard; ULIDs trade a little standardisation for sortability and a shorter, URL-friendly encoding.
What is the nil UUID?
The nil UUID is the special all-zero value 00000000-0000-0000-0000-000000000000. It is defined by the spec as a placeholder — a UUID that is explicitly “none” — often used to represent an absent or not-yet-assigned identifier. Select “Nil UUID” to emit it.
Are these UUIDs safe to use — are they really unique?
For practical purposes, yes. Version 4 UUIDs draw on a cryptographic random source, and the probability of a collision is negligible for any realistic volume. They are not secret, though: a UUID is an identifier, not a token or a password. Never rely on one being unguessable for security.
Can I generate UUIDs or ULIDs in bulk?
Yes. Set the count (1–1000) and press Generate to produce a batch, then use “Copy all” to copy every value on its own line. Bulk generation is handy for seeding a database, building test fixtures or pre-allocating keys.
What does the inspector tell me about an identifier?
Paste any UUID or ULID into the Inspect field and it decodes what the value encodes: for a UUID, its version (the 13th nibble) and variant (RFC 4122, Microsoft or NCS); for a ULID, the embedded millisecond timestamp shown as an ISO-8601 date plus the Unix time and the random component. It is a quick way to confirm which flavour of identifier you were handed.
Does anything leave my browser?
No. Every value is generated and every identifier is decoded entirely client-side in your tab — there is no server, no account and no logging. You can safely generate keys for private systems; nothing is uploaded.
More free, private DevOps tools.
The UUID / ULID Generator is one tool in OpsCanopy — a growing canopy of browser-based validators, converters and generators that never touch a server.
More in Utilities
39 free tools, every one offline-capable — opscanopy.com works with no signup and nothing uploaded.
Related tools: the JWT Decoder and the Hash Generator, or browse the full tools directory.
Provided as-is for convenience; a UUID or ULID is an identifier, not a secret — never rely on one being unguessable for security. OpsCanopy is free and open.