Skip to content
Palmate Solutions

Data

UUID & GUID Generator (v4, v7 & Bulk)

Browser-based UUID and GUID generation utility supporting RFC 4122 Version 4 (random) and RFC 9562 Version 7 (time-ordered Unix epoch). Generate single or bulk identifiers with case and delimiter formatting. Runs 100% client-side via Web Crypto.

Standard pure pseudo-random identifier.

Generated Identifiers (0)100% Client-Side Web Crypto

How it works

UUIDs (Universally Unique Identifiers) are 128-bit values designed to enable distributed systems to uniquely identify records without central coordination. Version 4 (RFC 4122) generates 122 bits of cryptographically strong pseudo-random entropy, setting 4 bits for version (0100) and 2 bits for variant (10xx), yielding a collision probability so low that billions of keys can be generated before a collision occurs. Version 7 (RFC 9562) dedicates the initial 48 bits to a millisecond Unix epoch timestamp, followed by 12 bits of sub-millisecond precision or random entropy, version 7 bits, variant bits, and 62 random bits. Because the high-order bits represent time, UUID v7 strings sort naturally in chronological order, eliminating B-tree index fragmentation in relational databases like PostgreSQL and MySQL while preserving distributed generation benefits.

How to use it

  1. Select your desired UUID version: Version 4 for pure random entropy or Version 7 for sequential time-ordered database indexing.
  2. Choose quantity: generate 1, 5, 10, 25, 50, or up to 100 identifiers simultaneously.
  3. Toggle formatting options: standard hyphens, uppercase lettering, wrapping braces {}, or JSON quotes "".
  4. Click 'Generate New' or copy the entire batch to your clipboard with a single click.
  5. Download your batch directly as a plaintext .txt file or formatted JSON array.

Worked Examples

Example 1: Generating Primary Keys for Distributed Microservices

Worked Example

Replacing auto-incrementing database sequence IDs with non-guessable identifiers to prevent ID enumeration attacks across multi-tenant APIs.

Input Payload

Version: UUID v4 | Count: 3 | Hyphens: Yes

Output / Result

c56a4180-65aa-42ec-a945-5fd21dec0538
9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d
1b9d6bcd-bbfd-4b2d-9b5d-ab8dfbbd4bed

Why this happens: Generates globally unique identifiers without requiring a round-trip to a centralized relational database sequence generator.

Example 2: Optimizing PostgreSQL Clustered Index with UUID v7

Worked Example

Inserting millions of audit events per day into a PostgreSQL or MySQL table without suffering B-Tree page splits caused by random UUID v4 values.

Input Payload

Version: UUID v7 (Time-Ordered) | Count: 2

Output / Result

018f3a5e-88c2-7000-84a1-872f9024f923
018f3a5e-88c3-7000-94b2-a43b8192e441

Why this happens: The first 48 bits contain monotonically increasing millisecond timestamps, ensuring new records append to the right edge of B-Tree database pages, reducing cache evictions and write amplification.

Example 3: Bulk Generating Mock Test Fixtures for Seed Scripts

Worked Example

Exporting 25 quoted UUIDs to seed a test database suite in Prisma or Drizzle ORM.

Input Payload

Version: UUID v4 | Count: 25 | Quotes: Yes | Format: JSON

Output / Result

[
  "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
  "6ba7b811-9dad-11d1-80b4-00c04fd430c8"
]

Why this happens: Instantly exports a clean, importable JSON array of valid RFC-compliant mock identifiers.

Edge Cases & Failure Modes

UUID v4 Collision Probability

Generating 103 trillion UUID v4 values yields only a 1-in-a-billion chance of collision. However, using Math.random() instead of crypto.getRandomValues() compromises entropy and introduces collisions.

Handling: Our generator exclusively calls browser Web Crypto CSPRNG APIs (window.crypto.randomUUID and crypto.getRandomValues), guaranteeing cryptographic entropy.

UUID v7 Sub-Millisecond Sorting Ambiguity

When generating multiple UUID v7 records within the exact same millisecond, the timestamp bits are identical.

Handling: RFC 9562 specifies that sub-millisecond sequence bits or cryptographically random bits fill the remaining 74 bits, maintaining uniqueness even during high-throughput bursts.

Database Column Type Sizing (UUID vs CHAR(36))

Storing UUIDs as 36-character text (CHAR(36)) consumes 4x more disk and memory bandwidth than native 16-byte binary UUID types.

Handling: Always configure database columns with native UUID types (e.g. `UUID` in PostgreSQL, `BINARY(16)` in MySQL) to conserve RAM and index page density.

Privacy & Local Execution Guarantee

All UUID generation occurs strictly within your browser using the local cryptographically secure pseudorandom number generator (CSPRNG) via window.crypto.randomUUID() and crypto.getRandomValues(). No generated keys, seeds, or system parameters are transmitted across the network.

Frequently Asked Questions

What is the difference between UUID v4 and UUID v7?

UUID v4 is entirely randomized (122 random bits). UUID v7 embeds a 48-bit Unix millisecond timestamp at the beginning, followed by random bits. This makes UUID v7 time-ordered, drastically improving database index write performance.

Is UUID identical to GUID?

Yes. GUID (Globally Unique Identifier) is Microsoft's implementation of the RFC 4122 UUID standard. Functionally and structurally, a GUID and a UUID are identical 128-bit identifiers.

Can anyone deduce when a UUID v7 was created?

Yes. Because UUID v7 embeds a Unix millisecond timestamp in the first 48 bits, anyone inspecting the UUID can extract the precise creation date and time. If timestamp privacy is required, use UUID v4 instead.

Are these UUIDs safe for security tokens and session IDs?

While UUID v4 has 122 bits of cryptographic randomness and is difficult to guess, purpose-built authentication tokens (such as 256-bit cryptographically signed session tokens or PASETOs) provide stronger security margins.

Are generated UUIDs stored or tracked by Palmate Solutions?

No. All generation executes inside your browser's local JavaScript engine via the Web Crypto API. Nothing is sent over the network.

Next step

Need this wired into a real system?

Estimators and converters help you think. Delivery still needs contracts, environments, and an owner.