ULID Generator

Generated in your browser, never sent to a server.

What is ULID Generator

A ULID (Universally Unique Lexicographically Sortable Identifier) is a 128-bit ID written as 26 Crockford Base32 characters. The first 10 characters encode a millisecond timestamp and the last 16 are random, so ULIDs sort in creation order as plain text while staying globally unique. This generator builds them entirely in your browser using the Web Crypto API, with no server involved.

How to use

  1. Choose how many ULIDs to generate from the Quantity menu.
  2. Click Generate, or change the quantity, to produce a fresh batch.
  3. Tick Monotonic to keep IDs created in the same millisecond strictly in order.
  4. Click Copy next to any ULID, or Copy all to grab the whole list.

When to use it

Need database keys that sort by creation time without a separate timestamp column? Generate a batch of ULIDs and use them as primary keys: since the timestamp lives in the first 10 characters, a plain ORDER BY on the id returns rows oldest to newest. Handy for event logs, message IDs, and anywhere you would reach for a UUID but also want natural ordering.

Frequently asked questions

How is a ULID different from a UUID?

Both are 128-bit unique identifiers, but a ULID is Base32 (26 characters, case-insensitive, URL-safe) and its leading bits are a timestamp, so ULIDs sort chronologically as text. A UUID v4 is fully random and has no meaningful order.

What does monotonic mean here?

When several ULIDs are created in the same millisecond, monotonic mode increments the random part instead of re-rolling it, so each new ID is strictly greater than the last. Leave it off if you just want independent random IDs.

Are these ULIDs sent to a server?

No. Every ULID is generated locally in your browser with the Web Crypto API. Nothing is uploaded, logged, or transmitted.

Can I use ULIDs as database primary keys?

Yes. They fit any string or 16-byte binary column and are supported by libraries for PostgreSQL, MySQL, MongoDB and most languages. Their time ordering also reduces index fragmentation compared with random UUIDs.

Related tools