How to use the ULID, NanoID & KSUID Generator
Generate modern identifiers — ULID, NanoID, KSUID, CUID2, and Snowflake — in bulk for database keys, event IDs, test fixtures, and API resources. The sortable types (ULID, KSUID, Snowflake) embed a timestamp, so you can decode their creation time right here. Everything runs locally in your browser using cryptographic randomness; nothing is uploaded.
What it does
- Bulk-generates ULID (Crockford base32, sortable), KSUID (base62, sortable), and Snowflake (numeric, sortable) IDs.
- Generates NanoID with a configurable length and alphabet, and CUID2 of a chosen length.
- Decodes the embedded timestamp of a ULID, KSUID, or Snowflake to local and UTC time.
- Validates and normalizes pasted lists (dedupe, sort), then exports as lines, CSV, JSON, or SQL.
When to use it
- You want time-sortable primary keys with better index locality than random UUIDs.
- You need a short, URL-safe ID (NanoID) for links or public-facing references.
- You are debugging an event stream and want the time a ULID/KSUID/Snowflake was created.
- You need bulk test fixtures or seed data with realistic IDs.
How to use it
- Pick an ID type and set its options (count, length, alphabet, or epoch).
- Click Generate, then copy or export the list.
- To inspect an existing ID, paste it into the decode panel.
Tips & pitfalls
- ULID, KSUID, and Snowflake leak approximate creation time — don't use them where that is sensitive.
- Snowflake values are time-relative to an epoch; decode with the same epoch used to generate them.
- CUID2 here uses the browser's native SHA-512 rather than the reference SHA3-512 — the format matches and passes validators, but the bytes differ from the official library.
- For secrets or tokens, use the Password & Token Generator; these IDs are unique, not secret.
FAQ
- What is a ULID and how is it different from a UUID? A ULID is a 128-bit identifier encoded as 26 Crockford base32 characters. Unlike a random UUID, it embeds a millisecond timestamp in its first 48 bits, so ULIDs sort in creation order while remaining globally unique.
- Can I get the time back out of a ULID, KSUID, or Snowflake? Yes. Paste the ID into the decode panel and the tool extracts the embedded timestamp and shows it in local and UTC time. Snowflake decoding uses the epoch you select, since Snowflake time is relative to a chosen epoch.
- Are the generated IDs uploaded anywhere? No. Generation uses your browser's cryptographic randomness and runs entirely on your device. Nothing is sent to any server.
Related guides