Zero Signup ToolsFree browser tools

Generator Tools

ULID Generator

Generate ULID identifiers in your browser. Crockford Base32, 48-bit Unix-ms timestamp, 80 random bits, monotonic mode, and a full decoder. No signup.

ULID generator and decoder

Generate ULID identifiers

26-character Crockford Base32 values: a 48-bit Unix millisecond timestamp followed by 80 random bits drawn from your browser's crypto.getRandomValues. ULIDs sort lexicographically by creation time.

Timestamp source

Generated ULIDs (0)

Click Generate ULIDs to produce a fresh batch. Lock the timestamp to a specific moment so all the IDs share the same 10-character prefix and sort together.

Decode any ULID

Paste a 26-character ULID. The decoder reports the embedded creation time and the 80-bit random component. Lowercase and minor whitespace are tolerated.

Or try

Paste any ULID above. The creation time and random bytes appear here.

ULID vs UUID v7 at a glance

  • Same 128 bits, same 48-bit Unix-ms timestamp prefix, both sort lexicographically by creation time.
  • ULID prints as 26 characters of Crockford Base32 (no I, L, O, or U) so it is shorter than the 36-character hyphenated UUID form.
  • ULID has 80 random bits per value; UUID v7 has 74 (the version and variant nibbles take 6 bits).
  • UUID v7 is the IETF standard (RFC 9562, 2024) and ships in modern database engines. ULID predates v7 and remains the most popular short, URL-safe sortable ID in production.

Crockford Base32 alphabet

0123456789ABCDEFGHJKMNPQRSTVWXYZ

  • The letters I, L, O, and U are deliberately absent so a printed ULID never gets misread as 1, 0, or a profanity.
  • On decode, I and L are accepted as aliases for 1, and O is accepted as an alias for 0. The decoder above applies the same rule.
  • Uppercase is the canonical encoding, but the spec accepts either case on decode. The lowercase toggle in the generator switches the output if you prefer it.

How to use

  1. Choose how many ULIDs you want to generate (1 to 100).
  2. Pick a timestamp source: Now uses the current time, Unix ms takes a specific integer, and Pick a date converts a local date and time.
  3. Leave Monotonic mode on (recommended) so values sharing a millisecond stay strictly increasing, or switch it off to draw fresh randomness for every value.
  4. Click Generate ULIDs to produce a fresh batch. Use the per-row Copy button to copy one identifier, or Copy all to copy the whole list.
  5. Paste any ULID into the Decode any ULID field to see its embedded creation time and the 80-bit random portion.

About this tool

ULID Generator creates Universally Unique Lexicographically Sortable Identifiers in your browser, following the public ULID specification. Each value is 128 bits long, exactly like a UUID, but laid out so the first 48 bits hold a Unix-epoch millisecond timestamp and the last 80 bits hold cryptographically random data from crypto.getRandomValues, the same CSPRNG that backs crypto.randomUUID and SubtleCrypto in modern browsers. ULIDs are serialized as 26 characters of Crockford Base32, which deliberately omits the letters I, L, O, and U so a printed value never gets misread as 1, 0, or anything offensive, and which preserves lexicographic order so plain string sorting also sorts by time. Pick a batch size up to 100 and generate using the current time, a specific Unix millisecond value, or a date and time you choose, so every identifier in the batch shares the same 10-character prefix and is guaranteed to sort together. Monotonic mode follows the ULID spec recommendation: when several values share the same millisecond, the random component is incremented by 1 instead of being regenerated, which keeps the IDs strictly increasing inside a single millisecond and matches how the original Stripe ULID library, ulid-py, ulidx, and oklog/ulid all behave. A lowercase toggle switches the output if your downstream tools prefer lowercase. The built-in decoder accepts any 26-character ULID, tolerates whitespace and stray hyphens from copy-paste, applies the Crockford alphabet aliases for I/L (treated as 1) and O (treated as 0), and reports the embedded creation time as a Unix-ms integer and an ISO 8601 string, plus the 80-bit random portion in hexadecimal. Useful as application primary keys, event IDs, trace IDs, log correlation IDs, S3 object keys, idempotency tokens, ledger entry IDs, and any other situation where you want a short, URL-safe, time-sortable identifier without the 36-character footprint of a hyphenated UUID. ULID predates UUID v7 (RFC 9562, May 2024) but solves the same database-friendly-primary-key problem, with a shorter wire format and slightly more random bits per value (80 vs 74). Generation, decoding, and all formatting run entirely in your browser. The identifiers and any ULID you paste into the decoder never leave your device.

Free to use. Works in your browser. No signup, no login.

Related tools

You may also like

All tools
All toolsGenerator Tools