GUID Generator
Generate .NET-style GUIDs in bulk — uppercase {braces}, registry form and copy-ready C# snippets, entirely on this device.
The snippet always uses the hyphenated form, whatever notation is on display.
Press ? for shortcuts
Do it offline:$ [guid]::NewGuid()
How to use it
- Choose a count from 1 to 100,000. One GUID is waiting when the page opens; batches past 10,000 run in a background worker so the tab keeps responding.
- Pick one of the five .NET shapes — hyphens (D), hyphenless (N), braces (B), parens (P) or registry (X) — and set the case. Either change rewrites the values in place; only Regenerate draws new ones.
- Press Regenerate, or Ctrl/Cmd + Enter, for a fresh draw. There is no undo — discarding old values is the point — but your shape and case stay.
- Take one value, the whole list, or a .txt, .csv or .json file. The snippet panel wraps a GUID as a C#, PowerShell or VB literal, and Share encodes only your settings.
GUID is Microsoft's name for a UUID, and this page mints version-4 GUIDs the way .NET and Windows expect to read them: uppercase inside {braces} by default, with the hyphenless, parenthesised and registry (X) shapes a click away. The bytes come from your browser's own cryptographic generator, never a server, and a copy-ready C#, PowerShell or VB literal sits beside whatever you produce.
How it works
Each value is a random version-4 UUID: a cryptographic source fills 122 bits, and six are fixed — the version nibble reads 4, the variant nibble 8, 9, a or b. .NET calls that 128-bit number a GUID and prints it through five ToString() specifiers — D, N, B, P and X — here labelled hyphens, hyphenless, braces, parens and registry. All five are notation; the bytes never move.
The registry (X) shape is the one that trips people. It transcribes the bytes into a C-style hex struct in reading order, so a leading 9b1deb4d stays 9b1deb4d. SQL Server's UNIQUEIDENTIFIER instead reverses the first three groups into little-endian on disk. The X string is text, not that binary layout — a byte you read here is not the byte the database keeps.
Examples
count 1 · braces (B) · UPPERCASE{9B1DEB4D-3B7D-4BAD-9BDD-2B0D7B3DCB6D}The default result — a braced, upper-cased GUID, the shape a Windows registry key wants. Braces and capitals are decoration, not part of the value.
one GUID in all five .NET shapes9B1DEB4D-3B7D-4BAD-9BDD-2B0D7B3DCB6D
9B1DEB4D3B7D4BAD9BDD2B0D7B3DCB6D
{9B1DEB4D-3B7D-4BAD-9BDD-2B0D7B3DCB6D}
(9B1DEB4D-3B7D-4BAD-9BDD-2B0D7B3DCB6D)
{0x9B1DEB4D,0x3B7D,0x4BAD,{0x9B,0xDD,0x2B,0x0D,0x7B,0x3D,0xCB,0x6D}}D, N, B, P and X of one 128-bit value. Line five is the registry (X) struct: its first group is a literal transcription, read as text, never as a database's on-disk byte order.
C# literal · new Guid("…")new Guid("9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d")The snippet always embeds the hyphenated (D) form in lowercase, even while the list above shows braces and capitals. Guid.Parse takes any shape, but D never trips a parser.
count 3 · a fresh random drawd76e3f1a-5b2c-4e0a-9f83-71c6ad2b4e90
0a4c8e21-6f3d-4b57-8c19-e2a7f05b3d64
b83f2c05-9a1e-4d76-a5f2-3c80e6b19d47Three live values in canonical lowercase, before your notation is applied. Being random, they are checked by shape — version 4, valid variant nibble, right length — not byte for byte.
Every example on this page is executed against the same engine that powers the tool, on every build.
Gotchas worth knowing
The all-zero GUID is one you will never draw here
00000000-0000-0000-0000-000000000000 — .NET's Guid.Empty, or default(Guid) — is a legal value meaning "unset". This page emits only random v4s, so it never produces the empty GUID: type that sentinel when you need it, do not generate it.
The pasteable snippet stays hyphenated on purpose
Whatever the list shows, the C#, PowerShell and VB snippets embed the plain hyphenated form. new Guid and [guid] parse braces, parens or the X struct too, but the hyphenated form is the spelling every .NET parser accepts without complaint.
Casing is applied without a locale
The uppercase toggle raises the hex letters with a locale-invariant transform, so output matches on every machine. A naive upper-case on a Turkish-locale system would turn an i into a dotted İ and corrupt a pure-hex value.
Common errors
100,000 is the browser-side cap — for more, script it: PowerShell 1..1000 | ForEach-Object { [guid]::NewGuid() } or call Guid.NewGuid() in a loop- One hundred thousand GUIDs is near where a single tab stops rendering, copying and downloading comfortably, so the tool stops there and points at a platform with no ceiling. Pipe the PowerShell line to a file, or loop Guid.NewGuid() yourself.
Count must be a whole number between 1 and 100,000.- The count field blocks a bad number, so this appears only when a restored permalink or a hand-edited URL smuggles one in. A fraction, negative or zero is rejected rather than rounded, and your current batch stays put.
Secure random generation is unavailable in this context.- Generation needs the browser's secure random API, which exists only in a secure context. The live HTTPS site never hits this; a plain-http intranet mirror can. It refuses rather than fall back to predictable identifiers.
FAQ
What is the registry (X) GUID format?
It is the X specifier of Guid.ToString(), the form in old C and COM headers: a brace-wrapped hex struct like {0x9b1deb4d,0x3b7d,0x4bad,{0x9b,0xdd,...}}. Every digit transcribes the canonical value — not a re-ordered binary view.
Which GUID format does SQL Server or .NET expect on input?
All five. Guid.Parse and SQL Server's UNIQUEIDENTIFIER read hyphenated, braced or bare input and reach the identical value, because the differences are punctuation. Store the hyphenated form; the one trap is the X struct, which is text order, not the little-endian bytes on disk.
Do braces or uppercase change the GUID?
No. Braces, parens and capital letters change the spelling, not the 128-bit number. Hexadecimal ignores case and punctuation carries no data, so {9B1DEB4D-…} and 9b1deb4d-… are one GUID. Compare values without regard to case or wrapping.
Keyboard shortcuts
- ⌘/Ctrl + Enter
- Regenerate — swap the whole list for a fresh draw of GUIDs.
- ⌘/Ctrl + S
- Save the batch as a .txt file (here it downloads rather than saving the web page).
- ⌘/Ctrl + C
- With nothing selected and focus in the tool, copy the whole batch; a text selection copies as usual.
- ⌘/Ctrl + Shift + C
- Copy the whole batch even when a selection is live.
- t
- Step the colour theme (outside text fields; single-key shortcuts can be turned off).
- ? or ⌘/Ctrl + /
- Bring up the in-tool shortcut cheatsheet.
- Esc
- Dismiss whichever dialog is open.