ULID Generator
Generate ULIDs — 26-character identifiers that are lexicographically sortable by creation time. A ULID encodes 48 bits of millisecond-precision timestamp in the first 10 characters and 80 bits of cryptographic randomness in the remaining 16, all using Crockford's Base32 encoding.
Because the timestamp comes first, ULIDs sort chronologically as plain strings — no special comparator needed. This makes them ideal for database primary keys, event IDs, and any system where you want both uniqueness and time ordering.
The tool also decodes the embedded timestamp from any ULID you paste, showing the exact date and time it was generated. All generation uses crypto.getRandomValues for secure randomness. No external libraries are needed.
By The Paper Room Editorial Team — Developer Tools
Frequently asked questions
How does a ULID compare to UUID?▼
Both are 128-bit identifiers, but ULIDs are lexicographically sortable by time (UUIDs are not), use 26 characters instead of 36 (no hyphens), and use Crockford's Base32 which is case-insensitive and avoids ambiguous characters like I, L, O.
Can I extract the timestamp from a ULID?▼
Yes. The first 10 characters encode the millisecond timestamp. This tool decodes and displays the creation time for any ULID you enter.
Are ULIDs monotonic?▼
This generator does not enforce monotonicity — if two ULIDs are generated in the same millisecond, they will share the same timestamp prefix but have different random suffixes, so their relative order is random. For strict monotonicity, increment the random component within the same millisecond.
What is Crockford's Base32?▼
It's a base-32 encoding that uses the digits 0-9 and letters A-Z excluding I, L, O, and U to avoid confusion with 1, 1, 0, and V. This makes ULIDs easy to read, type, and communicate verbally.