upleb.uk

Public git repos — served from a NIP-34 GRASP relay at git.upleb.uk

summaryrefslogtreecommitdiff
path: root/118.md
blob: 86201c6dfb63aaea4d7bbcd1b9a8cc27a60c52e3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# 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.