Votebox is a very early stage & rough concept for how to do scalable competitions for video subcommunities. It can be built using a metaprotocol.
UX Flow
Creating a competition
Only Curator WG Lead or an approved worker can create, manage or cancel a competition
Content Curator Lead can add/remove worker permissions for creating and managing competitions
Competition has
competition_metadata that sets title, description, banner image and other information
competition_parameters sets the rules, curator(s), oracle(s), timeframe, video length requirements, fees & reward for the competition
Submitting videos to competition
Any user can add any video at any time
Video only counts if it falls within the competition_parameters
Subsequent entries of the same video are ignored, only first submission counts
Fee must be above entry_fee
competition_curator must approve video
Curation
Curator must approve entries and ensure they follow the rules or theme with a rationale before they are placed in the competition
Winner(s)
Are determined automatically by competition parameters and the result is shown to users
Payout
Payout is done by the selected oracle
They must also declare the competition as valid or invalid
App generates payment extrinsic with exact requirements of competition outcome
Upon payment the app checks the for payment and updates to paid - indicating to users that the payout has been done.
Competition Metadata
competition_banner
URL/JPG: https://website.com/banner.jpg
competition_title
text: "Weekly Cooking Competition"
competition_theme
text: "Cajun cooking"
competition_emoji
emoji: prompts emoji selector
competition_tags
tags: cooking, art, creative, cajun
competition_description
text: "Hi! This is our weekly cooking competition! This week we're looking into cajun cuisine. Please follow the rules and have fun!""`
competition_conditions
text: "Only original content, submissions must be between 30s - 4 minutes long. No music."
competition_reward
number of winning entries: top 3 videos
number: 22k $JOY
text_1: "featured on Joystream Twitter"
text_2: "featured on Gleev homepage for 1 day"
Competition Parameters
competition_starttime
Start time is in the future, this is from when entries will be allowed. This will allow the competition to be prearranged and announced for maximum impact.
competition_submission_period
This will be the duration that entries can be submitted, which will start once competition_min_entries has been exceeded. If set to 0 the competition will start immediately.
Time: 3 days
competition_curator_period
This will be the time period in which the competition_curator can approve entries before competition_vote_period begins
competition_vote_period
The length of time that voting will be allowed
competition_curator
This is the member(s) who curate the content--approving videos into the competition. They will be given permissions by being listed here.
membership handles: @member_handle
competition_oracle
This is the person(s) who handles payment
After competition end they can declare the outcome valid or invalid
membership handles @member_handle
min_video_duration
Minimum duration of a video--entries outside this are ignored
number: 30 seconds
max_video_duration
Maximum duration of a video--entries outside this are ignored
number: 4 minutes
competition_min_entries
The minimum number of entries required for the competition to start
number: 3 entries
compeition_max_entries
number: 52 entries
competition_entry_fee
number: 500 $JOY
competition_vote_fee
number: 3000 $JOY
competition_fee_recipient
Fees paid for entries or voting are sent to this address--can be used as the prize pool
Default is blank
Membership faucet address?
Custom address
Description of who the address owner is
competition_winner_count
number: 3 videos
Submission Metadata
submission_url
URL of video: https://gleev.xyz/videos/1234
submission_rationale
text: "insert text here"
submission_source
determined if submitter is the original uploader of the video
Competition conclusion
competition_oracle_result
Oracle issues judgement if the competition is valid or invalid
competition_payout_tx
This is a link to the transaction where payout(s) occurred
Moderation
Moderator can cancel competition with cancel_rationale
Fees can be refunded if desired
Voting
Any member can vote
Can provide optional rationale
Can provide optional emoji
Fee must be above vote_fee
Can vote multiple times
Payout
The competition_oracle will manage payouts. This is a social contract.
Social features
Individual competition leaderboard
Shows a list of videos
Winners highlighted
Highest rated videos shown first
Voter page that shows the members who voted the most/least
Video maker leaderboard
Shows channels that have won the most times and what their rewards have been
Description
Votebox is a very early stage & rough concept for how to do scalable competitions for video subcommunities. It can be built using a metaprotocol.
UX Flow
Creating a competition
competition_metadata
that sets title, description, banner image and other informationcompetition_parameters
sets the rules, curator(s), oracle(s), timeframe, video length requirements, fees & reward for the competitionSubmitting videos to competition
competition_parameters
entry_fee
competition_curator
must approve videoCuration
Winner(s)
Payout
valid
orinvalid
paid
- indicating to users that the payout has been done.Competition Metadata
competition_banner
https://website.com/banner.jpg
competition_title
"Weekly Cooking Competition"
competition_theme
"Cajun cooking"
competition_emoji
competition_tags
cooking
,art
,creative
,cajun
competition_description
"Hi! This is our weekly cooking competition! This week we're looking into cajun cuisine. Please follow the rules and have fun!"
"`competition_conditions
"Only original content, submissions must be between 30s - 4 minutes long. No music."
competition_reward
top 3 videos
22k $JOY
"featured on Joystream Twitter"
"featured on Gleev homepage for 1 day"
Competition Parameters
competition_starttime
competition_submission_period
competition_min_entries
has been exceeded. If set to0
the competition will start immediately.3 days
competition_curator_period
competition_curator
can approve entries beforecompetition_vote_period
beginscompetition_vote_period
competition_curator
@member_handle
competition_oracle
valid
orinvalid
@member_handle
min_video_duration
30 seconds
max_video_duration
4 minutes
competition_min_entries
3 entries
compeition_max_entries
52 entries
competition_entry_fee
500 $JOY
competition_vote_fee
3000 $JOY
competition_fee_recipient
competition_winner_count
3 videos
Submission Metadata
submission_url
https://gleev.xyz/videos/1234
submission_rationale
"insert text here"
submission_source
Competition conclusion
competition_oracle_result
valid
orinvalid
competition_payout_tx
Moderation
cancel_rationale
Voting
rationale
emoji
vote_fee
Payout
competition_oracle
will manage payouts. This is a social contract.Social features
Individual competition leaderboard
members
who voted the most/leastVideo maker leaderboard
References
https://monkeytalks.cc
Unanswered questions
member.memberRemark
system.remark
?system.remarkWithEvent
do?UI
upcoming
,active
,concluded