Skip to content

ULID Generator

Generate ULIDs (Universally Unique Lexicographically Sortable Identifiers) - a 26-character, timestamp-ordered alternative to UUIDs.

Category: security
Use Case: Database Primary Keys, Event & Log Ordering, Test Data & Seed Scripts
Privacy: 100% browser-based

Recommended Settings

Pro Tips

  • The first 10 characters encode the millisecond timestamp, so ULIDs generated later always sort after earlier ones - even as plain strings
  • The remaining 16 characters are cryptographically random, providing 80 bits of randomness per millisecond
  • ULIDs use Crockford's Base32 alphabet, which excludes easily confused characters like I, L, O, and U
  • Unlike UUIDs, ULIDs are case-insensitive and URL-safe by design, with no hyphens required

Most Popular

Most developers generate a handful of ULIDs to seed test data or verify their sort order matches creation order

When to Use This Tool

Database Primary Keys

Use a naturally sortable, unique identifier as a database primary key.

Event & Log Ordering

Generate identifiers for events or log entries that sort chronologically by default.

Test Data & Seed Scripts

Create realistic sortable IDs for test fixtures and seed data.

Distributed System Identifiers

Generate unique, time-ordered IDs across systems without central coordination.

How It Works

1

Encode the current millisecond timestamp into the first 10 characters using Crockford's Base32 alphabet

2

Generate 80 bits of cryptographically random data for the remaining 16 characters

3

Combine both parts into the final 26-character ULID

100% Private

Files never leave your device. All processing happens locally in your browser.

Lightning Fast

Powered by Web Crypto API (crypto.getRandomValues), Crockford Base32 encoding for optimal performance on modern browsers.

Open Source

Built with verified, open-source libraries. Fully transparent.

Frequently Asked Questions

How is a ULID different from a UUID?

A ULID encodes a timestamp in its first 10 characters, making ULIDs generated later always sort after earlier ones as plain strings - standard UUIDs (except v7) don't have this property, and ULIDs use a more compact, case-insensitive Base32 encoding instead of hex with hyphens.

Are ULIDs case-sensitive?

No, Crockford's Base32 alphabet is designed to be decoded case-insensitively, though this tool generates them in uppercase by convention.

Can two ULIDs generated in the same millisecond collide?

It's extremely unlikely - each ULID has 80 bits of randomness within its millisecond, so the chance of a collision even with many IDs generated in the same millisecond is negligible for practical purposes.

Is my data sent to a server?

No. Every ULID is generated entirely in your browser.

Why exclude letters like I, L, O, and U?

Crockford's Base32 excludes characters that are easily confused with digits or each other when read or transcribed by hand, reducing transcription errors.