nips/85.md
Vitor Pamplona a95634d352
Adds event-based results
Co-authored-by: arthurfranca <arthur.a.franca@gmail.com>
2024-10-11 10:14:21 -04:00

2.8 KiB

NIP-85

Trusted Assertions

draft optional

Certain calculations in Nostr require access to the entire dataset of events and are impossible to do directly by Clients. This NIP allows the creation of services that can perform such calculations and output signed events for each result continuously. Each calculation type receives a separate event kind. Users can set up which service providers they trust to perform these calculations so that Clients can load and display the results accordingly.

Assertions are always addressable events with the d tag pointing to the subject of the assertion. The following kinds and tags have been specified:

name kind d tag value result tags
Follower Count 30382 target pubkey "followers" (integer)
WebOfTrust Score 30382 target pubkey "wot" (integer, normalized 0-100)
Zap Amount Received 30382 target pubkey "zap_amt_recd" (integer, millisats)
Zap Amount Sent 30382 target pubkey "zap_amt_sent" (integer, millisats)
Zap Number Received 30382 target pubkey "zap_num_recd" (integer, evt counter)
Zap Number Sent 30382 target pubkey "zap_num_sent" (integer, evt counter)
Comment Count 30383 target event id "comments" (integer)
Repost Count 30383 target event id "reposts" (integer)
Reaction Count 30383 target event id "reactions" (integer)
Comment Count 30384 target event address "comments" (integer)
Repost Count 30384 target event address "reposts" (integer)
Reaction Count 30384 target event address "reactions" (integer)

Example:

{
  "kind": 30382,
  "tags": [
    ["d", "e88a691e98d9987c964521dff60025f60700378a4879180dcbbb4a5027850411"],
    ["wot", "89"],
    ["zap_amt_sent", "1000000"],
  ],
  "content": "",
  //...
}

Service providers SHOULD update their results constantly and MAY limit access by using paid relays.

Declaring Trusted Service Providers

Kind 10040 lists the user's authorized providers for each service. The service tag is followed by the pubkey of the service and the relay where the results are published.

{
  "kind": 10040,
  "tags": [
    ["wot", "818a39b5f164235f86254b12ca586efccc1f95e98b45cb1c91c71dc5d9486dda", "wss://relay.nostr.band"],
    ["wot", "3d842afecd5e293f28b6627933704a3fb8ce153aa91d790ab11f6a752d44a42d", "wss://nostr.wine"],
    ["zap_amt_sent", "818a39b5f164235f86254b12ca586efccc1f95e98b45cb1c91c71dc5d9486dda", "wss://relay.nostr.band"],
  ],
  "content": "",
  //...
}

Clients should download this list, and load and display assertions when appropriate.