UUID / ULID Generator
Generate UUID v4, time-ordered UUID v7, ULID, and Nano IDs. Bulk-generate up to 100 at once.
About the UUID / ULID Generator
This generator creates unique identifiers in four formats: UUID v4, time-ordered UUID v7, ULID, and Nano ID. You pick a format, set how many you want, and get a list you can copy. The problem it solves is small but constant: you need a fresh ID for a database row, a test fixture, or a config key without installing a library or writing a throwaway script.
Pick a format tab, type a count from 1 to 100, and press Generate. UUID v4 and v7 come from the browser crypto API, v7 packing a 48-bit millisecond timestamp ahead of its random bits so IDs sort by creation time. ULID loads a small library on demand, and Nano ID draws 21 URL-safe characters. An Uppercase checkbox transforms the output, and the list refills when format or count changes.
Every UUID and ULID is generated locally in the page, so it is free with no signup. Every identifier is produced in your browser with crypto.randomUUID and crypto.getRandomValues, so nothing you generate is sent to a server or logged anywhere. Click any single value to copy it, or use Copy all to grab the whole list joined by newlines. That makes it safe for IDs you paste into real code or seed data.
How to use the UUID / ULID Generator
- 1Choose a type with the Format tabs: UUID v4, UUID v7 (time-ordered), ULID, or Nano ID.
- 2Set the Count field to how many IDs you want, from 1 up to 100.
- 3Tick the Uppercase checkbox if you need the letters in uppercase.
- 4Press Generate to produce a new batch, or change format or count to refill automatically.
- 5Click any identifier in the list to copy just that one to your clipboard.
- 6Press Copy all to copy the entire list, one identifier per line.
What you can use it for
Seeding a database
You are writing a migration or seed script and need twenty primary keys that will not collide. Set Count to 20, choose UUID v4, and Copy all to paste a newline-separated block straight into your SQL insert or fixture file.
Time-sortable record keys
You want IDs that order by creation time so range scans and pagination stay cheap. Pick UUID v7, whose leading bits encode a millisecond timestamp, so freshly generated values sort chronologically instead of scattering like v4.
Short URL-safe tokens
You need a compact identifier for a share link or filename where a 36-character UUID feels bulky. Nano ID gives you 21 characters of letters, digits, underscore, and hyphen, all safe to drop into a URL path.
Why UUID v7 sorts by time
A UUID is 128 bits shown as 32 hex digits. In v4 nearly all of those bits are random, which avoids collisions but hurts database indexes, because each new key lands in a random spot and fragments the index. v7 instead reserves its first 48 bits for a Unix millisecond timestamp, then fills the rest with random data and sets the version and variant bits.
Because the timestamp sits at the most significant end, comparing two v7 UUIDs orders them by when they were made, down to the millisecond, with the random tail breaking ties. ULID uses the same idea with a 48-bit timestamp in Crockford base32, so both suit primary keys that must stay index-friendly while unique.
Frequently asked questions
Are the identifiers generated on your servers?
No. Every value is created locally in your browser using the built-in crypto API, crypto.randomUUID for v4 and crypto.getRandomValues for the random bits in v7 and Nano ID. Nothing is transmitted, stored, or logged. You can confirm this by generating IDs with your network disconnected.
How many can I generate at once?
The Count field accepts 1 to 100. If you type a number outside that range it is clamped, so anything above 100 becomes 100 and anything below 1 becomes 1. For larger batches, generate a hundred, Copy all, then generate another set.
What is the difference between UUID v4 and v7?
v4 is entirely random, so its values appear in no particular order. v7 puts a 48-bit millisecond timestamp in its leading bytes followed by random bits, so IDs generated later sort after earlier ones. Reach for v7 when you want database keys that stay ordered by time.
Does the Uppercase option change the actual value?
Yes. It applies toUpperCase to whatever is shown and copied. For hex UUIDs that only shifts letter case. But Nano ID uses a case-sensitive alphabet, so uppercasing merges distinct characters into a different, lower-entropy string. Leave it off for Nano IDs you intend to keep unique.
What characters can a Nano ID contain, and how do I copy results?
Nano ID uses 21 characters from A to Z, a to z, 0 to 9, plus underscore and hyphen, all URL-safe with no percent-encoding. To copy, click any row for that single value, or press Copy all for the whole batch joined by newlines.