DevKits

ULID Generator — Time-Ordered, Lexically Sortable IDs

Generate ULID (Universally Unique Lexicographically Sortable Identifier) strings — 26 characters, 48-bit millisecond timestamp + 80-bit randomness, Crockford Base32. Bulk generate up to 1000. 100% local.

Last updated:

Comments
  • 01KY4A82FGHXVKZSKKZT2HXYFC
  • 01KY4A82FGHM6GEYDGDCBR89TR
  • 01KY4A82FGKBK0KT8CQ0MRA5GR
  • 01KY4A82FGEP4EEYW87XBD2QGW
  • 01KY4A82FGGAP0ZQGKMZ0KK5XV

Frequently Asked Questions

What is a ULID and how is it different from UUID?

ULID is a 128-bit ID like UUID, but the first 48 bits are a Unix millisecond timestamp. Sorting ULIDs lexicographically also sorts them by creation time — hugely useful as a database primary key (better index locality than UUID v4) or as a filename in time-ordered logs.

Are two ULIDs generated in the same millisecond ordered?

Only if you enforce monotonicity. This tool generates independent 80-bit random parts per call, so two IDs in the same millisecond have unpredictable relative order. In production, use a library (like ulid/monotonic) that bumps the random part when the timestamp doesn't change.

Why Crockford Base32 instead of hex?

Crockford Base32 excludes I / L / O / U to avoid transcription ambiguity, is case-insensitive, and encodes 5 bits per character vs 4 for hex — so 26 characters carry 130 bits of data with room for the timestamp/random split.

Related Tools