From ec4ee805c1e172b87cfc88116a47ef66b2bdfff4 Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Sun, 31 Mar 2024 11:33:12 -0400 Subject: [PATCH] Additional support for delegations --- 63.md | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/63.md b/63.md index d1e773c2..45aa5345 100644 --- a/63.md +++ b/63.md @@ -10,14 +10,19 @@ Event kind `33012` is used to represent one or more Nostr filters. The `d` tag represents the subscription id and the `filter` tag contains the JSON-stringified [NIP-01](01.md) filter. +The optional `relays` tag contains the destination relays the filter was designed to download events from. + +The optional `authorized` pubkey contains the pubkey authorized to re-use this filter and receive events on behalf of the user. + ```js { "kind": 33012, "tags": [ ["d", ""], - ["relay", ""], ["filter", ""], ["filter", ""], + ["authorized", "<32-bytes lowercase hex of a pubkey>"], + ["relays", "", "", ...], ["expiration", ""], ], "content": "", @@ -28,19 +33,21 @@ The `d` tag represents the subscription id and the `filter` tag contains the JSO They are submitted to supporting relays via `SREQ` command, with the following format: ```js -["SREQ", ] +["SREQ", , , ...] ``` Supporting relays interpret the `filter` tags in the same way they do with `REQ` while automatically authenticating the signer. +Supporting relays MUST authenticate the `authorized` key if present. + Relays MAY reject these filters based on `created_at`. An expiration tag MAY be used to limit the reuse of the filter. ## Motivation -The goal is to be able to support `AUTH` from multiple users in the same connection. As a side effect, this approach removes the `AUTH` round trip. +Push Notification servers can use these events to query private relays on behalf of users and push events down to mobile phones. -Trusted proxies can use these event types to query relays on behalf of the user. +The goal is to be able to support `AUTH` from multiple users in the same connection. As a side effect, this approach removes the user `AUTH` round trip (but not the delegation `AUTH`). -Push Notification systems can use these events to download events from private relays and push them down to mobile phones. \ No newline at end of file +Trusted proxies can use these event types to query relays on behalf of the user. \ No newline at end of file