NIP-64 ====== Trust Score ----------- A trust score is a public way to individually assign a quantifiable level of trust on specifc topics to a nostr identity. Ranks can be used to discover trusted people on a common topic. ## Event Structure The `kind:30382` is a NIP-61 ["Set Item Reference"](https://github.com/arthurfranca/nips/blob/bunch-of-events/61.md#tagging-into-event-sets) event used to assign public information about a pubkey (set to the `d` tag). This NIP makes use of one or more trust scores added to such events as `T` tags using the following structure: ```js [ "T", "", "<+_or_?_or_->" // optional and may appear many times ] ``` Topic names should be preferably in English, lower case and their words are dash separated. Topic names are separated from the score by a colon (`:`). Some topic names include a context prefix, also separated by a colon (`:`). After the tag value, there may be any number of reviews, each one with a prefix followed by a space separator and the actual review text. The prefix denote a postive review (`+`), a negative review (`-`) or a neutral one (`?`). The `?` prefix is usually assigned for free form user generated reviews. On the other hand, `+` and `-` are usually related to clickable fixed options made available by a client. Example: ```js { "kind": 30382, "tags": [ ["d", ""], ["T", "3:wiki:role-playing-video-game"], // has written a based wiki article about RPG ["T", "2:car:driver", "+ Skilled", "+ Polite", "- Talks too much", "? Likes to talk about movies."], ["T", "3:buyer", "? No problems when selling to this person"], ["T", "-2:seller", "? Had a bad experience when buying from this person."], ["T", "0:inn-host"], // This person hosted me but I assigned no trust score yet ["T", "3:inn-guest"] // I hosted this person and had no problem ], // ...other fields } ``` If a client doesn't recognize a topic name, it should leave the corresponding `T` tag untouched when editing other entry. ## Trust by Score The below table is the default way of interpreting trust score numbers but specific NIPs/NUDs using them may interpret them differently. |trusted a lot|somewhat trusted|a bit trusted|neutral|a bit untrusted|somewhat untrusted|untrusted a lot| |-|-|-|-|-|-|-| |3|2|1|0|-1|-2|-3| ### Filtering The reason why the rating score (integer value) has few possible values and is placed together with the topic name is for letting clients filter on relays by both data to easily fetch good or bad users on specifc topcs. Example filters: - Good car drivers: `{ "kinds": [30382], "#T": ["3:car:driver", "2:car:driver", "1:car:driver"] }` - Best merchants: `{ "kinds": [30382], "#T": ["3:seller"] }` ## Topic List For interoperability, topic names should be listed here: | Name | What it ranks | NIPs/NUDs | |-|-|-| | `buyer` | goods/services buyer | | | `car:driver` | car driver | | | `inn:host` | (inn, hotel, hostel, etc) host | | | `inn:guest` | (inn, hotel, hostel, etc) guest | | | `seller` | goods/services seller | | | `wiki:` | article author | [NIP-54](54.md) |