Utilify

ULID Generator & Decoder

Generate ULIDs — compact, URL-safe, lexicographically sortable IDs — and decode their timestamp. Runs entirely in your browser.

How to use ULID Generator

  1. 1
    Choose how many

    Set how many ULIDs to generate (1–100).

  2. 2
    Generate

    Click Generate. The random portion is created locally with your browser crypto API.

  3. 3
    Copy

    Copy a single ULID or use Copy all for the batch.

  4. 4
    Decode (optional)

    Paste a ULID into the decoder to read the timestamp in its first 10 characters.

About ULID Generator

A ULID (Universally Unique Lexicographically Sortable Identifier) is a 128-bit ID designed to be globally unique and sortable by creation time, while staying more compact and URL-friendly than a UUID. It is written as 26 characters in Crockford Base32 — for example 01ARZ3NDEKTSV4RRFFQ69G5FAV — which is shorter than a UUID 36-character hyphenated form and contains no special characters, so it drops cleanly into URLs, filenames, and database keys.

The structure has two parts: the first 10 characters encode a 48-bit Unix millisecond timestamp, and the remaining 16 characters carry 80 bits of randomness. Because the timestamp comes first and Base32 preserves order, ULIDs sort lexicographically into creation order — sort them as plain strings and you get oldest to newest. That gives the same index-friendly, time-ordered behavior as UUID v7 while staying human-readable and case-insensitive.

Crockford Base32 deliberately omits the letters I, L, O, and U to avoid confusion with digits and to sidestep accidental words, and it treats input case-insensitively, which makes ULIDs easy to read aloud, type, and copy. This tool generates ULIDs entirely in your browser using crypto.getRandomValues for the random component, and the decoder reads the embedded timestamp back out of any ULID you paste, so you can tell when an ID was created without a separate column.

ULIDs are a strong choice when you want sortable, decentralized IDs with a friendlier text form than a UUID: public-facing resource identifiers, log and event IDs, or distributed primary keys all fit well. The main alternative is UUID v7, which offers the same time-ordering inside the standard UUID format — pick ULID when compactness and readability matter, and v7 when you need to stay within UUID-typed columns. Nothing you generate or decode is ever sent to a server.

When to use ULID Generator

  • Sortable database keys

    Time-ordered keys keep index inserts sequential while remaining globally unique.

  • Public resource IDs

    Shorter and hyphen-free, ULIDs slot into URLs and filenames without escaping.

  • Log and event ordering

    Sort records by ULID as plain strings to get them in creation order.

  • Timestamp recovery

    Decode a ULID to read its creation time without a separate timestamp field.

Frequently asked questions

What is the difference between a ULID and a UUID?+

Both are 128-bit unique IDs, but a ULID is 26 Crockford Base32 characters and is time-sortable by design, while a UUID v4 is 36 characters and fully random. ULIDs are shorter, URL-safe, and sort into creation order.

Are ULIDs sortable?+

Yes. The leading 48-bit timestamp means sorting ULIDs as strings orders them by creation time, which keeps database index inserts sequential.

What characters can appear in a ULID?+

Crockford Base32: digits 0–9 and uppercase letters excluding I, L, O, and U. This avoids ambiguous characters and keeps ULIDs URL- and filename-safe.

Can I recover the creation time from a ULID?+

Yes. The first 10 characters encode a Unix millisecond timestamp; paste a ULID into the decoder above to read it.

Is generation secure and private?+

The random portion uses your browser cryptographically secure generator, and everything runs locally — no ULID is sent to any server.

Related tools

From the blog