nips/27.md
2023-03-22 19:48:07 -03:00

1.8 KiB

NIP-27

Text Note References

draft optional author:fiatjaf author:scsibug author:arthurfranca

This document standardizes the treatment given by clients of inline references of other events and pubkeys inside the content of text notes (currently kinds 1 and 30023).

Clients that want to allow inline mentions of profiles MUST show an autocomplete component or something analogous to that whenever the user starts typing a special key (for example, "@") or presses some button to include a mention etc -- or these clients can come up with other ways to unambiguously differentiate between mentions and normal text.

Once a mention is identified, for example, the pubkey 27866e9d854c78ae625b867eefdfa9580434bc3e675be08d2acb526610d96fbe, the client MUST replace its textual reference (inside .content) with the notation nostr:nprofile1qqsw3dy8cpu...6x2argwghx6egsqstvg as per NIP-21. If client doesn't support NIP-21, it can instead use a regular http link to a nostr client such as https://a-nostr-client.com/nprofile1qqsw3dy8cpu...6x2argwghx6egsqstvg. The client MAY add that pubkey to the .tags with the tag p if it wishes to notify mentioned user.

The same process applies for referencing event IDs, except that the client SHOULD NOT add the event id to the .tags with the tag e so to not negatively impact thread loading. Because e tags on text notes are usually considered ancestor events used to build a conversarion thread (as per NIP-10), it is advised to use inline references when mentioning events and NOT adding corresponding e tag to the .tags event key.

A client that receives a text_note event with such nostr:... mentions in its .content CAN do any desired context augmentation (for example, linking to the pubkey or showing a preview of the mentioned event contents) it wants in the process.