# UGP Twitter Bot
## MVP Edition
### Snapshot
Will use webhooks so we don't have to keep local state
#### Webhook events
* proposal/created
* **tweet format**: `Proposal [name] is CREATED on Snapshot link: [link]`
* proposal/start
* **tweet format**: `Proposal [name] is currently ACTIVE on Snapshot link: [link]`
* proposal/end
* **tweet format**: `Proposal [name] ENDED on Snapshot link: [link] results: :white_check_mark: [amountFor] :x: [amountAgainst]`
* proposal/deleted
* **tweet format**: `Proposal [name] was DELETED on Snapshot`
#### Implementation Notes
* Use emoji for various stages, so that easier to identify for eye.
* Snapshot Title needs to be truncated to fit the Twitter character limit.
#### Technical Notes
* snapshot.org [supports webhooks](https://docs.snapshot.org/webhooks).
### Uniswp Governance Forum
Relevant Documentation: https://docs.discourse.org/#tag/Posts
Uniswap Gov forum: https://gov.uniswap.org/
#### Requirements
* Share when new Post is created
* **tweet format**: `New Post created on Uniswap Governance Forum by [creator.name] title: [title] link: [link]`
* Share when there are more than 5 replies on Post (soft requirement)
* **tweet format**: `Community discussion on Uniswap Governance Forum post by [creator.name] title: [title] link: [link]. Come and check it out!`
* Share when Post gets more than 1000 views
* **tweet format**: `Post on Uniswap Governance Forum by [creator.name] title: [title] link: [link] is getting popular. Come and check it out!`
#### Technical Notes
Boris will provide API access if needed.
### Uniswap Governance Proposals
#### Requirements
* Share when new proposal is created
* **tweet format**: `New Uniswap Governance proposal created title: [title] link: [link]`
* Share updates every 3h
* **tweet format**: `Uniswap Governance proposal update title: [title] link: [link] :white_check_mark: [amountFor] :x: [amountAgainst]`
* Share when vote period ends
* **tweet format**: `Uniswap Governance proposal results title: [title] link: [link] :white_check_mark: [amountFor] :x: [amountAgainst]`
#### Technical Notes
Research best data source for this
####
---
## Initial Requirements - Not to be implemented
The Twitter bot would serve multiple purposes:
* Inform people on the current proposal stage
* Snapshot creation, duration, current vote ratio, etc.
* Publish the date of on-chain voting in advance for the participants
* Disseminate up-to-date community discussion regarding the proposal
When the vote is active, the bot would:
* Announce when a certain number of votes has been hit and translate it into FOR / AGAINST and send it via discord/socials
* Inform the participants when the vote would be nearing quorum
* Inform regarding the vote deadline time & date
* Let everybody know the final outcome of the vote EXECUTED / DEFEATED / CANCELLED
## Questions of Requirements
### thanpolas initial questions
1. Is this going to be both a Discord and a Twitter bot? If so, please define the following questions for both services.
2. Is there a deadline for this?
3. Is there a grand for this?
For each of the bullet points mentioned in the requirements (at the end of document), please answer the following questions thoroughly:
4. What should be the trigger to dispatch the tweet?
5. How do we want the tweet to look like, exactly?
6. Where is the source of the data that needs to be displayed? (edited)
### Response by Jeremy Guzman
* Yes, the goal is for the information to be communicated on Discord and Twitter (or more generally anywhere we think majority of UNI holders conjugate).
* As of right now we just have a rough outline on how this could/should be composed, but no definitive deadline has been proposed/decided.
* (This is more of a @ken / @Boris Stanic (BOR4) question)
* The trigger for both Discord & Twitter is when a Forum proposal has successfully escalated to Snapshot. Once it has reached that state, the Discord/Twitter bot should pull the following information:
* Proposal Name / Date
* Link to Proposal and Snapshot
* Quorum threshold
* Proposal vote deadline
(We can definitely expand/consolidate this list if necessary).
5. The tweet should look something like:
Proposal [name] is currently ACTIVE on [Snapshot/On-chain portal].
Quorum needed: [enter amount]
Snapshot/On-chain [link]: {enter link]
Current vote count: [x] FOR, [x] AGAINST
6. I believe the primary source(s) would be the Uniswap Forum, Boardroom, Snapshot, or On-chain portal respectively (depending on the state of the proposal)
This UMA thread has the right idea:
https://twitter.com/UMAprotocol/status/1427667375156076548?s=20