ULID Generator & Decoder

NEW

Generate sortable 128-bit Crockford Base32 ULIDs, decode timestamps, and convert to UUIDs

#ulid#uuid#generator#decoder#crockford#sortable#timestamp
Open Pipeline Studio100% On-Device · Zero-Server
Loading tool…

About ULID Generator & Decoder

How ULID Generator & Decoder Works

Encodes a 48-bit Unix millisecond timestamp into 10 Crockford Base32 characters and chains 80 bits of cryptographic randomness (drawn via crypto.getRandomValues) into 16 characters. Reverse decodes timestamps, UTC ISO dates, and converts 128-bit payloads to 36-character hyphenated UUID strings in memory with zero external requests.

ULID Generator & Decoder is a developer utility for generating and inspecting Universally Unique Lexicographically Sortable Identifiers (ULIDs). Specified to resolve the database B-Tree index fragmentation caused by random UUID v4 values, a ULID contains 128 bits of data: a 48-bit Unix millisecond timestamp (allowing lexicographical chronological sorting) concatenated with 80 bits of cryptographically secure randomness generated via the browser's native Web Crypto API. Rendered in Crockford's Base32 alphabet (which excludes visually ambiguous characters I, L, O, and U), ULIDs are URL-safe, case-insensitive, and 26 characters long. The tool supports batch generation with monotonic sequence ordering, deep-dive timestamp and entropy decoding, and bidirectional 128-bit ULID to UUID format conversion 100% on-device.

Frequently asked questions

Why use ULID instead of standard UUID v4?+

Standard UUID v4 is completely random, which causes random write patterns and costly index fragmentation in database B-Trees (such as PostgreSQL, MySQL, and SQLite). Because ULID prefixes the 48-bit millisecond timestamp, new identifiers append cleanly to the end of index trees, boosting insert performance while maintaining global uniqueness.

What is Monotonic Mode in ULID generation?+

When multiple ULIDs are created within the exact same millisecond, standard random generation could produce values whose lexicographical order does not match their generation sequence. Monotonic mode detects identical timestamps and increments the 80-bit random payload by one, guaranteeing strict chronological sorting order within that millisecond.

What is Crockford's Base32 alphabet?+

Crockford Base32 uses characters 0-9 and A-Z but deliberately removes I, L, O, and U. I and L are omitted to avoid confusion with the number 1; O is omitted to prevent confusion with 0; and U is excluded to prevent accidental profanity in generated strings. It is case-insensitive.

Can a ULID be converted to a UUID?+

Yes. Both ULID and UUID are exactly 128 bits wide. A ULID can be decoded into its 16 raw bytes and reformatted as a 36-character hyphenated UUID (8-4-4-4-12) without losing any entropy or timestamp fidelity.

Are generated ULIDs transmitted to any external server?+

No. All entropy is generated locally in your browser using window.crypto.getRandomValues(). No identifiers, timestamps, or seeds are ever transmitted across the network.

Limitations

ULID timestamp granularity is 1 millisecond. If generating millions of IDs per second across distributed servers without clock synchronization, monotonic guarantees require an orchestrator.