nips/69.md

42 lines
1.7 KiB
Markdown
Raw Normal View History

2023-02-26 22:12:09 -05:00
# Poll event
2023-02-26 22:00:50 -05:00
A poll note is a nostr event type (kind 6969) for conducting polls, containing predefined voting options, which users may vote on via zaps.
2023-02-26 22:00:50 -05:00
## Purpose
2023-02-26 22:12:09 -05:00
* define new standardized event kind for voting polls
## Poll format (RFC)
Should a poll be self-contained in a single event (including its voting options) or be a parent event (#0) with separate (but linked) child voting option events (#1, #2, #3, #n), each referencing the parent poll event?
#### Self-contained poll event
* Pros:
* likely results in better UX by providing compact, widget-style notes immediately recognizable as unique poll type
* promotes more uniform implementation across clients
* Cons:
* increased poll event complexity, owing to internally nested voting options (each necessarily containing their own zap requirements)
* potentially increased difficulty of client implementation
#### Single parent poll event with linked child voting option events
* Pros:
* better alignment with existing event (specifically zap) structures
* potential for backward compatibility with clients uncompliant with polling events, i.e. non-compliant clients could handle poll event chains same as existing threads
* possibly simplifies implementation by clients?
* Cons:
* introduces possibility for fragmentation of polls, e.g. separation or loss of child voting options
* increased potential for non-uniform implementation of polling UI/UX across clients
2023-02-26 22:12:09 -05:00
2023-02-26 22:00:50 -05:00
## TODO
* define basic polling features
* define basic polling format
* outline polling NIP
* publish RFC to nostr dev community
* implement polls in 1 relay
* implement polls in 2 clients
* send pull request to nostr-protocol/NIPs
* merge with nostr-protocol/NIPs