Because I couldn't find a detailed article on the Nostr protocol network in the Chinese section, I am preparing to write a series myself. This is the fourth article in this series, which will discuss the configuration method of the Nip-05 domain in the Nostr network and the NIP standard.
In the second article, we talked about how to use social applications when beginners enter the Nostr network. In order to let everyone use it first and feel the atmosphere of the Nostr network in practical operations, and also reduce the entry barrier for everyone, we only briefly mentioned NIP-05 (personal homepage information settings). Today, we will specifically talk about what NIP-05 is and how to set it up, and also provide a brief introduction to the NIP standard.
NIP-05#
What is NIP-05?#
In simple terms, NIP-05 is an ID name that is easier to recognize than a public key set for each user.
We know that in the Nostr network, the ID of each user is a long string of irregular text, which is the public key. If I want to find user A in the Nostr network, I have to search for A's public key to find them. However, the public key is too long, inconvenient to save and propagate, and also difficult for humans to identify. Therefore, a solution appeared-to bind a more human-readable name to the public key.
In professional terms, NIP-05 allows Nostr users to map their public keys to DNS-based internet identifiers. The verification mechanism is similar to Google's requirement for using DNS records to verify ownership of a domain. The main benefit of verification is that it allows Nostr users to be identified by human-readable names instead of long and hard-to-remember public keys. This allows verified Nostr users to easily share their identities with others.
NIP-05 Configuration Method#
To have a NIP-05 domain name, we can obtain it in two ways.
-
In the application, find the NIP-05 setting box (usually located on the edit page of the personal homepage), and then purchase the domain name provided by the official (if not purchased).
-
If you have your own domain name, you can verify it and bind it to the Nostr network. The following mainly introduces this method.
For example, my domain name is www.hoodrh.top, and my personal website is built using Hexo. So I will add "well-known/**" under the include section in the _config.yml file of Hexo, and then create a folder named "well-known" in the source folder (the official says to create ".well-known", but the dot file on Mac system is reserved for the system), and then create a "nostr.json" file in the "well-known" folder. The content of the JS file is:
{
"names": {
"hoodrh": //your own Nostr network username
"npub1e9euzeaeyten7926t2ecmuxkv3l55vefz48jdlsqgcjzwnvykfusmj820c" //your public key ID
}
}
Then save the file and upload it to Hexo. Then I got the NIP-05 address: [email protected], which is "username@your own domain name".
Can NIP-05 be not set?#
Of course, if you don't have your own domain name and don't want to buy one, there is no need to set it at all. Currently, the purpose of setting NIP-05 is to display an authenticated identifier. Basically, daily operations such as following friends can be achieved by copying the public key. I believe that with the enhancement of various application-side search technologies, it will also be possible to support searching for users by username. (I want a purple badge certification ✅!
NIP Standard#
What is the NIP standard?#
NIP is a series of protocol interface standards that uniformly define the interface elements and details used in various common functions. This is beneficial for establishing channels between different applications on the entire network, so that the content sent by a user can be recognized and propagated among all applications on the Nostr network.
Detailed Classification Introduction of NIP#
Here is a brief introduction to the Nostr functions supported by different NIP standards. For more technical details, please refer to here.
-
NIP-01 - Basic protocol process description, used for communication between clients and relays. It involves the exchange of events, which are objects that contain various information such as unique IDs, timestamps, and labels.
-
NIP-02 - Contact list and nickname
-
NIP-03 - OpenTimestamps proof of events [not planned]
-
NIP-04 - Encrypted private messages
-
NIP-05 - Mapping Nostr keys to DNS-based internet identifiers
-
NIP-06 - Deriving basic keys from mnemonic seed phrases
-
NIP-07 - window.nostr functionality for network browsers [not applicable]
-
NIP-08 - Handling mentions
-
NIP-09 - Event deletion [partial]
-
NIP-10 - Convention for using e and p tags in text events by clients
-
NIP-11 - Relay information file
-
NIP-12 - General tag queries
-
NIP-13 - Proof of work
-
NIP-14 - Subject tags in text events
-
NIP-15 - Storage event completion notification
-
NIP-16 - Event processing
-
NIP-19 - bech32 encoded entities
-
NIP-20 - Command results
-
NIP-21 - nostr: URL scheme
-
NIP-22 - created_at limit for events
-
NIP-25 - Reactions
-
NIP-26 - Delegated event signatures
-
NIP-28 - Public chat
-
NIP-33 - Parameterized replaceable events
-
NIP-36 - Sensitive content
-
NIP-40 - Expiring timestamps
-
NIP-42 - Client-to-relay authentication
-
NIP-50 - Keyword filters
-
NIP-56 - Reports
-
NIP-65 - Relay list metadata
Alright, that's it for today. See you tomorrow. Have fun in the Nostr network.