Inspect & Identify

UUID Generator & Inspector

Generate random (v4) or time-ordered (v7) UUIDs, or inspect any UUID for its version, variant and embedded timestamp. Runs in your browser.

UUIDs are identifiers, not secrets. Never use one as a password, API key or session token.

Generate UUIDs options

UUID version

Keyboard shortcuts

Esc
Close a menu or overlay, then leave full screen
↓ on a menu
Open it; ↑ ↓ move through its items
← → in the menu bar
Move between menus

Keyboard shortcuts

Esc
Close a menu or overlay, then leave full screen
↓ on a menu
Open it; ↑ ↓ move through its items
← → in the menu bar
Move between menus

Where your data goes

Using this page Using the API, MCP or A2A
Where it runs In your browser. UUIDs are generated with your browser's Web Crypto (crypto.randomUUID and crypto.getRandomValues) and inspected in this page; nothing is sent. In a Cloudflare Pages Function at the Cloudflare data centre nearest the caller.
What leaves your device Nothing you enter. After the page and its scripts load, no request carries your input. The browser enforces this: the page's Content-Security-Policy sets connect-src 'none' and form-action 'none', which block fetch, XHR, WebSocket, EventSource, beacons and form posts.

The server receives only the options (version, count, format), generates the UUIDs in memory with the Web Crypto CSPRNG, and returns them. Your input is not stored or logged; only the per-call metadata row (operation, time, status, sizes) is recorded. UUIDs are identifiers, not secrets: never use one as a password, token or key.

The server receives the UUID, decodes its fields in memory, and returns them. Your input is not stored or logged; only the per-call metadata row (operation, time, status, sizes) is recorded. Note that a v1 UUID may embed the MAC address of the machine that generated it.

Stored Nothing leaves the page. No cookies, analytics or third-party scripts; the browser keeps only your View → Inline config choice. Your inputs and results: never. What is stored is your client record (client ID, a SHA-256 hash of your secret, expiry, and the profile you registered with) and one metadata row per call: operation, time, transport, status, error code, duration, request and response sizes, and country.
Logged Nothing (no requests are made). Only the per-call metadata above, attributed to your client ID. Never parameters, bodies, results, or credentials. Cloudflare, as the host, also processes request metadata (IP address, full URL including the query string, headers) under its own policies, so put inputs in POST bodies.
Access Open to anyone. Requires a client ID and secret (how to get one). HTTPS only; TLS terminates at Cloudflare.

Details and how to verify this yourself: Security & privacy.

User guide

The tool sits in a window that works like a desktop app: menus on the top row and the full-screen icon at its right (Esc leaves full screen). The set-up options described below are in Settings → Options…, an overlay, and the Settings menu also lists the common choices directly. To keep the options in view instead, choose View → Inline config; the page remembers that choice. Help → Keyboard shortcuts… lists the keys.

Generating.

  1. Choose v4 (random) or v7 (time-ordered), how many (1–1000), and a format.
  2. Press Generate, then Copy. Changing any option generates a fresh set.

Which version should you use?

  • v4 has no structure at all: use it when you need an opaque identifier.
  • v7 starts with the creation time in milliseconds, so new IDs sort after old ones. Database indexes stay compact, and you can sort by ID instead of by a timestamp column. Anyone can read the creation time from a v7 UUID.

UUIDs are identifiers, not secrets. v4 UUIDs come from a cryptographically secure generator, but they are not designed or reviewed as secrets. They are logged, put in URLs, and shown in UIs as a matter of course, and a v7 UUID is partly predictable. Never use a UUID as a password, API key, session token, password-reset token or unguessable “secret link”. Use a dedicated random token of at least 128 bits for those.

Inspecting. Paste any UUID to see:

  • its version and variant;
  • whether it is the Nil or Max UUID;
  • the timestamp of v1, v6 and v7;
  • the clock sequence and node of v1 and v6;
  • the same UUID in every format.

Specification

Standard. RFC 9562 (May 2024), which obsoletes RFC 4122.

Accepted input formats (case-insensitive, surrounding whitespace ignored):

FormatExample
canonical017f22e2-79b0-7cc3-98c4-dc0c0c07398f
uppercase017F22E2-79B0-7CC3-98C4-DC0C0C07398F
no-hyphens017f22e279b07cc398c4dc0c0c07398f
braces{017f22e2-79b0-7cc3-98c4-dc0c0c07398f}
urnurn:uuid:017f22e2-79b0-7cc3-98c4-dc0c0c07398f

Any other shape is rejected with the reason: the first non-hex character and its position, the number of hex digits found, or misplaced hyphens. Output always includes the canonical form, which is lowercase (RFC 9562 §4).

Variant (the top bits of octet 8, RFC 9562 §4.1):

BitsVariant
0NCS (reserved, backward compatibility)
10RFC 9562
110Microsoft (reserved, backward compatibility)
111Reserved (future)

The version (top 4 bits of octet 6) is reported only for the RFC 9562 variant. The Nil UUID (all zeros, §5.9) and the Max UUID (all ones, §5.10) are identified as such and have no version.

Fields decoded per version.

VersionDecoded
160-bit timestamp time_high‖time_mid‖time_low in 100 ns intervals since 1582-10-15T00:00:00Z; 14-bit clock sequence; 48-bit node
6Same fields, stored most-significant first (time_high‖time_mid‖time_low)
748-bit Unix timestamp in milliseconds
2Named only (DCE Security; its layout is not specified by RFC 9562)
3, 5Named; the MD5 or SHA-1 name hash cannot be reversed
4, 8Named; random or vendor-defined bits

Timestamps.

  • Units: v1 and v6 timestamps are converted with the Gregorian-to-Unix offset 122,192,928,000,000,000 × 100 ns.
  • isoExact has 7 fractional digits, which is exact to 100 ns.
  • iso and unixMs are floored to the millisecond.
  • Node: for v1/v6, nodeIsRandom is true when the multicast bit of the node is set (§6.10). Otherwise the node may be the generating machine’s MAC address.

Test vectors. The implementation is tested against RFC 9562 Appendix A:

VectorResult
v1 C232AB00-9414-11EC-B3C8-9F6BDECED8462022-02-22T19:22:22.0000000Z, clock sequence 0x33C8, node 9F:6B:DE:CE:D8:46
v6 1EC9414C-232A-6B00-B3C8-9F6BDECED846The same timestamp, clock sequence and node
v7 017F22E2-79B0-7CC3-98C4-DC0C0C07398F2022-02-22T19:22:22.000Z (0x017F22E279B0 ms)
v3, v4 and v5 examplesVersions 3, 4 and 5

Generation.

  • v4: crypto.randomUUID(), which gives 122 random bits.
  • v7: layout unix_ts_ms (48) ‖ ver (4) ‖ rand_a (12) ‖ var (2) ‖ rand_b (62). Monotonicity follows §6.2 Method 1, a fixed-length dedicated counter:
    • The counter is 42 bits: all 12 bits of rand_a plus the leftmost 30 bits of rand_b.
    • On each new millisecond it is seeded with random bits, with its top bit cleared as a rollover guard. Within the same millisecond it increases by 1.
    • The last 32 bits of rand_b are fresh random bits for every UUID.
    • If the clock stands still or moves backwards during a batch, the previous timestamp is reused. A counter overflow (2⁴¹ UUIDs in one millisecond) would advance the timestamp by 1 ms.
    • So every batch is strictly increasing, both as bytes and as strings.
    • Monotonicity is guaranteed within one batch, not across separate requests.
  • Randomness: the Web Crypto CSPRNG (crypto.getRandomValues).

API.

  • Count: count is 1–1000.
  • Formats: format is one of the five above.
  • Not idempotent: uuid_generate returns new values on every call.

API & MCP

The same logic is available over HTTP and as MCP tools. Unlike this page, these run on the server: see where your data goes.