nips/63.md
2024-03-31 11:19:41 -04:00

1.2 KiB

NIP-63

Signed Filters

draft optional

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 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 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.

Push Notification systems can use these events to download events from private relays and push them down to mobile phones.