OneFreePlace
TOOL #368 · SORTABLE ID LAB

ULID Generator

Generate standards-compliant, cryptographically strong ULIDs, including true monotonic batches for the same millisecond. Inspect timestamps and 80-bit randomness, convert ULID ↔ raw UUID-formatted 128-bit values, export large batches, and verify lexical ordering locally.

ULID spec layout48-bit Unix ms80-bit Web Crypto randomnessMonotonic modeStrict overflow validationULID ↔ UUID bitsJSON / CSV export100% local
Generated—
Batch timestamp—
Lexical order—
Unique—
Random component80 bits
Random collision risk—

Generated ULIDs

Standards + safety QA

*Monotonic mode prevents duplicates/order reversals inside this generator state until the 80-bit same-millisecond counter would overflow.

Decode a ULID

Waiting

ULID ↔ UUID-formatted 128-bit value

This is a bit-preserving representation conversion. The UUID-formatted result does not magically acquire UUID version/variant semantics.

Canonical format

A ULID is 128 bits: a 48-bit Unix timestamp in milliseconds followed by 80 random bits, encoded into 26 Crockford Base32 characters. The canonical first character is limited to 0–7 so the 130-bit text encoding cannot overflow 128 bits.

Monotonic mode

When multiple ULIDs share one millisecond, monotonic generation increments the random field instead of drawing an unrelated random value, preserving generation order under lexical sorting.

Database indexing

ULIDs are useful when you want compact public IDs that retain chronological locality. Store the canonical 26-character form with a binary/ASCII-safe collation and enforce uniqueness.

Privacy + security

Generation and inspection are entirely local. Randomness comes from browser Web Crypto. Remember that a ULID exposes its millisecond creation timestamp by design.

JavaScript

Python

Database note