This is a very basic guide, just to understand what's needed to set it up.
If you have any questions you can find me at https://nostr.com/8355095016fddbe31fcf1453b26f613553e9758cf2263e190eac8fd96a3d3de9
- a webserver with a domain under your control
- nostr account with private and public key setup on https://nostr.com, preferably set up with nos2x: https://github.com/fiatjaf/nos2x
Create a file that resolves to <domain>/.well-known/nostr.json, and fill it out like this (enter the name you want to use, and input your own public key, make sure its the HEX-key):
{
"names": {
"<name>": "<pubkey>"
}
}
For branle to be able to execute the file, you have to allow CORS on your webserver.
On nginx you just have to put this in the config:
add_header 'Access-Control-Allow-Origin' '*';
In branle, go to settings and fill inn your <name>@<your topdomain> in the "NIP-05 Identifier" field.
Go you your profile. If everything worked out, you will see a checkmark next to your name (based on your domain).
- NIP-05 Creation Tool: Use this to generate the .well-known/nostr.json file, and also a .htaccess file for Apache if you don't use Nginx
- CORS: Make sure CORS is correctly set up. You can test it here: https://www.test-cors.org/
- Pub-key: Only use the HEX-key. Npub-key won't work.
If you're going to tie a label like an email address to a pubkey, why not just use the DNS to create the linkage as well (I've been having a similar conversation with the lnURL people) - with well-known file paths, you need access to the webserver, the webserver may not be the same host as the hostname component of the email identifier, not to mention, what do do you do when you want to switch servers but retain the same identifier?
You could use scoped TXT records like _nip05 to signal your pubkey:
Given test@example.com:
The first record _nip05 would just be a straight reference to the pubkey.
There could also be a reference type for the well-known file URI, but you get the added flexibility that the file doesn't have to reside on the same webserver as example.com.
See: andrerfneves/lightning-address#27 (comment)
And I also wrote this article:
https://bitcoinmagazine.com/technical/simplifying-bitcoin-addresses-dns