Glossary
Plain English
Cross-linked to tools

ULID

Also known as: Universally Unique Lexicographically Sortable Identifier

A ULID (Universally Unique Lexicographically Sortable Identifier) is a 128-bit identifier encoded as 26 Crockford base32 characters that is sorted by time when generated, making it a drop-in replacement for UUID v4 with much better database insert performance.

Overview

A ULID encodes a 48-bit Unix millisecond timestamp in its first 10 characters and 80 bits of CSPRNG randomness in the last 16. The Crockford base32 alphabet deliberately omits ambiguous characters (I, L, O, U) so the result is unambiguous, case-insensitive, URL-safe, and double-click-selectable.

The key win over UUID v4 is sort order. Two ULIDs minted minutes apart sort by minted-at; two minted in the same millisecond sort within a tiny random window (the monotonic variant makes that strictly increasing). This means rows inserted close in time live close on disk, which makes B-tree index inserts dramatically faster than random UUID v4 keys.

ULIDs are not an IETF standard — the spec lives on GitHub (https://github.com/ulid/spec) — but it is widely adopted and supported across most language ecosystems.

Common questions about ULID

Are ULIDs a standard?
ULID is a community spec maintained at https://github.com/ulid/spec, not an IETF RFC. It is widely implemented across language ecosystems (Node.js, Python, Go, Java, etc.).
How do ULIDs compare to UUID v7?
UUID v7 is a draft RFC for time-ordered UUIDs that solves the same problem. The choice is mostly aesthetic and ecosystem-dependent — ULID encodes shorter (26 chars vs 36) and uses base32 instead of hex.
What does 'monotonic' mean for ULIDs?
Monotonic mode guarantees that within the same millisecond, each new ULID is lexicographically greater than the previous one. Without monotonic mode, two ULIDs minted in the same millisecond sort by their random portion, which is fine but not strictly increasing.

Tools that work with ULID

ULID Generator

Generate time-ordered, URL-safe ULIDs in bulk.

UUID Generator

Generate cryptographically random UUIDs (v4) in bulk.

Timestamp Converter

Convert between Unix timestamps, ISO 8601, and human-readable dates.

External references