Nostr Content Discovery

Job request to discover nostr-native content

Input

Clients MIGHT provide an input to be used by the DVM. The DVM decides how to interpret this input.

DVMs would implement different algorithms, with different value props. Clients might choose to allow users to choose which algorithm resonates with them to discover which DVM suits their needs.

Output

A content JSON-stringified list of tags. Tags SHOULD be a or e.

Params

  • p: pubkey of the user to generate recommendations for (optional, defaults to the user sending the job request)

How clients can use this

Clients don’t need to know what algorithm each DVM provides; the kind number 5300 simply means that the DVMs serving this kind will provide nostr-native content a user might be interested in.

How “interested” is defined by each DVM is arbitrary and not the concern of a client, it’s the concern of a user and the interaction with the DVM they choose. Clients are acting as a vehicle to connect users with DVMs with the goal of discovering nostr-native content.

Clients should allow users to choose which DVM they want to use, send the request and the only thing the client needs to know is how to render the results, which should be familiar to any nostr client.

Examples

Example

Request

{
    "content": "",
    "kind": 5300,
    "tags": [
        [ "i", "philosophy", "text" ]
    ]
}

Response

{
    "kind": 6300,
    "content": '
        [ "e", "<...>", "relay-url" ],
        [ "e", "<...>", "relay-url" ],
        [ "e", "<...>", "relay-url" ],
        [ "e", "<...>", "relay-url" ],
        [ "a", "<...>", "relay-url" ]
    '
}