Skip to content

Commit 07dbb79

Browse files
committed
Add ! as authorized deletion pubkey tag
1 parent ccbdfb9 commit 07dbb79

File tree

3 files changed

+7
-6
lines changed

3 files changed

+7
-6
lines changed

09.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ NIP-09
44
Event Deletion
55
--------------
66

7-
`draft` `optional` `author:scsibug`
7+
`draft` `optional` `author:scsibug` `author:arthurfranca`
88

99
A special event with kind `5`, meaning "deletion" is defined as having a list of one or more `e` tags, each referencing an event the author is requesting to be deleted.
1010

@@ -27,21 +27,21 @@ For example:
2727
}
2828
```
2929

30-
Relays SHOULD delete or stop publishing any referenced events that have an identical `pubkey` as the deletion request. Clients SHOULD hide or otherwise indicate a deletion status for referenced events.
30+
Relays SHOULD delete or stop publishing any referenced events that have an identical `pubkey` as the deletion request OR that have a `!` tag value equal to the deletion request `pubkey`. Clients SHOULD hide or otherwise indicate a deletion status for referenced events.
3131

3232
Relays SHOULD continue to publish/share the deletion events indefinitely, as clients may already have the event that's intended to be deleted. Additionally, clients SHOULD broadcast deletion events to other relays which don't have it.
3333

3434
## Client Usage
3535

3636
Clients MAY choose to fully hide any events that are referenced by valid deletion events. This includes text notes, direct messages, or other yet-to-be defined event kinds. Alternatively, they MAY show the event along with an icon or other indication that the author has "disowned" the event. The `content` field MAY also be used to replace the deleted events' own content, although a user interface should clearly indicate that this is a deletion reason, not the original content.
3737

38-
A client MUST validate that each event `pubkey` referenced in the `e` tag of the deletion request is identical to the deletion request `pubkey`, before hiding or deleting any event. Relays can not, in general, perform this validation and should not be treated as authoritative.
38+
A client MUST validate that each event `pubkey` referenced in the `e` tag of the deletion request is identical to the deletion request `pubkey` OR that each referenced event has `!` tag value equal to the deletion request `pubkey` before hiding or deleting any event. Relays can not, in general, perform this validation and should not be treated as authoritative.
3939

4040
Clients display the deletion event itself in any way they choose, e.g., not at all, or with a prominent notice.
4141

4242
## Relay Usage
4343

44-
Relays MAY validate that a deletion event only references events that have the same `pubkey` as the deletion itself, however this is not required since relays may not have knowledge of all referenced events.
44+
Relays MAY validate that a deletion event only references events that have the same `pubkey` as the deletion itself or that have a `!` tag value equal to the deletion `pubkey`, however this is not required since relays may not have knowledge of all referenced events.
4545

4646
## Deleting a Deletion
4747

12.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ Generic Tag Queries
88

99
Relays may support subscriptions over arbitrary tags. `NIP-01` requires relays to respond to queries for `e` and `p` tags. This NIP allows any single-letter tag present in an event to be queried.
1010

11-
The `<filters>` object described in `NIP-01` is expanded to contain arbitrary keys with a `#` prefix. Any single-letter key in a filter beginning with `#` is a tag query, and MUST have a value of an array of strings. The filter condition matches if the event has a tag with the same name, and there is at least one tag value in common with the filter and event. The tag name is the letter without the `#`, and the tag value is the second element. Subsequent elements are ignored for the purposes of tag queries.
11+
The `<filters>` object described in `NIP-01` is expanded to contain arbitrary keys with a `#` prefix. Any single-letter or single exclamation mark key in a filter beginning with `#` is a tag query, and MUST have a value of an array of strings. The filter condition matches if the event has a tag with the same name, and there is at least one tag value in common with the filter and event. The tag name is the letter without the `#`, and the tag value is the second element. Subsequent elements are ignored for the purposes of tag queries.
1212

1313
Example Subscription Filter
1414
---------------------------
@@ -30,7 +30,7 @@ Clients SHOULD use the `supported_nips` field to learn if a relay supports gener
3030
Rationale
3131
---------
3232

33-
The decision to reserve only single-letter tags to be usable in queries allow applications to make use of tags for all sorts of metadata, as it is their main purpose, without worrying that they might be bloating relay indexes. That also makes relays more lightweight, of course. And if some application or user is abusing single-letter tags with the intention of bloating relays that becomes easier to detect as single-letter tags will hardly be confused with some actually meaningful metadata some application really wanted to attach to the event with no spammy intentions.
33+
The decision to reserve only single-letter (and single-char exclamation mark) tags to be usable in queries allow applications to make use of tags for all sorts of metadata, as it is their main purpose, without worrying that they might be bloating relay indexes. That also makes relays more lightweight, of course. And if some application or user is abusing single-letter tags with the intention of bloating relays that becomes easier to detect as single-letter tags will hardly be confused with some actually meaningful metadata some application really wanted to attach to the event with no spammy intentions.
3434

3535
Suggested Use Cases
3636
-------------------

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,7 @@ When experimenting with kinds, keep in mind the classification introduced by [NI
150150
| `p` | pubkey (hex) | relay URL | [1](01.md) |
151151
| `r` | a reference (URL, etc) | -- | [12](12.md) |
152152
| `t` | hashtag | -- | [12](12.md) |
153+
| `!` | authorized deletion pubkey (hex) | -- | [9](09.md) |
153154
| `amount` | millisats | -- | [57](57.md) |
154155
| `bolt11` | `bolt11` invoice | -- | [57](57.md) |
155156
| `challenge` | challenge string | -- | [42](42.md) |

0 commit comments

Comments
 (0)