Intermediate · 1 of 6
Get Your Human-Readable Identity
Set up NIP-05 for a professional, easy-to-share Nostr identifier like you@domain.com
What is NIP-05?
NIP-05 (Nostr Implementation Possibility #5) lets you have a human-readable identifier like you@domain.com instead of a long string of random characters.
The Problem It Solves
Before NIP-05
- Follow: npub1xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
- "Hey, follow me! I'm npub1abc123…xyz789"
After NIP-05
- Follow: alice@example.com
- "Hey, follow me! I'm alice@example.com"
What You Get
An address a person can pass on. “Find me at bob@nostrplebs.com” survives being said out loud at a gig, printed on a card, or read at the end of a podcast episode. It looks chosen rather than generated, most clients let people search for you by it, and many of them put a small check next to it. That check is worth understanding before you lean on it, and the Trust section below explains exactly what it does and does not prove.
But Remember…
⚠️ NIP-05 is optional. You can use Nostr perfectly well with just your npub.
The NIP-05 identifier is a convenience, not a requirement. Your npub is your real identity on Nostr.
Why Get a NIP-05?
Easier to Share
At a party:
"What's your Nostr?"
Without NIP-05:
"Uh... n-p-u-b-one-x-x-x... let me find it in my phone"
With NIP-05:
"Just alice@example.com"
Professional Appearance
- Businesses:
support@yourcompany.com - Creators:
artist@yourdomain.com - Developers:
dev@opensourceproject.com
Trust & Authenticity
Many clients show a ✓ badge for NIP-05 users:
Alice
alice@example.com
Bitcoin educator
That badge proves less than it looks like it proves. All it says is that the
domain in the address hands out that particular key for that particular name.
Everything else depends on the domain. alice@alice.dev carries weight because
Alice owns alice.dev and nobody else can publish anything there. alice@ an
open free provider only means the name was unclaimed when somebody asked for
it, and an impostor who signs up for alicee@ the same provider gets an
identical check next to their name.
So the question to ask is which domain the badge points at. If you recognise the domain as the person’s own, the check confirms the key belongs to them. If the domain is one you have never heard of, the check tells you nothing about who is behind the account.
Do You Need One?
No. You can use Nostr perfectly fine without it.
But… it’s highly recommended if you’re:
- Building a personal brand
- Creating content
- Running a business
- Serious about Nostr long-term
- Tired of reading 63-character strings
Not Centralization!
It is a fair worry. If your name lives on somebody else’s domain, have you handed them your identity? You have not. The address is a pointer; the npub is what people actually follow. You can hold several addresses at once, let one lapse, or move to your own domain later, and your followers stay where they are, because what they followed was the key. Lose the address altogether and you lose a convenience. Your account, your posts and your followers are untouched.
Free Options
Several services hand out NIP-05 addresses for nothing, which makes them a sensible place to start. You are borrowing someone else’s domain, so the address is theirs to withdraw, but nothing about your account depends on it.
NostrCheck
A free, community-run option that also gives you media hosting and a handful of other Nostr tools alongside the address.
How to get one:
- Visit nostrcheck.me
- Create account
- Set your NIP-05
- Verify your npub
Pros:
- Free
- Additional tools included
Other Free Providers
- bitcoiner.social: Bitcoin-focused community
- getalby.com: If you use Alby wallet
- stacker.news: If you already post on Stacker News
Free providers may have waiting lists or verification requirements. Be patient!
Free providers can change terms or shut down. If you become serious about Nostr, consider upgrading to a paid option or self-hosting.
Paid Options
NostrPlebs
One of the most popular paid NIP-05 providers. Pricing is based on username length and paid in Bitcoin satoshis (sats).
Cost:
| Username Length | Price (sats/year) |
|---|---|
| 2 characters | 65,000 sats |
| 3 characters | 45,000 sats |
| 4 characters | 22,500 sats |
| 5+ characters | 12,500 sats |
Note: Some special names may have increased prices. Sats convert to whatever Bitcoin is worth today, so check a converter for the current figure. As this was written, 12,500 sats came to roughly ten dollars.
Domains Available:
nostrplebs.com- Basic membershipnostriches.net- Basic membershipnostr.fan- Basic membershipnostrich.zone- Basic membershipnostrpurple.com- Premium membership
What’s Included:
- Human-readable NIP-05 identifier
- Lightning Address support (receive sats to your identifier)
- Email forwarding address
- Access to Nostr Plebs relay
- Verified checkmark badge in clients
- Directory listing to help others find you
Setup:
- Visit nostrplebs.com
- Choose your preferred domain
- Enter your desired username
- Pay the Lightning invoice
- Add your npub via the management portal
- Done!
Other Providers
- Primal - a verified
@primal.netaddress is part of Primal’s paid Premium plan, convenient if Primal is already the app you post from - iris.to - registering a username there gives you
name@iris.to; check the site for current terms
What you get:
- Professional appearance
- Better uptime guarantees
- Support if issues arise
- Often bundled with other services
| Method | Cost | Difficulty | Control | Best For |
|---|---|---|---|---|
| Free Provider | $0 | Easy | Low | Beginners |
| Paid Provider | ~$15/yr | Easy | Medium | Serious Users |
| Self-hosted | Domain cost | Advanced | High | Tech-savvy |
Using Your Own Domain
For complete control and professionalism, use your own domain.
Step 1: Buy a Domain
Any domain registrar works:
Cost: Usually $10-15/year
Owning the domain is only half of it. You also need somewhere that serves files
for that domain, which in practice means the web hosting your site already runs
on. Some site builders (Squarespace, Wix, Substack and similar) will not let
you place a file in a folder named .well-known, and there is no way around it
from inside their editor. If yours is one of those, take a free or paid
provider instead; the address works exactly the same way for the people
reading you.
Step 2: Create the nostr.json File
Host a file at https://yourdomain.com/.well-known/nostr.json:
{
"names": {
"alice": "b0635d6a9851d3aed0cd6c495b282167acf761729078d975fc341b22650b07b9"
}
}
Your identifier becomes: alice@yourdomain.com
Use your hex public key, not your npub
NIP-05 requires the raw lowercase-hex form of your public key. If you paste
npub1... into nostr.json, clients will fail to verify you. They fail
silently too, with no message explaining why.
Some clients show the hex form somewhere in their key settings. If yours only
ever shows you npub1..., paste that into the checker further down this page,
which displays both forms side by side.
No DNS records are involved. NIP-05 verification is an ordinary HTTPS
request to /.well-known/nostr.json. You do not need a TXT record, a CNAME, or
any DNS entry beyond whatever already points your domain at your web host.
Two server settings decide whether web clients can read that file at all, and
both fail quietly when they are wrong. The file has to be sent with the header
Access-Control-Allow-Origin: *, which is what lets a client running in a
browser read it; on most hosts this is one line of configuration, and support
will add it for you if you ask in exactly those words. The address also has to
answer for itself. If yourdomain.com bounces visitors to
www.yourdomain.com, verification breaks, because clients are required to
ignore redirects on this file. Whichever of the two you put in your NIP-05
address, that is the one that must serve the file directly.
Example Setup Walkthrough
Scenario: You own alice.dev
- Create the JSON file:
{
"names": {
"alice": "b0635d6a9851d3aed0cd6c495b282167acf761729078d975fc341b22650b07b9"
}
}
- Upload to your server:
https://alice.dev/.well-known/nostr.json
-
Verify it works: Open in browser:
https://alice.dev/.well-known/nostr.json -
Add to your Nostr profile: In your client: Settings → Profile → NIP-05 →
alice@alice.dev
Testing Your NIP-05
Check Your Identifier
Use our tool below or visit your identifier URL:
NIP-05 Checker
Verify NIP-05 identifiers (like user@domain.com). These provide human-readable names on Nostr.
In Your Client
Most clients show NIP-05 status:
Damus/Amethyst:
- Settings → Profile → NIP-05 field
- Shows ✓ when set up correctly
Primal:
- Profile shows NIP-05 badge
- Click badge to see details
Troubleshooting Common Issues
Start with the checker above. Paste you@yourdomain.com into it and it will
tell you what a client sees when it looks you up. The lists below cover what to
do about the answers it gives.
“NIP-05 not working”
- Check the key format first.
nostr.jsonmust contain your public key in lowercase hex: 64 characters, nonpub1prefix. Annpubhere is the single most common cause of a NIP-05 that never verifies. - Ensure the JSON is valid (use a JSON validator)
- Check that the file is accessible at the exact URL
“File not found”
- Make sure
.well-knownfolder is created - Check your server serves hidden directories
- Verify the path:
/.well-known/nostr.json
“Domain not resolving”
- DNS changes can take up to 24 hours
- Clear your DNS cache
- Optional, if you are comfortable at a terminal:
dig yourdomain.comshows whether the name resolves yet
“Client doesn’t recognize it”
- Some clients cache NIP-05 lookup results
- Try logging out and back in
- Wait a few minutes for propagation
“Verification Failed” Error
Possible causes:
- JSON syntax error - Check for missing quotes or commas
- Wrong file location - Must be at
/.well-known/nostr.json - Caching - Wait 10-15 minutes and retry
- HTTPS required - Must be served over HTTPS
- Missing CORS header - Without
Access-Control-Allow-Origin: *on that file, clients running in a browser cannot read it, even though the file opens fine for you - A redirect in the way - If the address bounces from
yourdomain.comtowww.yourdomain.comor the other way round, clients ignore the redirect and give up
Fix:
- Validate JSON at jsonlint.com
- Check file is at exact path
- Clear client cache
- Ensure SSL certificate is valid
- Ask your host to send
Access-Control-Allow-Origin: *for that file - Put the hostname that serves the file without redirecting into your NIP-05 address
“Not Found” Error
Possible causes:
- File not uploaded to correct location
- Server blocks dot-directories
- Wrong domain
Fix:
- Verify file exists at exact URL
- Check
.htaccessor server config allows dot-directories - Confirm you’re using correct domain
Provider-Specific Issues
NostrPlebs:
- Log into the management portal and check that the npub saved there matches yours exactly
- Ensure npub is correct (not nsec!)
- Contact support if stuck
Self-hosted:
- Run the checker above; it tells you whether the file is reachable and whether the key inside it is yours
- Ensure file permissions allow reading
- Check your server logs for errors, if you have access to them
Never share your nsec (private key) when setting up NIP-05. Only your npub (public key) is needed.
Advanced Tips
Multiple Identities
You can have multiple NIP-05 addresses:
personal@yourdomain.com
work@yourdomain.com
blog@yourdomain.com
All point to the same npub, or different ones.
Subdomains
Use subdomains for organization:
alice@team.yourdomain.com
alice@community.yourdomain.com
Hosting Multiple Users
You can host multiple NIP-05 identifiers on one domain:
{
"names": {
"alice": "b0635d6a9851d3aed0cd6c495b282167acf761729078d975fc341b22650b07b9",
"bob": "3bf0c63fcb93463407af97a5e5ee64fa883d107ef9e558472c4eb9aaaefa459d",
"carol": "82341f882b6eabcd2ba7f1ef90aad961cf074af15b9ef44a09f9d2a8fbfbe6a2"
}
}
Verifying Your Setup
Method 1: Your Client
- Add the NIP-05 to your profile
- Save changes
- Look for a checkmark ✓ or “verified” badge
- May take a few minutes to propagate
Method 2: Nostr Explorer
- Open
njump.me/yourname@yourdomain.comin a browser - If your profile comes up, your NIP-05 resolves to your key
Method 3: Direct Test (Command Line, optional)
curl https://yourdomain.com/.well-known/nostr.json
What Success Looks Like:
- ✅ Client shows verification badge
- ✅ Others can find you by your NIP-05
- ✅ Your profile displays your human-readable name
Privacy Considerations
A NIP-05 address ties your key to a domain, and a domain is something anyone can look up. If it is registered in your own name, or the site sitting on it already carries your bio and your photographs, the address quietly connects a pseudonymous account to the rest of your life. Sometimes that is the whole point. When it is not, keep the pseudonymous account on a free provider’s domain and save your own domain for the work you are happy to put your name to.
Test Your NIP-05 Knowledge
Think you understand NIP-05? Take the quiz:
NIP-05 Purpose
0/5 answered
Resources
- NIP-05 Specification
- NostrPlebs - Paid NIP-05
- NostrCheck - Free NIP-05 + tools
- njump.me - look up any profile or NIP-05 address straight from a browser
Keep reading
- Check any NIP-05 address: verify a
name@domainresolves to the key it claims - Quickstart: publish your first post, if you do not have an account yet