UUID v7 Generator

Time-ordered version 7 UUIDs, generated when the page opens.

Runs entirely in your browser

Loading the tool…

Version 7 UUIDs, generated when the page opened. The first 48 bits are a Unix timestamp in milliseconds and the rest is random, which makes them sort by creation time as plain text while staying as unguessable as matters.

That ordering is the whole reason the version exists. A v4 used as a primary key scatters inserts across a B-tree at random and fragments it; a v7 appends, because each new value is larger than the last. On a big, insert-heavy table the difference in write performance is substantial and shows up as index bloat long before anyone connects it to the id format.

The trade is that a v7 tells anyone holding it roughly when it was made, to the millisecond. For a row id that is usually harmless or even useful. For a password reset token or an unguessable share link it is a leak, and v4 is the right choice there.

Version 7 was standardised in RFC 9562 in 2024, so support in older libraries is patchy while the format itself is settled. ULID is the same idea in a shorter alphabet and predates it.

How to use it

  1. Read the ids above, generated when the page opened.
  2. Press Generate for a fresh set, or change the count first.
  3. Press Copy to take them, with braces or quotes if you need them.

Questions

What is the difference between UUID v4 and v7?

v4 is entirely random; v7 puts a millisecond timestamp in the first 48 bits and randomises the rest. Both are unique in practice, but v7 values sort by creation time, which is what makes them behave in a database index where v4 does not.

Does a UUID v7 leak the time it was created?

Yes, to the millisecond, by design. That is fine for a row id and wrong for anything meant to be opaque, so use v4 for reset tokens, invite links and anything else where knowing when it was issued would tell somebody something.

Is UUID v7 safe to use yet?

The format is settled: RFC 9562 published it in 2024 and the major languages have implementations. What varies is whether the particular library version you are on has one, so check before assuming, especially in older runtimes.

Are these generated on my machine?

Yes, in this tab, from the browser's cryptographic random source. Nothing is requested from a server and nothing is recorded, so no ids you generate here exist anywhere but on your screen. The page works with the network off.

Could two people get the same id?

Not in any practical sense for the random kinds. The space is large enough that collisions are a theoretical concern rather than an operational one, and no coordination between generators is needed, which is the entire reason these formats exist.

The other formats

The same generator on a different kind of identifier, and what separates them.

Your data stays on your device

Everything above runs inside your browser as WebAssembly compiled from Rust. Nothing you type is uploaded, logged or stored on a server. You can load this page once, go offline, and it still works.

This page makes no requests at all, to anywhere. That is not a promise in the copy: it is a Content-Security-Policy header your browser enforces, and connect-src on it is none. Open the network tab and watch nothing happen.