ULID Generator and Decoder
Generate one or many ULIDs, the 26 character identifiers that sort by creation time, or paste a ULID to decode it. The decoder shows when it was created, the time and random parts, the 128 bits as hex and the same value written as a UUID. The random bits come from your browser, and nothing is uploaded.
A ULID is a 26 character identifier made of a 48 bit timestamp in milliseconds followed by 80 random bits, written in Crockford Base32 (the digits 0 to 9 and the letters A to Z without I, L, O and U). Because the time comes first, ULIDs sort by creation time as plain text, unlike random UUIDs. They are not secret: anyone can read the creation time from one. The random bits come from your browser's secure random number generator, and nothing is uploaded.
Related Tools
[5 suggestions]UUID Generator
Generate cryptographically random UUID v4 identifiers instantly, one or in bulk.
Developer & WebUUID v7 Generator
Generate time-ordered UUID v7 identifiers, and decode the creation time inside any UUID.
Developer & WebUnix Timestamp & Epoch Converter
Convert Unix epoch timestamps to UTC and local dates, or convert human dates to Unix timestamps with auto-detection.
Developer & WebHash Generator (MD5, SHA-1, SHA-256, SHA-512)
Generate MD5, SHA-1, SHA-256, and SHA-512 cryptographic hashes live from any text using the native Web Crypto API.
Developer & WebPassword Generator
Generate cryptographically secure random passwords with custom length and character sets.
Developer & WebAbout the ULID Generator and Decoder
A ULID is a Universally Unique Lexicographically Sortable Identifier. It has 128 bits: a 48 bit timestamp in milliseconds since the Unix epoch, followed by 80 random bits. It is written as 26 characters in Crockford Base32, which uses the digits 0 to 9 and the letters A to Z without I, L, O and U, so it is easy to read aloud and has no look-alike characters. The first 10 characters are the time and the last 16 are random. Because the time comes first and the encoding keeps order, sorting ULIDs as plain text sorts them by creation time, which keeps database indexes tidy in a way fully random UUIDs do not. The largest possible time is 2 to the power 48 minus 1 milliseconds, which is 2 August 10889, so the first character of a valid ULID is never above 7. When several ULIDs are made in the same millisecond, the specification says to increase the random part by one for each, which keeps them in order, and this tool does the same for a batch. A ULID is not a secret: anyone can read the creation time from it, so do not use one as a password or token. The same 128 bits can be written as a UUID-style string, which this tool shows, although the layout is not a standard UUID version.
What is a ULID?▾
A ULID is a 128 bit identifier written as 26 characters. The first 10 encode a millisecond timestamp and the last 16 are random, so ULIDs sort in the order they were created.
What is the difference between a ULID and a UUID?▾
A random UUID (version 4) has no order, while a ULID starts with a timestamp and sorts by time. A ULID is also shorter as text, 26 characters instead of 36, and avoids look-alike letters.
Can I get the date from a ULID?▾
Yes. Decode the first 10 characters as Crockford Base32 to get milliseconds since 1 January 1970 UTC. Paste the ULID into the Decode tab and it shows the date for you.
Are ULIDs unique and safe to use as secrets?▾
The 80 random bits make a clash extremely unlikely, but a ULID shows its creation time and is not meant to be secret. Do not use one as a password, session token or API key.
Why can the first character of a ULID not be above 7?▾
The time part is 48 bits, and 10 Base32 characters hold 50, so the top 2 bits must be zero. That limits the first character to 0 through 7 and the time to the year 10889.
Is my data uploaded?▾
No. The calculation runs in your browser and nothing you enter is sent anywhere.