⟳ Generator
UUID v4 UUID v1 UUID v5 UUID v7 GUID Nil UUID
Bulk Generator UUID Validator How It Works FAQ Free Tools Contact
⬜ Nil UUID · All-Zero Identifier

Nil UUID Reference

The Nil UUID is a special UUID with all 128 bits set to zero. It is defined in RFC 9562 and used as a null or empty identifier in applications and APIs.

⊞ Bulk
Your NIL UUID — Click to copy
⊞ Bulk Generate ✓ Validate
Nil UUID Reference — Complete Guide
The Nil UUID is a special-purpose UUID defined in RFC 9562 where all 128 bits are set to zero, resulting in the identifier 00000000-0000-0000-0000-000000000000. It is not randomly generated — it is always exactly the same value. The Nil UUID is conceptually similar to null or None in programming languages: it represents the absence of a meaningful UUID. Unlike other UUID versions, the Nil UUID has no version digit and no variant bits set according to the normal RFC pattern.
RFC 9562 Definition: The Nil UUID is 00000000-0000-0000-0000-000000000000 — all 128 bits are zero. It does not follow the version/variant bit pattern of other UUIDs (the version field is 0 and the variant bits are 00). RFC 9562 defines it explicitly as a special case and notes that it should not be confused with a randomly generated UUID.
Use the Nil UUID as a default or initial value before a real UUID is assigned, as a sentinel value in APIs to indicate "no ID" or "not set", as a placeholder in data structures that require a UUID field but may not have a valid value yet, for testing and mocking where a predictable UUID value is needed, and in protocol designs where a zero UUID carries special meaning. The Nil UUID should never be used as a real entity identifier — it is always a placeholder.
  • ✅ Defined by RFC 9562
  • ✅ Consistent — always the same value
  • ✅ Native support in most languages (Guid.Empty, uuid.UUID(int=0))
  • ✅ Useful as null/default placeholder
  • ⚠️ Must never be used as a real entity identifier
  • ⚠️ May cause confusion if misused as a regular UUID
  • ⚠️ Not a randomly generated UUID
FieldBitsDescription
All fields128 bitsAll set to binary 0 — displayed as hex 0s
Version4 bitsAll zero — not a normal UUID version
Variant2 bitsAll zero — not RFC 9562 variant
ValueFixed00000000-0000-0000-0000-000000000000
Any Language
// The Nil UUID is always the same value
const nilUUID = '00000000-0000-0000-0000-000000000000';

# Python
import uuid
nil = uuid.UUID(int=0)
print(nil)  # 00000000-0000-0000-0000-000000000000

// Java
UUID nil = new UUID(0L, 0L);

// C#
Guid nil = Guid.Empty;
SQL
-- PostgreSQL
SELECT '00000000-0000-0000-0000-000000000000'::uuid;

-- SQL Server
SELECT CAST('00000000-0000-0000-0000-000000000000' AS UNIQUEIDENTIFIER);
-- Or use the empty GUID constant
SELECT '00000000-0000-0000-0000-000000000000';
What is the Nil UUID used for?
The Nil UUID is used as a placeholder or null value in systems that require a UUID field but may not have a meaningful value. Common uses include default values in database columns before a real ID is assigned, API responses indicating "no associated entity", and sentinel values in data structures.
Is the Nil UUID the same as UUID version 0?
No. The Nil UUID is a special case defined in RFC 9562 — it is not "version 0". The version field in a Nil UUID is all zeros, which does not correspond to any regular UUID version. It exists outside the normal UUID version numbering scheme.
How do I check if a UUID is Nil?
Compare the UUID string to the constant "00000000-0000-0000-0000-000000000000" (case-insensitive), or in typed languages: Python — uuid == uuid.UUID(int=0), Java — uuid.equals(new UUID(0L, 0L)), C# — guid == Guid.Empty.
Can I store the Nil UUID in a database UUID column?
Yes. All database UUID/UNIQUEIDENTIFIER column types accept the Nil UUID as a valid value. It is treated like any other UUID for storage purposes — it is only the application layer that gives it special meaning.

Generate NIL UUIDs in Bulk

Need hundreds or thousands of NIL UUIDs? Use our bulk generator — up to 1,000 at once, multiple formats, instant download.