Time-ordered, sortable UUIDs by RFC 9562: batch generate, monotonic mode, decode the embedded timestamp, all in your browser
- Runs locally
- Category Developer & DevOps
- Best for Formatting, validating, shrinking, or inspecting code-adjacent text.
Strictly ascending, even within the same millisecond — ideal for ordered keys.
The decoded timestamp shows up here.
What this tool does
Generate UUIDv7 identifiers in the browser, the time-ordered UUID defined by RFC 9562. A v7 packs a 48-bit Unix millisecond timestamp into its leading bits, then a version nibble, random bits, the variant marker and more randomness, so the IDs sort chronologically as plain strings. That is the difference from the familiar fully random v4: a v7 primary key keeps a B-tree index roughly time-ordered, inserts land near the right edge, and ORDER BY id is also ORDER BY creation time, with no separate created_at column. Make 1 to 100 at once, switch on monotonic mode so IDs minted in the same millisecond still come out strictly ascending, toggle uppercase and hyphen formatting, copy one or copy all. The built-in decoder takes any v7, reads its embedded timestamp back out as milliseconds plus a readable UTC and local time, and checks the version and variant bits so a malformed or v4 ID is caught at once. Randomness comes from crypto.getRandomValues and nothing is uploaded.
Tool details
- Input
- Files + Numbers
- The page exposes text boxes, numeric controls, file pickers, or structured inputs depending on the tool.
- Output
- Live result + Copy + Download
- The result area focuses on usable output, with copy, download, or preview actions when supported.
- Privacy
- Browser-side processing
- The main tool logic does not call an external API, so inputs normally stay in the current tab.
- Save / share
- Shareable URL state
- Key settings are encoded in the URL so another person can reopen the same setup.
- Performance budget
- Initial JS <= 9 KB
- No WASM budget is declared, keeping the tool quick to open on mobile.
- Best fit
- Developer & DevOps · Developer
- Category and role tags drive related tools, internal links, and quick fit checks.
How to use
-
1. Input
Paste or drop your content into the tool panel.
-
2. Process
Click the button. All processing is local in your browser.
-
3. Copy / Download
Copy the result or download to disk in one click.
How UUIDv7 Generator fits into your work
Use it in the small gaps between coding, reviewing, debugging, and shipping.
Developer jobs
- Formatting, validating, shrinking, or inspecting code-adjacent text.
- Preparing snippets for documentation, tickets, commits, or handoff.
- Checking a small payload quickly without switching tools.
Developer checks
- Run irreversible transforms like minify or obfuscate on a copy.
- Keep secrets out of pasted snippets unless the tool explicitly stays local.
- Use your normal tests or linter before shipping transformed code.
Good next steps
These links move the current task into a more complete workflow.
- 1 JWT Decoder Decode JWT header / payload / signature — verify structure, check exp, copy claims — browser-only Open
- 2 File Hash Calculator Compute SHA-1, SHA-256, SHA-384, or SHA-512 hashes for uploaded files entirely in the browser. Open
- 3 UUID Generator Generate v4 random, v7 time-ordered, NIL, and Short UUIDs instantly — entirely in your browser. Open
Real-world use cases
Switch a Postgres primary key from v4 to v7
You are designing a new table and want the ID column to also carry insertion order. Generate a handful of v7s here to eyeball the format, confirm they sort the way you expect, then set the column default to a v7 generator. New rows append near the right edge of the B-tree index instead of scattering, and "give me the 50 newest" becomes ORDER BY id DESC LIMIT 50 with no created_at column to maintain.
Build an append-only event log or outbox table
An outbox or event stream needs keys that are unique and keep events in the order they happened. Turn on monotonic mode and every v7 is strictly greater than the last, even when thousands land in the same millisecond. A consumer reads ORDER BY id and replays events in exactly the order the producer wrote them, with the timestamp readable straight off each ID.
Find when a record was created straight from its ID
A support ticket quotes a record ID like 0190b3b0-6400-7000-... and you need to know when it was created without touching the database. Paste it into the decoder and read the exact millisecond plus the UTC time. No schema access, no created_at lookup; the timestamp is baked into the first 48 bits of the ID itself.
Seed test fixtures with realistic, time-ordered IDs
Writing integration tests that assert ordering? Generate a batch of monotonic v7s, drop them into your fixtures, and assertions on "newest first" hold deterministically. Because they are standard UUIDs, they slot into any UUID column or ORM model without a custom type, and you can copy all and paste straight into a seed file.
Common pitfalls
Treating a UUIDv7 as a secret. The random bits make collisions virtually impossible, but the leading 48 bits are a fully readable timestamp. A v7 is an identifier, not a token, so never use one as a session secret, password-reset code, or anything that must be unguessable in full.
Exposing v7 IDs in public URLs without thinking about the leaked timing. Because the creation time decodes straight out, a public v7 reveals roughly when the record was made, and adjacent monotonic IDs hint at how fast you create records. If creation timing is sensitive, keep v7 internal and surface an opaque alias.
Validating v7 with a generic UUID regex that ignores the version digit. A pattern that accepts any 8-4-4-4-12 hex will happily pass a v4 or a NIL UUID. Check that the 13th hex character is 7 and the variant bits are 0b10, which is exactly what the decoder on this page does before reading a timestamp.
Privacy
Every UUIDv7 is built in your browser tab. The random bits come from crypto.getRandomValues, the same cryptographic source the platform uses for keys, never Math.random, and they never leave the page. The decoder runs entirely client-side too, so a UUID you paste to inspect its timestamp is not logged or transmitted. Only your settings, the count and the monotonic, uppercase and hyphen toggles, ride in the shareable URL; the generated IDs themselves are re-randomized on every click and stay local.
FAQ
Tool combos
Folks in your role tend to reach for these alongside this tool.
- Add Line Numbers Number every line of pasted text — set start, step and separator, zero-pad to align, skip blanks, or strip numbers back off — browser-only
- AES Text Encryptor Encrypt & decrypt text with a password — AES-256-GCM + PBKDF2 via WebCrypto — 100% in your browser, nothing uploaded
- Affine Cipher Encoder & Decoder Encrypt and decrypt the ax+b affine cipher with live modular-inverse check, browser-only
- Age Difference Calculator The exact gap between two birthdays — years/months/days, percentage, and the date one person is twice the other's age — browser-only