ULID Generator Online
Generate sortable ULIDs, decode the embedded timestamp, and convert between ULID and UUID in your browser. Nothing is uploaded.
The ULID Generator runs entirely in your browser. Randomness comes from the Web Crypto API, and the ULIDs you generate, decode, or convert never leave your device or reach ArrayKit.
Open the UUID Generator
About ULID Generator
The ULID Generator creates ULIDs, the lexicographically sortable identifier that packs a 48-bit millisecond timestamp and 80 bits of randomness into a compact 26-character Crockford base32 string. Generate a single ULID or a batch of hundreds, toggle monotonic mode so IDs made in the same millisecond still sort in creation order, and switch case for the format your database prefers. Decode mode reverses the process: paste any ULID and read back the exact creation time as epoch milliseconds and an ISO-8601 timestamp. The built-in converter turns a ULID into its equivalent 128-bit UUID and back without losing a bit. Handy when you need database keys that sort by time, log correlation IDs, or a UUID alternative. The random bytes come from your browser's Web Crypto API and every ULID is built on your device, so nothing you generate is ever sent to a server.
Features
- Generate one ULID or a batch of up to 500 at once
- Monotonic mode increments the random field so same-millisecond IDs still sort correctly
- Uses the Web Crypto API for strong randomness in the last 80 bits
- Decode any ULID to its embedded epoch-ms and ISO-8601 timestamp
- Convert losslessly between a ULID and its equivalent 128-bit UUID
- Uppercase or lowercase output to match your schema
- Crockford base32 alphabet skips I, L, O and U to avoid look-alike typos
- Copy the whole batch or a single ID with one click
How to use the ULID Generator
- Keep the Generate tab selected and set how many ULIDs you need
- Toggle Monotonic on for time-ordered keys, or off for independent random suffixes
- Copy the ULID or the full batch from the output box
- Switch to Decode to read a ULID's timestamp, or ULID to UUID to convert
Example
Input
01ARZ3NDEKTSV4RRFFQ69G5FAV
Output
timestamp: 1469922850259 (2016-07-30T23:54:10.259Z)
uuid: 01563e3a-b5d3-d676-4c61-efb99302bd5b
The first 10 characters decode to the creation time; all 128 bits map to a UUID.
Common errors & troubleshooting
- Decode reports the ULID is invalid even though it looks right. — A ULID is exactly 26 characters. Remove surrounding quotes or whitespace, and note the first character must be 0–7 so the 48-bit timestamp does not overflow.
- Two ULIDs created in a tight loop sort out of order. — Turn Monotonic on. Without it, IDs sharing the same millisecond get independent random suffixes and can sort in any order.
- The database rejects lowercase ULIDs. — Crockford base32 is canonically uppercase. Turn off the Lowercase toggle, or store them case-insensitively since decoding accepts either case.
- A converted UUID does not look like a version-4 UUID. — A ULID has no version or variant bits, so its UUID form will not carry a 4 in the version nibble. That is expected — the conversion preserves the raw 128 bits, not the UUID layout.
Frequently asked questions
- What is a ULID and how is it different from a UUID?
- A ULID is a 128-bit identifier written as 26 Crockford base32 characters. Unlike a random UUIDv4, its leading bits are a millisecond timestamp, so ULIDs sort in creation order as plain text while still being globally unique.
- How does monotonic ULID generation work?
- When several ULIDs are generated within the same millisecond, monotonic mode reuses that millisecond's random field and adds one to it for each new ID instead of drawing fresh randomness. This guarantees each ULID is strictly greater than the previous one.
- Can I recover the creation time from a ULID?
- Yes. The first 10 characters encode a 48-bit millisecond timestamp. Paste a ULID into Decode mode and the tool shows the exact epoch-ms value and the matching ISO-8601 date and time.
- Is the ULID to UUID conversion reversible?
- Yes. A ULID and a UUID both hold 128 bits, so the converter maps every bit across without loss. Convert a ULID to a UUID and back and you get the original ULID exactly.
- Why does the alphabet skip I, L, O and U?
- ULIDs use Crockford base32, which omits I, L, O and U so IDs are easy to read and hard to mistype. On decode the tool still accepts I and L as 1 and O as 0 for convenience.
- Are the ULIDs I generate here private?
- Yes. Every ULID is built in your browser using the Web Crypto API for randomness. The IDs you generate, decode, or convert are never sent to ArrayKit or any server.
Related tools
All ArrayKit tools