Nostr Verification

The nostor protocol introduces a verification technique with nip-05. This allows clients to post a metadata element on events of kind 0. This metadata uses key nip05 and a value of an internet identifier of local@domain.

Any client can then make a request to https://<domain>/.well-known/nostr.json?name=<local>. The response maps a set of names to public keys used in other nostr events. Clients can indicate to users that the public key is attributed to the given domain. This is useful to associate a public key to a known identity. For example you can find mine at [https://ben.campbells.io/.well-known/nostr.json](https://ben.campbells.io/.well-known/nostr.json).

This file is a JSON object with two properties. The first is the “names” property which maps a user name to a public key. This key must be provided in a hexidecimal format. If you have a bech32 key you can use https://nostrcheck.me/converter/ to convert your idnetifer into an hex format.

In addition, you can provide relays to associate with the public key. This is useful for clients to use a identifier like benc@ben.campbells.io to determine which relays to pull events from.

When working this out for myself I found that Hugo did not do well mapping the query parameter to a specific file. I needed to just create a static/.well-known/nostr.json file omitting the query parameter. Hugo and AWS amplify will strip the query param and serve the static list of verifications.

Give me a follow at benc@ben.campbell.io or npub193q9lgp34868wzj2amqxkj2ely5kn4zkq5j7dp9mt94402spsdcqcz7fh8 if you participate in nostr.