nips/69.md
landonMutch 9573ad34d4
add outcomes
-define outcomes section
-outline format
2023-02-28 18:18:50 +09:00

29 lines
2.8 KiB
Markdown

# Poll event
A poll note is a nostr event type (kind 6969) for conducting valuation polls. A poll presents two or more voting options, each represented by a unique zappable bolt11 address. Voters may participate in polls by zapping one or more chosen option(s). Poll results may be blinded, until after users have voted. Polls may specify a closing time, after which results should be unblinded, closed to new votes, and considered final.
## Purpose
The purpose of poll notes is to conduct quantitative public opinion polls over nostr by requiring voters pay to participate. By tying vote amounts and counts to real satoshi valuations, nostr polls should provide superior signal compared with other free polling models. Imposing real monetary costs on participants should also discourage attempts at fraudulent result manipulation, by automated or other means.
## Poll format
A poll is a self-contained nostr event which MUST have a primary description along with a predefined number (2..n) of voting options. Each voting option also MUST contain its own secondary description along with an associated bolt11 address, used to tally corresponding vote amounts and counts. A poll should specify a primary tally method ('value' or 'count') and a closing time. It may also include a consensus threshold percentage.
## Poll outcomes
Votes may be tallied either by value or by count. To avoid ambiguity of a winning outcome, a primary tally method SHOULD be specified as either 'value' or 'count'. If a closing time is specified, after it is passed, a poll should be unblinded publicly and MUST be treated as closed (additional votes must not be tallied). Once closed, depending upon the specified tally method, the option associated with either the most satoshis (value) or the most votes (counts) MUST be accepted as the winning option; while the distribution percentages across all vote options MUST be considered respresentative of the distribution of opinion amongst participants.
Additionally, if a consensus threshold percentage is specified, and any single option's associated value (or vote count) percentage of the poll's total value (or vote count, respectively) exceeds the consensus threshold, then consensus MUST be considered attained.
Strict adherence to these requirements should enable a formal means of quantitatively assessing the distribution of opinion regarding a poll's content amongst poll participants, determining a winning outcome, and possibly acheiving consensus. However, until this protocol is further tested, refined, and proven robust, polls should probably not be considered authoritative nor binding.
## TODO
* define standardized polling format
* publish RFC to nostr devs and community
* implement polls in 1 relay
* implement polls in 2 clients
* send pull request to nostr-protocol/NIPs
* merge with nostr-protocol/NIPs