mirror of
https://github.com/nostr-protocol/nips.git
synced 2024-11-09 22:09:06 -05:00
37 lines
1.9 KiB
Markdown
37 lines
1.9 KiB
Markdown
|
# 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.
|
||
|
|
||
|
1. Provide a method for gauging eligibility. Only eligible votes should be counted.
|
||
|
2. Provide a method for maintaining anonymity. Participants should be able to not reveal their identities to everyone, yet their votes should be counted.
|
||
|
3. 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](https://github.com/nostr-protocol/nips/pull/1190/files).
|
||
|
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](https://github.com/nostr-protocol/nips/pull/1190/files)
|
||
|
|
||
|
### 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.
|