🔢 ULID Generator
Generate ULIDs — 26-character, time-sortable identifiers (48-bit timestamp + 80-bit randomness) — single or in bulk, and decode them too.
ULID: 48-bit timestamp + 80-bit randomness in Crockford base32 — lexicographically sortable, 26 characters. 🔒 Generated entirely in your browser.
How the ulid generator works
A ULID packs a 48-bit millisecond timestamp and 80 bits of cryptographically-secure randomness into 26 Crockford base32 characters. Because the timestamp leads, ULIDs sort lexicographically in creation order — handy as database keys and log IDs — while remaining globally unique. Switch tabs to generate UUID v4/v7 or NanoID, or decode an existing ULID to read its timestamp.
ULIDs are an alternative to UUID v7: same time-sortable benefit, but shorter and case-insensitive in Crockford base32. All randomness comes from crypto.getRandomValues.
Frequently asked questions
What is a ULID?
A Universally Unique Lexicographically Sortable Identifier: a 128-bit ID encoded as 26 Crockford base32 characters, made of a 48-bit millisecond timestamp followed by 80 random bits. It sorts in creation order.
How is a ULID different from a UUID?
A ULID is shorter (26 vs 36 characters), uses case-insensitive base32 instead of hex, and is time-sortable by design. UUID v7 offers the same sortability in the standard UUID format.
Are ULIDs good for database keys?
Yes — the leading timestamp gives good index locality (new rows cluster together), avoiding the index fragmentation that random UUID v4 keys cause.
Can I extract the time from a ULID?
Yes — the Decode tab reads the first 10 characters back into the millisecond timestamp and shows it as a date.
Is it generated securely and locally?
Yes — the random portion uses crypto.getRandomValues, and everything runs in your browser.