ULID Generator
Generate ULID identifiers in your browser. 128-bit, lexicographically sortable, 26-character Crockford base32 encoding. The first 10 chars encode a 48-bit Unix timestamp; the last 16 are cryptographic random. Bulk-generate up to 1,000. Powered by the Web Crypto API.
Anatomy of a ULID
128 bits, encoded as 26 Crockford base32 characters. First 10 chars: 48-bit Unix-ms timestamp. Last 16 chars: 80 random bits.
01ARZ3NDEKTSV4RRFFQ69G5FAV └────────┘└──────────────┘ timestamp random 48 bits 80 bits 10 chars 16 chars
01HMZ... < 01HN0... < 01HN1... Newer IDs sort after older IDs. Great for DB primary keys — no random insertion in B-tree.
What you'll use this for
UUIDs are the universal "give me a unique identifier" tool — no central coordination required.
Time-ordered PKs
DB primary keys that sort by creation order — better B-tree locality than random UUIDs.
Event logs
Distributed event identifiers that naturally sort by time without needing a separate timestamp column.
URL-safe IDs
26 chars of Crockford base32 — no I/L/O/U confusion, all URL-safe.
Distributed systems
Generate IDs on any client without coordination — collisions are negligible (80 bits of entropy per ms).
How to generate ULIDs
Set how many
Pick 1 to 1,000. ULIDs generated in the same call share the same timestamp prefix.
Monotonic mode
When several ULIDs land in the same millisecond, the random part increments to preserve ordering within that ms.
Pick case
Default is UPPERCASE (per spec). Toggle to lowercase if your library uses that.
Copy or download
Copy all to clipboard or save as .txt. Generation is local — nothing uploaded.
Frequently asked questions
A ULID (Universally Unique Lexicographically Sortable Identifier) is a 128-bit identifier with a 48-bit Unix-ms timestamp prefix followed by 80 random bits, encoded in Crockford base32 (26 chars). See the spec.
Pick ULID when you want IDs that sort by insertion time — better DB index locality. Pick UUID v4 when you want fully opaque random IDs with no time leakage.
If you generate multiple ULIDs in the same millisecond, monotonic mode increments the random portion by 1 instead of re-rolling. This guarantees ordering within a millisecond as well as across them.
Crockford base32 excludes I, L, O, U — characters that humans easily confuse. The result is URL-safe, double-click selectable, and case-insensitive on input.
Yes. No signup, no limits, no ads. Generation happens entirely in your browser via the Web Crypto API.
About ULIDs
A ULID packs a millisecond-precision timestamp plus 80 random bits into a 128-bit identifier, encoded as 26 Crockford base32 characters. See the official spec.
Layout
- Timestamp — 48-bit unsigned Unix-ms (good through year 10889).
- Randomness — 80 bits per millisecond — 1.2 × 10^24 unique values.
- Encoding — Crockford base32:
0-9andA-ZminusI,L,O,U. - Length — always 26 characters.
Compared to other IDs
- UUID v4 — 36 chars, fully random, not sortable.
- ULID — 26 chars, time-sortable.
- UUID v7 — 36 chars, time-sortable (newer RFC 9562 alternative).
- Snowflake — 64-bit, requires coordinator; ULID needs none.