Generate cryptographically random UUID v4 instantly — single or bulk up to 100. Copy or download as .txt. 100% client-side, nothing leaves your browser.
// updated April 2026UUID (Universally Unique Identifier) v4 uses random numbers to ensure uniqueness. With 122 random bits, the probability of collision is astronomically low — you'd need to generate 1 billion UUIDs per second for 85 years to have a 50% chance of a single collision.
Common uses:
A UUID (Universally Unique Identifier) is a 128-bit identifier standardised as RFC 4122. It is represented as 32 hexadecimal characters in the format xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx — always 36 characters including the four hyphens.
UUIDs are designed to be generated independently by any system, at any time, without coordination — and still be unique across the entire world. This makes them ideal for distributed systems, databases, and APIs where a central ID-issuing authority is impractical.
There are multiple UUID versions, each generated differently. Here's when to use each:
| Version | How generated | Sortable | Best for |
|---|---|---|---|
| v1 | Timestamp + MAC address | Yes | Time-ordered logs, legacy systems. Exposes MAC address — privacy risk. |
| v3 | MD5 hash of namespace + name | No | Deterministic IDs from a known name. Deprecated — use v5 instead. |
| v4 | Fully random (122 bits) | No | Most use cases — databases, APIs, tokens. Private and collision-resistant. |
| v5 | SHA-1 hash of namespace + name | No | Reproducible IDs from the same input (e.g. URL → UUID). |
| v7 | Unix timestamp + random | Yes | Modern replacement for v1. Time-sortable without exposing MAC address. |
This tool generates UUID v4 — the most widely supported version, used by default in PostgreSQL, MySQL, MongoDB, and all major languages.
Need UUIDs in your project rather than via the browser? Here are the one-liners for every common language:
// Browser and Node.js 19+ (no library needed) const id = crypto.randomUUID(); // → "110e8400-e29b-41d4-a716-446655440000" // Node.js (older versions) const { v4: uuidv4 } = require('uuid'); const id = uuidv4();
import uuid # UUID v4 with hyphens id = str(uuid.uuid4()) # → "550e8400-e29b-41d4-a716-446655440000" # UUID v4 without hyphens (32 hex chars) id_clean = uuid.uuid4().hex
# macOS uuidgen | tr '[:upper:]' '[:lower:]' # Linux cat /proc/sys/kernel/random/uuid
-- Enable extension once CREATE EXTENSION IF NOT EXISTS "pgcrypto"; -- Generate UUID v4 SELECT gen_random_uuid(); -- Use as default primary key CREATE TABLE users ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), email TEXT NOT NULL );
/users/550e8400-e29b-41d4-a716-446655440000) don't expose sequential information to attackers.If sort order matters (e.g. for database index performance or event ordering), consider UUID v7 or ULID instead — both are time-sortable.
UUID v4 — 36 chars, universally supported, random. Best for databases and APIs where compatibility matters.
ULID — 26 chars, sortable by time, URL-safe. Better for event logs and time-ordered records.
NanoID — customizable length, URL-safe, smaller. Good for short IDs in URLs and filenames.
This tool uses crypto.randomUUID() — the same cryptographically secure API used in production applications. Your UUIDs are generated entirely in your browser. Nothing is sent to any server, logged, or stored.
UUID v4 is safe to expose in URLs and APIs — it reveals nothing about the generation time, host machine, or user.
crypto.randomUUID() natively — no library needed. It returns a v4 UUID string like "110e8400-e29b-41d4-a716-446655440000". This tool uses exactly that API.uuid module: import uuid; str(uuid.uuid4()). This generates a random v4 UUID. For a UUID without hyphens use uuid.uuid4().hex.