Nostr-Attestations
The attestation event
The event is issued by the attestor’s client and can contain any sort of attest that is not already evident in a different type of event, such as labels, zaps, following, replies, relationship status, badges, community or group membership, authorized access to a relay, etc.
In particular, this could be issued by someone’s npub, after meeting someone in real life, like on-boarding a new user at a conference or meetup. It could also be used to attest to some interaction that occurred on another online network, or acknowledgement that someone has been allowed access to some channel off-Nostr.
This is more effective than a mere "introductory note", as it is measurable, independent of someone’s personal feed or lists, and such attestations could be accumulated and used to gain access to some other place.
The confirmation event
The npub who is receiving the attestation, has the ability to confirm (accept) or decline (reject) an attestation, by replying to it with a different 1983 event. This raises the value of the attestation, by allowing both sides to attest to the same interaction, or to show disagreement on what occurred.
Attestation Event Structure
The following rules apply to kind 1983 attestation :
-
The attestation event MUST include a
ptag, referencing the pubkey of the user you are attesting. -
There MAY be a
contentfield, containing some human-readable text describing the reason for the attestation. -
There MAY be a
expirationtime stamp tag, formatted according to NIP-40 -
An
attestation typetag MUST be included, and can include multiple entries. It MUST select from the following list:-
meetup: the npub was seen or interacted-with, in person, at a real-life event -
personal: the npub has some personal, real-life relationship with the attestation issuer, such as being a coworker or family-member -
online: the npub has a long-standing online relationship with the person issuing the attestation. There MAY be anitag (see NIP-39), indicating some external online identity, that is being attested to. -
task: the npub has performed some work, that the attestor has observed -
payment: the npub has paid the attestor some sum of money, to prove that they are not merely spam -
membership: the npub is a member of some group or organization -
other: none of the above apply. A content field MUST be added, in this case.
-
Additional tags MAY be included.
Example Attestation Events
{
"id": "<event_id>",
"pubkey": "8ae74c618a4713f32129...",
"created_at": 1708083476,
"kind": 1983,
"tags": [
[ "p", "f7234bd4c1394dda46d09f35bd384dd30cc552ad5541990f98844fb06676e9ca" ],
[ "attestation type", "online", "payment"],
[ "i", "telegram:1087295469", "nostrdirectory/770" ]
],
"content": "We've been communicating online, weekly, for 4 years. I sold them a painting a year ago, and they paid me for it in USD.",
"sig": "49cab8c75fb35cec71d07258..."
}
{
"id": "<event_id>",
"pubkey": "8ae74c618a4713f32129...",
"created_at": 1708083476,
"kind": 1983,
"tags": [
[ "p", "f7234bd4c1394dda46d09f35bd384dd30cc552ad5541990f98844fb06676e9ca" ],
[ "attestation type", "meetup" ],
[ "expiration", "1726611824" ]
],
"content": "I met this person at the Nostr conference in Amsterdam and helped them onboard.",
"sig": "49cab8c75fb35cec71d07258..."
}
Confirmation Event Structure
The following rules apply to kind 1983 confirmation :
-
The confirmation event MUST include an
etag, referencing the attestation event you are confirming. -
The confirmation event MUST include a
ptag, referencing the pubkey of the npub who issued the original attestation. -
There MUST be a
contentfield, containing+or-, to signify confirmation.
Example Confirmation Event
{
"id": "<event_id>",
"pubkey": "8ae74c618a4713f32129...",
"created_at": 1708083476,
"kind": 1983,
"tags": [
[ "p", "f7234bd4c1394dda46d09f35bd384dd30cc552ad5541990f98844fb06676e9ca" ],
["e", "5c83da77af1dec6d7289834998ad7aafbd9e2191396d75ec3cc27f5a77226f36", "wss://nostr.example.com"],
"content": "+"
}
Comments
Public conversation about this article.
No comments yet.
Article metadata
About this entry
Event Id
Raw event
Other authors
No one else has published this topic yet.