swarms/ideas/096-message-tributes.md

122 lines
5.1 KiB
Markdown
Raw Normal View History

---
id: 096-message-tributes
title: Tribute to Talk
status: Limbo
created: 2018-03-20
category: core
lead-contributor: richard-ramos
contributors:
- richard-ramos
- 3esmit
- rachelhamlin
- denis-sharypin
exit-criteria: yes
success-metrics: yes
clear-roles: yes
future-iterations: yes
roles-needed:
- Clojure dev
okrs:
- "[P2] Objective: SNT is a powerful utility in Status"
- "[P0] KR: 2x launched SNT use cases"
- "[P0] KR: 2x demos/proof of concepts using SNT"
- "[P4] KR: 2x Fleshed out description of the utility"
---
## Preamble
2018-04-11 18:10:58 +00:00
Idea: 96
Title: Tribute to Talk
Status: In Progress - paused until post-beta
Created: 2018-03-20
Requires (*optional): TBD
## Summary
Economics-based anti-spam filter, in our case for receiving messages and “cold” contact requests from users.
## Swarm Participants
- Lead Contributor: @richard-ramos
- Testing & Evaluation: @serhy
- Contributor: @yenda
2018-04-15 01:59:11 +00:00
- Contributor: @3esmit
- PM: @rachelhamlin
2018-04-15 01:59:11 +00:00
- UX: @denis-sharypin
2018-04-12 08:20:45 +00:00
## Product Overview
This enables stakeholders to set a minimum amount of SNT that a Status stakeholder must deposit in order for someone outside of their network to contact him directly. If the recipient replies the deposit is forfeited to the recipient.
**SNT Utility**
SNT is deposited, and transferred from stakeholders to recipients upon receiving a reply from the recipient.
Example use-cases
- Stakeholder A, a professional, would like to reach out to a high profile figure in the same industry, but would otherwise have no means of receiving a response.
- Stakeholder B, an artist and celebrity wishes to spend some time chatting with fans, and also desires a means of monetizing their fan base.
- Stakeholder C, a freelancer, provides photography tutorials, and has a means of generating revenue.
### Product Description
Any Status user can enable Tribute to Talk and set a minimum required deposit for other users to stake in order to send them a message. Users requiring a tribute can whitelist their full contact list, or specific contacts.
If User A requires a minimum 200 SNT deposit, User B will not be able to open a new chat with User A until they deposit at least 200 SNT. Once deposited, User B can send their message.
If User A responds to User Bs message, the deposit is transferred to User A, and a conversation is opened.
If User A does not respond or User B changes their mind, User B can cancel or withdraw the request. The request will also time out automatically if User A does not respond in some number of days. In any case where User A does not respond, the deposit is returned to User B.
If User A rejects User Bs request, User Bs deposit is returned. User B will have to wait some amount of time before they are able to send a new request to User A.
In the future, User A might have the option to respond to User B but waive the deposit. User B might have the option to make a tribute to User A without requiring a response.
### Requirements & Dependencies
<!-- Are there bugs or feature requests in other repositories that are part of this Idea? -->
<!-- There is no approval unless the idea requires to be reviewed by supporting organelles (Financial, Hiring, or Design). -->
<!-- The Swarm must develop a fully fleshed out Requirements document for the idea to proceed, to the satisfaction of participants. -->
### Minimum Viable Product
2018-04-12 08:20:45 +00:00
Goal Date: TBD
2018-04-12 08:20:45 +00:00
Description:
For the initial delivery, these are the minimum features proposed.
- [ ] UI for recipients to set Tribute to Talk with required minimum deposit for any new chat
- [ ] UI for requesters to send minimum SNT deposit and their message to users with Tribute to Talk enabled
- [ ] UI for requesters to cancel a request and withdraw deposit
- [ ] UI for recipient to respond to or reject new requests
- [ ] Deposit is transferred from requester to recipient when recipient responds
- [ ] Deposit is returned to requester if rejected or withdrawn
Next milestones and deliverables would be determined discussing and prioritizing features of the product description
##### Update 2019-09-05:
- [Clojure work in progress](https://github.com/status-im/status-react/tree/feature/message-tributes)
- Contract complete
- Designs complete
## Dates
2018-04-12 08:20:45 +00:00
Goal Date: TBD
2018-04-12 08:20:45 +00:00
Description: TBD
2018-04-12 08:20:45 +00:00
Testing Days required: TBD
## Exit Criteria
Any user can set up Tribute to Talk and require a deposit minimum to be contacted. Other users can put down a deposit to message them. New requests can be responded to, rejected or withdrawn. The deposit is transferred when a recipient responds, and sent back if they reject or the requester withdraws.
## Success Metrics
Initial emphasis is on TtT working as expected and producing no bugs for critical events.
- Message requests are delivered 100% reliably from requester to recipient.
- Message responses by recipients are successfully recognized in all instances, both accepted and rejected.
- Transfer or return of deposit to either recipient or requester is successful.
## Supporting Role Communication
TBD
## Copyright
Copyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/).