Sortable 26-character ULIDs, monotonic within a millisecond, with a time decoder
Runs in your browser. Nothing you type is sent anywhere. Updated on 24 Oct 2026.A ULID packs the same 128 bits as a UUID into 26 characters of Crockford base32: the first 10 are the time in milliseconds, the other 16 are random. Because the time comes first, ULIDs sort by creation time as plain text. With the monotonic option on, IDs made in the same millisecond still come out in order. Paste any ULID below to read back when it was made.
The page opens with ULID selected under Type.
Keep Monotonic on so IDs made in the same millisecond still sort in order.
Set How many and click Generate, then Copy.
To read when a ULID was made, paste it into "Check a UUID or ULID" and read the Created time.
This UUID generator creates version 4 and version 7 UUIDs in your browser, from one to a thousand at a time. Choose uppercase, no hyphens or curly braces, then copy the list or download it as a text file. Paste any UUID into the checker to see whether it is valid, which version it is, and when it was made if the version records a time.
Version 4 values come from crypto.randomUUID. Version 7 values follow RFC 9562: 48 bits of milliseconds, the version and variant bits, a counter and random bits from crypto.getRandomValues. Within the same millisecond the counter increases, so every UUID in a batch is larger than the one before, even when you generate a thousand at once.
Two alternatives are built in. A ULID is 26 characters of Crockford base32, a millisecond timestamp followed by 80 random bits, and sorts as text; the monotonic option keeps IDs from one millisecond in order. A nanoid is a short random string, 21 URL-safe characters by default, with your own length and alphabet and an estimate of the collision odds. The checker decodes a ULID's time as well as a UUID's.
The rest of the article, and all 6 questions about UUID Generator, are on the UUID Generator page.
Version 4 is entirely random apart from the version and variant bits. Version 7 starts with the time in milliseconds, then adds random bits, so v7 UUIDs sort in the order they were created. Use v7 for database primary keys, v4 when the order must not reveal anything.
In practice, yes. A v4 UUID has 122 random bits; you would need to generate billions per second for many years before a collision became likely. Version 7 adds a millisecond timestamp and a counter, which makes a clash within one generator impossible.
A ULID suits database keys and logs that should sort by time as plain text, in 26 characters instead of 36. A nanoid suits short IDs in URLs or file names, where a timestamp is not wanted. Use a UUID when a schema, an API or a database column type expects one.
Paste it into the Check a UUID box. It shows whether the value is valid, the version and variant, and for versions 1, 6 and 7 the date and time it was created. The version is the first digit of the third group.
Still stuck? Ask about UUID Generator and anybody who knows can answer. No account needed.
Same job, other tools: Dummy Data Generator – Fill a table, a spreadsheet or a demo screen with plausible rows · SQL Insert Generator – INSERT statements full of test rows for PostgreSQL or MySQL, quoted correctly for each · Code 128 Generator – Make a Code 128 barcode from any text: letters, digits and punctuation · Code 39 Generator – Make a Code 39 barcode, with the optional modulo 43 check character · SHA-256 Generator – SHA-256 hash of any text or file, in hex or Base64 · Cron Expression Generator – Generate a cron expression by choosing when the job should run.
In the collection Test Data Generators.