ULID Generator

Sortable 26-character IDs with a time prefix.

About ULID Generator

A ULID generator that creates Universally Unique Lexicographically Sortable Identifiers in your browser, up to 1000 at once, and decodes any ULID's timestamp.

How to use

  1. A fresh ULID is shown when the page opens. Press Copy to take it, or New for another.
  2. In the Bulk panel enter how many you need (1 to 1000). The list updates as you type and has Copy and Download (ulids.txt) buttons.
  3. To find out when an existing ULID was made, paste it into Decode timestamp. The creation time appears as local time, ISO 8601 and Unix milliseconds.

What a ULID is

  • 26 characters of Crockford Base32 (digits and uppercase letters without I, L, O and U), so it is URL-safe and unambiguous when read aloud.
  • The first 10 characters encode a 48-bit Unix millisecond timestamp; the remaining 16 encode 80 random bits. That is 128 bits in total, the same size as a UUID.
  • Because the timestamp comes first, sorting ULIDs as plain strings sorts them by creation time.
  • The bulk list uses the monotonic variant, so IDs created in the same millisecond still sort in creation order. The single value uses plain ulid().
  • Decoding accepts lowercase input, ignores surrounding quotes and spaces, rejects anything that is not 26 Crockford Base32 characters, and only reads the timestamp; the random part has no meaning to recover.

Example

01ARZ3NDEKTSV4RRFFQ69G5FAV
→ Unix ms  1469922850259
→ ISO 8601 2016-07-30T23:54:10.259Z

Privacy

Generation and decoding run in the page. No request is made, and nothing is stored.

Frequently asked questions

What is a ULID?
A ULID (Universally Unique Lexicographically Sortable Identifier) is a 128-bit ID written as 26 Crockford Base32 characters: a 48-bit millisecond timestamp followed by 80 random bits. It is the same size as a UUID but sorts by creation time.
What is the difference between a ULID and a UUID?
Both are 128 bits. A ULID is 26 characters with no hyphens and sorts chronologically because its timestamp comes first; a UUID v4 is 36 characters and fully random. UUID v7 was later standardised to give UUIDs the same time-ordered property.
How do I get the timestamp from a ULID?
Decode the first 10 characters as Crockford Base32 to get the Unix time in milliseconds. For 01ARZ3NDEKTSV4RRFFQ69G5FAV that is 1469922850259, which is 2016-07-30T23:54:10.259Z.
Why does a ULID not use the letters I, L, O and U?
Crockford Base32 drops them to avoid confusion with 1 and 0 and to prevent accidental words. The alphabet is 0–9 and A–Z minus those four, giving 32 symbols that are case-insensitive to read.