Skip to content
Marvin's Toolbox.

Search tools

Type to filter all tools

ULID Generator

Generate ULIDs one at a time or in bulk: sortable, timestamp-prefixed identifiers in Crockford base32. Use monotonic mode for strictly ordered ids, decode any ULID back to its timestamp, and copy the results as a plain list.

Everything runs locally in your browser. Your data never leaves your device.

Ids created within the same millisecond increment the previous randomness by one, so the whole batch sorts strictly in creation order.

Result

Generating…

TimestampRandomness

Decode a ULID

Lowercase works too, and the look-alikes I, L and O read as 1, 1 and 0.

Next steps

Send this tool's output straight into another tool.

Convert text into every case at once: title case in the APA, AP, Chicago, MLA, Bluebook, AMA and NYT styles, sentence case, upper, lower, camelCase, snake_case, kebab-case and more.

Count words, characters, sentences, paragraphs, lines and more as you type, with estimated reading and speaking time.

Remove duplicate lines from a list or text, keeping the first occurrence. Optionally ignore case and whitespace, or drop blank lines too.

Replace text in two modes: plain find and replace all, or regular expressions with flag controls and capture group references like $1.

Compare two texts and see every added, removed and changed line highlighted, side by side or inline, with the changed words marked within each line. Ignore case, whitespace or blank lines, read a summary of how much changed, and export the result as a unified diff.

Paste a UUID to see what it carries: version, variant, and for time-based versions the exact timestamp, clock sequence and node. Also shows the raw bytes, the 128-bit integer and the URN form.

Decode Base64 to text or encode text to Base64. Paste into the top box, read the result below, and flip the direction with one click. Handles Unicode correctly, reads URL-safe Base64, and shows binary payloads as a hex dump you can download.

Convert numbers between binary, octal, decimal, hexadecimal and any base up to 36. Type into any field and the others update as you go. Handles huge integers without losing precision and accepts 0x, 0b and 0o prefixes.

Convert between scientific notation and full numbers as you type. Reads 1.23e5, 1.23 × 10^5 and plain numbers, shows the value written out, in normalized scientific notation and in engineering notation, and can round to any number of significant digits.

About the ULID Generator Tool

This tool generates ULIDs, sortable unique identifiers made of a 48-bit millisecond timestamp and 80 bits of randomness, written as 26 Crockford base32 characters. Make one or up to 1,000 at a time, with the timestamp and randomness characters color-coded so you can see the two parts.

It also works in reverse: paste any ULID into the decode panel to see when it was created, as a readable date, along with its random bits as hex.

What you can do

  • Generate a single ULID or a bulk list of up to 1,000.
  • Generate strictly ordered ids with monotonic mode.
  • Decode a ULID back to its creation timestamp.
  • Extract the date and time embedded in any ULID.
  • Copy the whole list or download it as a text file.
  • Switch the output to lowercase.

How to use the ULID Generator

  1. 1Set how many ULIDs you need and click Regenerate for a fresh batch.
  2. 2Turn on monotonic mode if ids created within the same millisecond must keep their creation order.
  3. 3Copy the result, or download the list as a text file.
  4. 4To inspect an id, paste it into the decode panel and read its timestamp and randomness.

How a ULID is put together

The first 10 characters encode the creation time in milliseconds since the Unix epoch, and the remaining 16 encode 80 bits of randomness. Because the timestamp comes first, sorting ULIDs alphabetically sorts them by creation time, so newer ids always land at the end of an index. The Crockford base32 alphabet leaves out I, L, O and U, so ids are hard to misread, and the decoder here is equally forgiving: lowercase input works, and a pasted I, L or O is read as 1, 1 or 0.

A ULID holds 128 bits, the same as a UUID, in 26 characters instead of 36. If you need standard UUIDs instead, the UUID Generator makes them, and its version 7 solves the same sortability problem in UUID form. For shorter ids with a configurable alphabet, use the Nano ID Generator.

What monotonic mode does

Two ULIDs created in the same millisecond share a timestamp, so their order comes down to their random parts. In monotonic mode the generator follows the spec: within one millisecond each new id reuses the previous randomness incremented by one, so the whole batch sorts strictly in creation order. The guarantee covers ids from one generator run, not ids created on different machines.

Paste a MongoDB ObjectId and see the creation timestamp, the random value with its legacy machine and process id split, and the counter, color coded so each part of the ID maps to its meaning. Also generates ObjectIds for any date, handy for time-range queries.

Generate Nano IDs in bulk with full control over length and alphabet. Pick the default, hex, numbers-only or a custom character set, see the collision probability for your settings, and copy the results as a plain list.

Paste a Discord, Twitter or custom snowflake ID and see the exact creation timestamp, worker, process and sequence bits it carries. Pick a preset or set your own epoch and bit layout, or turn a date into the matching id range.

Paste a UUID to see what it carries: version, variant, and for time-based versions the exact timestamp, clock sequence and node. Also shows the raw bytes, the 128-bit integer and the URN form.

Generate UUIDs in versions 1, 3, 4, 5, 6 and 7, one at a time or in bulk. Pick a version, set how many you need, and regenerate with one click. Name-based versions take a namespace and a name, and the result copies as a plain list.

Enter a resolution to get its simplified aspect ratio, or start from a ratio and one side to get the missing dimension. Knows the common ratios like 16:9, 4:3 and 21:9 and shows how close your size is to each.