ULID Generator
Generate sortable ULIDs for logs, event streams, and distributed systems
Choose count and casing first, then generate ULIDs immediately; sortability and timestamp insights are available in Advanced mode.
The full guide also includes pitfalls, worked examples, snippets, FAQs, and related tools for checking results or troubleshooting.
About this tool
Generate 1–50 ULIDs per batch from a 48-bit Unix millisecond timestamp and 80 random bits supplied by browser crypto. The supported timestamp range is 0–281474976710655 ms. Changing casing reformats existing results. Lexical order follows the encoded timestamp, but same-millisecond order and clock rollback are not made monotonic. Collisions are possible; this is not a uniqueness service or credential generator. Settings are stored locally, while generated IDs are not persisted by this tool.
Production Snippets
Example
text
00000000000000000000000000 → Unix ms 0
7ZZZZZZZZZZZZZZZZZZZZZZZZZ → maximum ULIDScenario Recipes
Inspect a batch without assuming monotonic order
Goal: Prepare IDs for a log fixture and inspect their encoded time.
- Generate five ULIDs.
- Open Advanced to inspect the first timestamp, unique-value count and lexical-order indicator.
- Change casing and confirm the underlying IDs stay the same.
Result: A timestamp prefix helps grouping; it does not certify creation order or uniqueness.
Failure Clinic (Common Pitfalls)
Clock order is not event order
Cause: Same-millisecond randomness and clock rollback can change lexical ordering.
Fix: Use application ordering metadata or a suitable coordinated generator when strict order is required.
Frequently Asked Questions
What does a generated ULID contain?
A 48-bit Unix millisecond timestamp plus 80 random bits, encoded as 26 Crockford Base32 characters. The maximum value starts with 7; larger timestamps are rejected.
What batch sizes are supported?
An integer count from 1 to 50. Fractions, empty or out-of-range input are rejected rather than rounded.
Are the IDs strictly increasing and globally unique?
No. Randomness determines order within one millisecond, and clock rollback can move later-generated IDs backwards. Collisions are improbable with suitable usage but are not impossible.
Does changing casing generate new IDs?
No. Uppercase and lowercase represent the same ULIDs; the casing option reformats the current result list.
What happens if browser crypto fails?
Generation stops, old output is cleared, and an error is shown. There is no fallback to Math.random.
Are the results uploaded or saved?
Generation runs locally. Count and casing settings are saved in this browser; generated IDs are not persisted by the tool. Clear removes saved settings.
Keep browsing