1.9 KiB
NIP-118
Polls
draft
optional
The purpose of this nip is to create a mechanism for polling on nostr. The NIP aims to have the following properties.
- Provide a method for gauging eligibility. Only eligible votes should be counted.
- Provide a method for maintaining anonymity. Participants should be able to not reveal their identities to everyone, yet their votes should be counted.
- Provide a mechanism for verifiability. Participants should be able to verify that their votes have been counted, under an eligibility criteria.
Events
Poll Content
The poll event is defined as a kind:1068
event. This event carries over the name
, description
and field
tags as defined in nip-101.
This event has no other tags and completely defines the poll content, which is uneditable.
Responses
The response event is the same as the one on nip-101
Eligibilty
Eligibility to a vote is determined by another kind:30180
event that can be created by anyone and is essentially a reference to a list of pubkeys, the author of the eligibility event is interested in. The eligibility event MUST contain an "e" tag to the poll event, and
"list" tags which references either a kind:3
(contact list) or a kind:30000
(follow sets) containing a list of "p" tags.
Counting Results.
Results can be counted for different eligibility events, by querying for kind:1069
events only authored by the pubkeys mentioned in the eligibility event.
Anonymous Voting
For people that wish to maintain anonymity, while still having their votes counted can do so by signing the response event with a random private key and sending over the corresponding pubkey to the author of a kind:30180
eligibility event. The author of the eligibility event may demand "proofs of eligibility" before adding the pubkey in any of the lists.