diff options
| author | Francisco Calderón <fjcalderon@gmail.com> | 2024-11-04 15:39:21 -0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-11-04 15:39:21 -0300 |
| commit | 03f3bc39678262ecbd5d870c9da44723023557ff (patch) | |
| tree | e75ecf32d3bc906a8b26314488a1ae90996169c1 /05.md | |
| parent | f72a2f69ed93cf442e83bf9e7e16f6c06da40384 (diff) | |
| parent | 6bcd89c097e97e65dbc95e7c6b7b8348e8dd6b5c (diff) | |
Merge branch 'master' into p2p-nip
Diffstat (limited to '05.md')
| -rw-r--r-- | 05.md | 21 |
1 files changed, 13 insertions, 8 deletions
| @@ -16,12 +16,12 @@ The result should be a JSON document object with a key `"names"` that should the | |||
| 16 | 16 | ||
| 17 | If a client sees an event like this: | 17 | If a client sees an event like this: |
| 18 | 18 | ||
| 19 | ```json | 19 | ```jsonc |
| 20 | { | 20 | { |
| 21 | "pubkey": "b0635d6a9851d3aed0cd6c495b282167acf761729078d975fc341b22650b07b9", | 21 | "pubkey": "b0635d6a9851d3aed0cd6c495b282167acf761729078d975fc341b22650b07b9", |
| 22 | "kind": 0, | 22 | "kind": 0, |
| 23 | "content": "{\"name\": \"bob\", \"nip05\": \"bob@example.com\"}" | 23 | "content": "{\"name\": \"bob\", \"nip05\": \"bob@example.com\"}" |
| 24 | ... | 24 | // other fields... |
| 25 | } | 25 | } |
| 26 | ``` | 26 | ``` |
| 27 | 27 | ||
| @@ -33,7 +33,7 @@ It will make a GET request to `https://example.com/.well-known/nostr.json?name=b | |||
| 33 | "bob": "b0635d6a9851d3aed0cd6c495b282167acf761729078d975fc341b22650b07b9" | 33 | "bob": "b0635d6a9851d3aed0cd6c495b282167acf761729078d975fc341b22650b07b9" |
| 34 | } | 34 | } |
| 35 | } | 35 | } |
| 36 | ```` | 36 | ``` |
| 37 | 37 | ||
| 38 | or with the **recommended** `"relays"` attribute: | 38 | or with the **recommended** `"relays"` attribute: |
| 39 | 39 | ||
| @@ -46,7 +46,7 @@ or with the **recommended** `"relays"` attribute: | |||
| 46 | "b0635d6a9851d3aed0cd6c495b282167acf761729078d975fc341b22650b07b9": [ "wss://relay.example.com", "wss://relay2.example.com" ] | 46 | "b0635d6a9851d3aed0cd6c495b282167acf761729078d975fc341b22650b07b9": [ "wss://relay.example.com", "wss://relay2.example.com" ] |
| 47 | } | 47 | } |
| 48 | } | 48 | } |
| 49 | ```` | 49 | ``` |
| 50 | 50 | ||
| 51 | If the pubkey matches the one given in `"names"` (as in the example above) that means the association is right and the `"nip05"` identifier is valid and can be displayed. | 51 | If the pubkey matches the one given in `"names"` (as in the example above) that means the association is right and the `"nip05"` identifier is valid and can be displayed. |
| 52 | 52 | ||
| @@ -58,6 +58,15 @@ A client may implement support for finding users' public keys from _internet ide | |||
| 58 | 58 | ||
| 59 | ## Notes | 59 | ## Notes |
| 60 | 60 | ||
| 61 | ### Identification, not verification | ||
| 62 | |||
| 63 | The NIP-05 is not intended to _verify_ a user, but only to _identify_ them, for the purpose of facilitating the exchange of a contact or their search. | ||
| 64 | Exceptions are people who own (e.g., a company) or are connected (e.g., a project) to a well-known domain, who can exploit NIP-05 as an attestation of their relationship with it, and thus to the organization behind it, thereby gaining an element of trust. | ||
| 65 | |||
| 66 | ### User discovery implementation suggestion | ||
| 67 | |||
| 68 | A client can use this to allow users to search other profiles. If a client has a search box or something like that, a user may be able to type "bob@example.com" there and the client would recognize that and do the proper queries to obtain a pubkey and suggest that to the user. | ||
| 69 | |||
| 61 | ### Clients must always follow public keys, not NIP-05 addresses | 70 | ### Clients must always follow public keys, not NIP-05 addresses |
| 62 | 71 | ||
| 63 | For example, if after finding that `bob@bob.com` has the public key `abc...def`, the user clicks a button to follow that profile, the client must keep a primary reference to `abc...def`, not `bob@bob.com`. If, for any reason, the address `https://bob.com/.well-known/nostr.json?name=bob` starts returning the public key `1d2...e3f` at any time in the future, the client must not replace `abc...def` in his list of followed profiles for the user (but it should stop displaying "bob@bob.com" for that user, as that will have become an invalid `"nip05"` property). | 72 | For example, if after finding that `bob@bob.com` has the public key `abc...def`, the user clicks a button to follow that profile, the client must keep a primary reference to `abc...def`, not `bob@bob.com`. If, for any reason, the address `https://bob.com/.well-known/nostr.json?name=bob` starts returning the public key `1d2...e3f` at any time in the future, the client must not replace `abc...def` in his list of followed profiles for the user (but it should stop displaying "bob@bob.com" for that user, as that will have become an invalid `"nip05"` property). |
| @@ -66,10 +75,6 @@ For example, if after finding that `bob@bob.com` has the public key `abc...def`, | |||
| 66 | 75 | ||
| 67 | Keys must be returned in hex format. Keys in NIP-19 `npub` format are only meant to be used for display in client UIs, not in this NIP. | 76 | Keys must be returned in hex format. Keys in NIP-19 `npub` format are only meant to be used for display in client UIs, not in this NIP. |
| 68 | 77 | ||
| 69 | ### User Discovery implementation suggestion | ||
| 70 | |||
| 71 | A client can also use this to allow users to search other profiles. If a client has a search box or something like that, a user may be able to type "bob@example.com" there and the client would recognize that and do the proper queries to obtain a pubkey and suggest that to the user. | ||
| 72 | |||
| 73 | ### Showing just the domain as an identifier | 78 | ### Showing just the domain as an identifier |
| 74 | 79 | ||
| 75 | Clients may treat the identifier `_@domain` as the "root" identifier, and choose to display it as just the `<domain>`. For example, if Bob owns `bob.com`, he may not want an identifier like `bob@bob.com` as that is redundant. Instead, Bob can use the identifier `_@bob.com` and expect Nostr clients to show and treat that as just `bob.com` for all purposes. | 80 | Clients may treat the identifier `_@domain` as the "root" identifier, and choose to display it as just the `<domain>`. For example, if Bob owns `bob.com`, he may not want an identifier like `bob@bob.com` as that is redundant. Instead, Bob can use the identifier `_@bob.com` and expect Nostr clients to show and treat that as just `bob.com` for all purposes. |