From 619e3bea57860d4c3b1d3f97587727a94b12a82e Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Tue, 18 Feb 2025 22:08:36 -0500 Subject: [PATCH] Right to Vanish (#1256) Co-authored-by: fiatjaf_ Co-authored-by: K --- 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", ""] + ], + "content": "", + //...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": "", + //...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) |