# NIP09

## 事件删除

`draft` `optional` `author:scsibug`

表示"删除"的具有种类 `5` 的特殊事件被定义为具有一个或多个 `e` 标签的列表，每个标签引用作者请求删除的事件。

每个标签条目必须包含要删除的" E "事件 ID.

事件 `content` 字段可能包含描述删除原因的文本注释。

例如：

```
{
  "kind": 5,
  "pubkey": <32-bytes hex-encoded public key of the event creator>,
  "tags": [
    ["e", "dcd59..464a2"],
    ["e", "968c5..ad7a4"],
  ],
  "content": "these posts were published by accident",
  ...other fields
}
```

中继应删除或停止发布与删除请求相同 `id` 的任何引用事件。客户端应隐藏或以其他方式指示引用事件的删除状态。

中继应继续无限期地发布/共享删除事件，因为客户端可能已经具有要删除的事件。此外，客户端应将删除事件广播到其他没有删除事件的中继。

## 客户端使用情况

客户端可以选择完全隐藏有效删除事件所引用的任何事件。这包括文本注释、直接消息或其他尚未定义的事件类型。可替换地，它们可以显示事件以及作者已经"否认"该事件的图标或其他指示。该 `content` 字段还可用于替换已删除事件自身的内容，尽管用户界面应明确指出这是删除原因，而不是原始内容。

在隐藏或删除任何事件之前，客户端必须验证删除请求的标记中 `e` 引用的每个事件 `pubkey` 与删除请求 `pubkey` 相同。一般来说，中继不能执行此验证，也不应被视为权威。

客户端以他们选择的任何方式显示删除事件本身，例如，根本不显示，或以显著的通知显示。

## 中继使用

中继可以验证删除事件仅引用与删除本身相同 `pubkey` 的事件，但是这不是必需的，因为中继可能不知道所有引用的事件。

## 删除删除

针对删除发布删除事件不起作用。客户端和中继没有义务支持"取消删除"功能。
