nips/63.md
2024-03-31 11:12:59 -04:00

1.1 KiB

NIP-63

Signed Filters

draft optional

This NIP declares the use of event kind 33012 to represent one or more Nostr filters.

The d tag represents the subscription id and the filter tag contains the JSON-stringified NIP-01 filter.

{
  "kind": 33012,
  "tags": [
    ["d", "<subscription_id>"],
    ["relay", "<relay>"],
    ["filter", "<filter1>"],
    ["filter", "<filter2>"],
    ["expiration", "<unix timestamp>"],
  ],
  "content": "",
  // ...other fields
}

They are submitted to supporting relays via SREQ command, with the following format:

["SREQ", <signed kind-33012>]

Supporting relays interpret the filter tags of this event in the same way they do with REQ while automatically authenticating the signer.

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.

Trusted proxies can use these event types to query relays on behalf of the user.