nearnull

UUID Validator

Validate any UUID and inspect its version and variant instantly. Runs entirely in your browser — nothing is sent to any server.

Results

What makes a UUID valid?

A UUID is a 128-bit value normally written as 32 hexadecimal digits grouped 8-4-4-4-12 (e.g. 123e4567-e89b-12d3-a456-426614174000). This tool checks that a string decodes to exactly 16 bytes of hex data — accepting the standard hyphenated form, no hyphens, surrounding braces {}, and any mix of upper/lowercase — then reads the version and variant bits embedded in those bytes to tell you not just whether it's well-formed, but what kind of UUID it is. Paste a whole list, one UUID per line, to validate all of them at once.

UUID Variants

RFC 9562 / RFC 4122

The standard variant used by virtually every modern UUID, identified by the two most significant bits of byte 8 being 10. This is the only variant where the version nibble (v1–v8) is meaningful — it's what this app's UUID Generator produces.

StandardVersion-bearing

NCS (backward compatibility)

The oldest variant, reserved for backward compatibility with the original Apollo Network Computing System UUIDs that predate RFC 4122. Identified by the most significant bit of byte 8 being 0. Extremely rare to see in the wild today.

LegacyRare

Microsoft (reserved)

Reserved for backward compatibility with early Microsoft COM/DCE GUIDs, which stored some fields in a different (mixed-endian) byte order on the wire. Identified by the top three bits of byte 8 being 110.

LegacyCOM/DCE

Reserved for future use

The remaining bit pattern (top three bits of byte 8 equal to 111), reserved by the spec for possible future definition. A UUID reporting this variant today is either intentionally custom or malformed.

ReservedUnusual

Examples

Check whether a string is a well-formed UUID natively, no libraries required in most languages:

JavaScript
/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(str)
Python
import uuid
try:
    uuid.UUID(str)
except ValueError:
    pass
Java
java.util.UUID.fromString(str) // throws IllegalArgumentException
C#
Guid.TryParse(str, out var guid)
Go
import "github.com/google/uuid"

_, err := uuid.Parse(str)
PHP
Ramsey\Uuid\Uuid::isValid($str)
Ruby
str =~ /\A[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\z/i

Use Cases

Validating user input

Reject malformed UUIDs in API request bodies, path params, or form fields before they ever reach your database or a downstream service.

Data migration audits

Scan values from a legacy dataset or CSV export to catch malformed IDs, stray whitespace, or old Microsoft-style GUIDs before importing them into a new system.

Catching unexpected UUID versions

If your system is only supposed to receive v4 or v7 identifiers, use the version breakdown to catch a v1 UUID slipping through — v1 embeds a timestamp and node data that v4/v7 don't.

Debugging support tickets and logs

Quickly confirm whether an ID copied from a log line, error report, or support ticket is actually a valid UUID before chasing what might be a formatting bug instead.

Frequently Asked Questions

Is a UUID's version the same as its variant?
No. The variant (2-3 bits in byte 8) identifies the overall layout family a UUID follows — RFC 9562, the legacy NCS scheme, or the reserved Microsoft/future ranges. The version (a 4-bit nibble in byte 7, values 1–8) only exists within the RFC 9562 variant, and tells you how that specific UUID was generated (random, timestamp-based, name-based, etc.).
Is the Nil UUID (00000000-0000-0000-0000-000000000000) valid?
Yes — it's a well-formed UUID explicitly defined by the spec to represent 'no value', similar to a null pointer. This tool flags it separately since treating it as a normal random or generated ID is a common source of bugs.
Does this tool accept UUIDs without hyphens or wrapped in braces?
Yes. It normalizes the input first — stripping braces {} and hyphens, and ignoring case — so 123e4567e89b12d3a456426614174000 and {123E4567-E89B-12D3-A456-426614174000} both validate the same as the standard hyphenated lowercase form.
Why does this tool detect NCS and Microsoft variants if it can't generate them?
You'll still encounter them in the wild — old Microsoft COM/DCE GUIDs and, rarely, legacy NCS identifiers. Recognizing the variant helps you understand why a UUID from an old system might not decode the way you expect, even though it's technically well-formed.
Is my UUID sent to a server when I validate it?
No. All parsing and validation happens locally in your browser with plain JavaScript. Nothing you type here is transmitted or stored anywhere.
Can I validate multiple UUIDs at once?
Yes — paste as many as you want into the box, one per line. Each line is validated independently and shows its own status, version and variant; blank lines are ignored.