devtools

ULID Generator

Generate ULIDs online — 26-character, time-sortable identifiers in Crockford base32, made in your browser with a secure random source and lexicographic order.

Runs entirely in your browser — your data never leaves your device.

How to use ULID Generator

What it does & when you need it

A ULID is a 128-bit unique identifier that sorts by the time it was created. This tool generates them on demand — 26 Crockford base32 characters, where the first ten encode a millisecond timestamp and the last sixteen are random. Reach for a ULID when you want the uniqueness of a UUID but also want your IDs to sort chronologically: primary keys that stay index-friendly, log or event IDs you can order at a glance, or object names that group by creation time. Everything is generated locally in your browser.

How to use

  1. Set Count for how many ULIDs you need in one batch (1–1000).
  2. Press Generate (or Ctrl/Cmd + Enter). The IDs appear one per line.
  3. Toggle Lowercase if you prefer that to the canonical uppercase, then Copy the list, Clear it, or press Sample for a fresh batch.

Things worth knowing

Why it sorts. The 48-bit timestamp leads and is written most-significant digit first, so comparing two ULIDs as plain strings is the same as comparing their creation times. That property makes them pleasant database keys — new rows append near the end of the index instead of scattering across it the way random keys do.

Crockford base32. The alphabet is the digits plus uppercase letters without I, L, O, and U, which removes the characters people most often misread. A ULID is therefore safe to read aloud or type, and decoding is case-insensitive.

A batch shares a timestamp. IDs generated together carry the same ten-character time prefix and differ only in the random tail; the 80 random bits come from your device's secure generator, so collisions are astronomically unlikely even in a large batch.

If you need the classic hyphenated format instead, use the UUID Generator — its v7 mode is also time-ordered — or reach for the shorter NanoID Generator.

Examples

Five ULIDs

5 ULIDs

The default batch — five sortable identifiers sharing the current timestamp prefix.

A single ULID

1 ULID

One 26-character identifier, ready to use as a primary key or object name.

A larger batch

25 ULIDs

Twenty-five IDs at once; the shared time prefix shows how they sort together.

Frequently asked questions

What is a ULID and how does it compare to a UUID?

A ULID is a 128-bit identifier like a UUID, but encoded as 26 Crockford base32 characters instead of 36 hex-and-hyphen ones. Its first 48 bits are a millisecond timestamp, so ULIDs sort chronologically as plain text — something a random UUID v4 cannot do. It is close in spirit to UUID v7 but shorter and case-insensitive.

Why are ULIDs lexicographically sortable?

The 48-bit timestamp sits at the front, encoded most-significant digit first, so a newer ULID is always greater as a string than an older one. Sorting ULIDs alphabetically is the same as sorting by creation time, which keeps database inserts near the end of an index and makes time-range queries easy.

What is Crockford base32 and why these characters?

Crockford base32 uses the digits and uppercase letters but omits I, L, O and U to avoid confusion with 1, 0 and each other, leaving 32 unambiguous symbols. That makes a ULID safe to read aloud, type by hand, or double-click, and it is case-insensitive when decoded.

Are these ULIDs random enough to be unique?

Yes. After the timestamp, the remaining 80 bits come from crypto.getRandomValues, the browser's cryptographically secure generator. Within one millisecond that is 2^80 possibilities, so a collision is astronomically unlikely even when you mint many IDs at once.

Do the ULIDs in one batch share a timestamp?

Yes. A batch is generated at a single instant, so every ULID in it begins with the same 10-character time prefix and differs only in the 16-character random tail. Generate again a moment later and the prefix advances, so later batches still sort after earlier ones.

Is generation private and offline?

Completely. ULIDs are created locally in your browser and never sent to a server, and the tool keeps working with no network connection once the page has loaded.