From 619e3bea57860d4c3b1d3f97587727a94b12a82e Mon Sep 17 00:00:00 2001
From: Vitor Pamplona <vitor@vitorpamplona.com>
Date: Tue, 18 Feb 2025 22:08:36 -0500
Subject: [PATCH] Right to Vanish (#1256)

Co-authored-by: fiatjaf_ <fiatjaf@gmail.com>
Co-authored-by: K <kehiiiiya@gmail.com>
---
 62.md     | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 README.md |  2 ++
 2 files changed, 63 insertions(+)
 create mode 100644 62.md

diff --git a/62.md b/62.md
new file mode 100644
index 00000000..a00ddfc0
--- /dev/null
+++ b/62.md
@@ -0,0 +1,61 @@
+NIP-62
+======
+
+Request to Vanish
+-----------------
+
+`draft` `optional`
+
+This NIP offers a Nostr-native way to request a complete reset of a key's fingerprint on the web. This procedure is legally binding in some jurisdictions, and thus, supporters of this NIP should truly delete events from their database. 
+
+## Request to Vanish from Relay
+
+Kind `62` requests a specific relay to delete everything, including [NIP-09](09.md) Deletion Events, from the `.pubkey` until its `.created_at`. 
+
+```jsonc
+{
+  "kind": 62,
+  "pubkey": <32-byte hex-encoded public key of the event creator>,
+  "tags": [
+    ["relay", "<relay url>"]
+  ],
+  "content": "<reason or note>",
+  //...other fields
+}
+```
+
+The tag list MUST include at least one `relay` value. 
+
+Content MAY include a reason or a legal notice to the relay operator. 
+
+Relays MUST fully delete any events from the `.pubkey` if their service URL is tagged in the event. 
+
+Relays SHOULD delete all [NIP-59](59.md) Gift Wraps that p-tagged the `.pubkey` if their service URL is tagged in the event, deleting all DMs to the pubkey.
+
+Relays MUST ensure the deleted events cannot be re-broadcasted into the relay. 
+
+Relays MAY store the signed request to vanish for bookkeeping.
+
+Paid relays or relays that restrict who can post MUST also follow the request to vanish regardless of the user's status. 
+
+Publishing a deletion request event (Kind `5`) against a request to vanish has no effect. Clients and relays are not obliged to support "unrequest vanish" functionality.
+
+Clients SHOULD send this event to the target relays only. 
+
+## Global Request to Vanish
+
+To request ALL relays to delete everything, the event MUST include a `relay` tag with the value `ALL_RELAYS` in uppercase. 
+
+```jsonc
+{
+  "kind": 62,
+  "pubkey": <32-byte hex-encoded public key of the event creator>,
+  "tags": [
+    ["relay", "ALL_RELAYS"]
+  ],
+  "content": "<reason>",
+  //...other fields
+}
+```
+
+Clients SHOULD broadcast this event to as many relays as possible. 
diff --git a/README.md b/README.md
index 6ec75afb..7cb749dc 100644
--- a/README.md
+++ b/README.md
@@ -77,6 +77,7 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos
 - [NIP-59: Gift Wrap](59.md)
 - [NIP-60: Cashu Wallet](60.md)
 - [NIP-61: Nutzaps](61.md)
+- [NIP-62: Request to Vanish](62.md)
 - [NIP-64: Chess (PGN)](64.md)
 - [NIP-65: Relay List Metadata](65.md)
 - [NIP-68: Picture-first feeds](68.md)
@@ -130,6 +131,7 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos
 | `42`          | Channel Message                 | [28](28.md)                            |
 | `43`          | Channel Hide Message            | [28](28.md)                            |
 | `44`          | Channel Mute User               | [28](28.md)                            |
+| `62`          | Request to Vanish               | [62](62.md)                            |
 | `64`          | Chess (PGN)                     | [64](64.md)                            |
 | `818`         | Merge Requests                  | [54](54.md)                            |
 | `1018`        | Poll Response                   | [88](88.md)                            |