NIP-05 Checker
Paste an identifier like name@domain and find out whether it really resolves to the right public key. When it does not, this tells you what to fix.
NIP-05 Checker
Verify NIP-05 identifiers (like user@domain.com). These provide human-readable names on Nostr.
Part of the free Nostr tools collection.
What NIP-05 is
NIP-05 turns an unreadable Nostr public key into a human-readable address like
alice@example.com. It works through a small JSON file
published on the domain. Clients fetch that file, find your name in it and check
that the listed key matches your profile, and then the identifier shows up as
verified next to your name. That is the whole mechanism. No registry, no
application process, just a file sitting on a web server. The
NIP-05 identity guide
explains it end to end.
Common failures this catches
"Unverified" almost never means your key is wrong. It means the file serving your mapping has one of a handful of well-known problems:
-
File missing or at the wrong path
Clients look for the mapping at https://your-domain/.well-known/nostr.json. If the file lives anywhere else, or the server answers with a 404 or a redirect, verification fails everywhere.
-
Missing CORS header
The file must be served with Access-Control-Allow-Origin: * or browsers refuse to read it. Native apps often fetch it without that restriction, which is why an identifier can look fine in one client and unverified in a web client.
-
Name missing from the file
The "names" object must contain your exact name, and NIP-05 names are lowercase. A typo, a capital letter, or an entry that was never added all produce the same "not found" result.
-
npub where hex should be
The classic hand-editing mistake: the value must be your public key as 64 hexadecimal characters, not the npub1... form. The file can load perfectly and still fail verification in clients because of this.
-
Broken JSON
A trailing comma or a missing quote makes the whole file unparseable. If the checker reports a JSON error, run the file through any JSON validator to find the exact character.
Don't have a NIP-05 address yet?
Setting one up takes a few minutes with a provider, or one small file if you own a domain. The guide covers both routes, with the exact JSON format and the hex-vs-npub detail that trips most people.
Set up NIP-05 from scratchFrequently asked questions
Troubleshooting Why does my NIP-05 show as unverified in my client?
Why does my NIP-05 show as unverified in my client?
Almost always one of four things: the nostr.json file is missing or not at the required path (https://your-domain/.well-known/nostr.json); the server does not send the CORS header (Access-Control-Allow-Origin: *) that web-based clients need to read it; your name is missing from the "names" object in the file, and note that NIP-05 names must be lowercase; or the file maps your name to an npub1... string instead of the 64-character hex public key the spec requires. Run the checker above to narrow it down, then follow the NIP-05 guide for the exact fix.
Basics Does NIP-05 give me a checkmark like Twitter?
Does NIP-05 give me a checkmark like Twitter?
No, and this is the most common misunderstanding about it. Some clients do render a check-style icon next to a verified NIP-05, but all it proves is that whoever controls that domain agreed to map that name to your public key. Nobody reviews the account behind it, and anyone who owns a domain can hand out identifiers under it. So treat NIP-05 as a readable address, much closer to an email address than to a badge of trustworthiness.
Basics Do I need my own domain?
Do I need my own domain?
No. Plenty of services will host your identifier under their domain, often free or for a small fee, and some clients offer one during onboarding. Your own domain is the more self-sovereign option, since you control the mapping and can move hosts without changing your address. But a provider identifier verifies in exactly the same way. The NIP-05 guide walks through both routes.
Want the full picture first? Read the NIP-05 identity guide.