NIP-62 ====== Signed and Versioned Third-Party Objects ---------------------------------------- `draft` `optional` This specification defines a protocol by which Nostr events may be used to authenticate third-party objects, which may be versioned. With Nostr, the cryptographic identity afforded by an npub/nsec keypair can be used to attest to the authenticity of an object outside of the Nostr network. Thus, the level of trust a user gives to a specific npub may be assigned to third-party objects that npub is willing to attest to. Such objects may include, but certainly are not limited to, Git commits, documents, and images. ## Kind `32000`: Simple Third-Party Object An event of kind `32000` SHALL serve to authenticate an unversioned object hosted by a third-party service (i.e., not a Nostr client or relay). The `content` field MAY contain a description of the object or its contents. The following tags SHALL be used: - The `d` tag MUST contain a unique identifier for the object. This identifier SHOULD be a hash of the object itself to provide an additional means of validating its authenticity. - The `r` tag MUST indicate one or more URLs at which the object can be found. - Tags `l` and `L` MAY be used to indicate a context or namespace for the object, as defined in [NIP-32](https://github.com/nostr-protocol/nips/blob/master/32.md). - The `m` tag MAY be included to indicate the MIME type of the object. - The `client` tag, as defined in [NIP-89](https://github.com/nostr-protocol/nips/blob/master/89.md), MAY be included to indicate a preferred client for handling the Nostr event and its associated object. - The `hash` tag MUST be used when the object's unique identifier is a hash to indicate the hash method used. ### Event Format ```json { ..., "kind": 32000, "tags": [ ["d", ], ["r", ], ["l",