ULID Generator
Generate ULIDs — sortable 26-character unique identifiers with an embedded millisecond timestamp — and decode any ULID back to its creation time.
Generated locally with crypto.getRandomValues — 48-bit timestamp + 80-bit randomness, Crockford Base32, 26 characters.
Next steps
This tool runs entirely in your browser. Your data never leaves your device — it is not uploaded to any server.
How to use
- 1Click Generate to create a batch of ULIDs (or paste one to decode it).
- 2Each ULID shows its embedded timestamp — the time it was created, in ISO format.
- 3Copy individual ULIDs or the whole list for your fixtures, database seeds or log analysis.
ULID Generator
UUIDv4 is random, so database rows carrying it sort into chaos: indexes fragment, time-ordered queries need a separate column. ULID (Universally Unique Lexicographically Sortable Identifier) fixes that by putting a 48-bit millisecond timestamp first, followed by 80 bits of randomness — 26 characters in Crockford Base32 that sort correctly as plain strings.
The Crockford alphabet (0-9 and A-Z minus I, L, O, U) avoids characters that are routinely misread in handwriting and transcription: no I/1 confusion, no O/0. Generated here with crypto.getRandomValues for the random half and the clock for the timestamp half, both per the ULID spec.
Beyond generating, paste any existing ULID to decode it: the embedded timestamp is extracted and shown as an ISO date, which turns every ULID in your logs into a creation-time record for free. Batch mode generates up to 50 at once, all sharing the same generation moment.
Frequently asked questions
Why choose ULID over UUIDv4?
Sorting. A ULID's first 10 characters encode the creation timestamp, so lexicographic order equals chronological order — primary keys cluster in indexes, range scans on time work directly, and logs sort naturally. UUIDv4 has none of these properties; ULID keeps 128-bit collision resistance anyway.
What is Crockford Base32 and why not hex or base64?
Crockford Base32 uses 32 characters (digits plus A-Z without I, L, O, U) chosen to survive human transcription: no letter/number look-alikes, and it's case-insensitive. Compared with hex it's 25% denser; compared with base64 it avoids +, / and =, so it's URL-, filename- and XML-safe without escaping.
Can two ULIDs generated in the same millisecond collide?
They can't in practice: the 80 random bits give ~1.2 × 10²⁴ possibilities per millisecond. The ULID spec also defines monotonic generation (increment the random part within the same millisecond), which this generator's batch mode respects by construction — each batch entry is distinct.
Is the output safe to paste into production code?
Yes. Formatting, escaping and conversion follow the relevant specs (RFCs, W3C, JSON Schema), and nothing is sent anywhere — you can verify the output locally before committing it.
Does it work on large inputs?
Yes — everything runs locally. A multi-megabyte JSON file or a long regex session is limited only by your machine, not by a request size cap.
Is this tool free to use?
Yes, completely free — no signup, no subscription, no daily limits, and no watermarks on the output.
Related tools
UUID Generator
Generate random UUID v4 identifiers in bulk with one click — 1 to 500 at a time, using your browser's cryptographic randomness. Free, instant, offline-capable.
Token Generator
Generate cryptographically random API tokens, session IDs and secrets in your browser — crypto.getRandomValues, batch output, entropy shown per token.
Unix Timestamp Converter
Convert Unix seconds or milliseconds to human dates and back, with a live clock, local-timezone and UTC output — all in your browser.
JSON Formatter
Format and beautify messy JSON online — 2 spaces, 4 spaces or tabs, with instant validation and precise error locations. 100% in your browser.
Hash Generator
Compute SHA-1, SHA-256, SHA-384, SHA-512 or MD5 hashes of text or files, right in your browser. Fast checksums for integrity checks — nothing uploaded.
Cron Explainer
Turn any cron expression into plain language: a field-by-field breakdown, the next five run times in your timezone, and one-click presets.
Base64 Encoder
Encode text to Base64 instantly with full UTF-8 support — emojis, accents and CJK characters survive intact. Free, private, nothing ever leaves your browser.
Embed this tool
Put this tool on your own site with one line — it runs entirely in the visitor's browser.
<iframe src="https://zoyku.com/en/tools/ulid-generator?embed=1" width="100%" height="640" style="border:0;border-radius:16px" title="Zoyku — ulid-generator" loading="lazy"></iframe>