ULID Generator

Generate Universally Unique Lexicographically Sortable Identifiers with timestamp decoding.

110

Frequently Asked Questions

What is a ULID?

A ULID (Universally Unique Lexicographically Sortable Identifier) is a 128-bit identifier that encodes a millisecond-precision timestamp in the first 48 bits and 80 bits of cryptographic randomness. It is encoded as 26 Crockford Base32 characters.

How is a ULID different from a UUID?

Unlike UUIDv4 (which is entirely random), a ULID embeds a timestamp so that IDs sort chronologically when stored as strings. ULIDs are also shorter (26 chars vs 36 for UUID) and use Crockford Base32, which avoids ambiguous characters like I, L, O.

Are ULIDs safe for database primary keys?

Yes. ULIDs are excellent primary keys because their time-ordered nature improves B-tree index locality compared to random UUIDs. They also carry the same 128 bits of information and have negligible collision probability.

What is Crockford Base32?

Crockford Base32 uses the characters 0-9 and A-Z excluding I, L, O, and U to avoid ambiguity. This gives 32 symbols and encodes 5 bits per character, so 26 characters encode exactly 130 bits (48 timestamp + 80 random, with the top 2 bits of the first character always zero).

Can I extract the timestamp from a ULID?

Yes. The first 10 characters of a ULID encode the 48-bit millisecond timestamp. This tool shows the decoded timestamp as a human-readable date alongside each generated ULID.