# zkAsk: Anonymous participation in AMA sessions (Based on Semaphore)

**URL:** <https://talk.harmony.one/t/zkask-anonymous-participation-in-ama-sessions-based-on-semaphore/18420>\
**Category:** zkDAO\
**Created:** [May 12, 2022, 7:16am UTC](https://talk.harmony.one/t/zkask-anonymous-participation-in-ama-sessions-based-on-semaphore/18420 "2022-05-12T07:16:36Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![M0rtal](https://yyz1.discourse-cdn.com/flex035/user_avatar/talk.harmony.one/m0rtal/32/3985_2.png) [@M0rtal](https://talk.harmony.one/u/M0rtal)\
**Post date:** [May 12, 2022, 7:16am UTC](https://talk.harmony.one/t/zkask-anonymous-participation-in-ama-sessions-based-on-semaphore/18420/1 "2022-05-12T07:16:36Z")

</div>

**zkAsk: Participate in AMA sessions anonymously**

zkAsk allows a host to create an AMA session where the audience can join and ask questions anonymously, creating an open and safe environment. Audiences can also vote anonymously for questions to be answered (community moderation via anonymous voting).

It leverages on Semaphore and zk-proofs to preserve the user’s identity.

This project is inspired by Koh Weijie’s Semaphore presentation at Devcon 5.

**Application Type**

zkDAO

**Proposal Overview**

To have a working and feature complete version on testnet and mainnet.

Host should minimally be able to:

- create AMA sessions which may be public or secured with an access code (ie. audience would need an access code to join the AMA session - useful for study groups where only students can join, or corporate groups where only employees can join)
- update status of the AMA session
  - start: audience may join and post questions
  - pause: audience may join but cannot post questions
  - resume: audience may post questions
  - end: session has ended

- list created AMA sessions

Audience/Participant should minimally be able to:

- list AMA sessions that are paused/active (ie. ready for audiences to join)
- join a public session or enter access code to join a private AMA session
- post a question to an AMA session anonymously
- vote on other audience’s questions anonymously

**Use Cases**

1. Private AMA sessions where the topic discussed is sensitive in nature (eg. HR sessions, group review sessions)
2. Public face-to-face AMA sessions at conferences/talks where the audience can freely ask questions without the pressure of the environment. Questions can be posted while the talk is ongoing, without interrupting the speaker. Based on the number of votes for each question, the speaker/host can ensure that the most important questions (or what most of the audience wants to know) are answered.

**Competitive Landscape**

- There are web2 projects with similar features but do not guarantee anonymity since the data is hosted on centralised servers and owned by for-profit corporations.  
Eg: [Free Q&A Platform: Ask & Answer Questions Live - Mentimeter](https://www.mentimeter.com/features/live-questions-and-answers)
- A similar idea by Koh Wei Jie called OneOfUs but seems to be defunct (link does not work anymore): [Private voting and whistleblowing on Ethereum using Semaphore | by Koh Wei Jie | Medium](https://weijiek.medium.com/private-voting-and-whistleblowing-in-ethereum-using-semaphore-449b376808e)

**Proposal Ask**  
zkAsk will be established to be community-driven and self-funded by its DAO. To get this up and running, we will be requesting the $15k/year stable basic income to take care of initial development, welfare, and operation costs.

This ask will be in line with the laid down milestones as detailed below:

1. launching a feature-complete product on our testnet
2. forming a DAO with 5-out-of-9 multisig
3. launching on mainnet with audit
4. attracting 1k daily active users (with launch video, full PR promotion)
5. attracting 10k daily active users (with a detailed roadmap, governance process)

**Road Map**

| Objective | Date | Status |
| --- | --- | --- |
| Testnet Launch | 25 April 2022 | Done |
| Beta Testing and Fixes | 5 May 2022 | Done |
| Mainnet Launch | 5 May 2022 | Done |
| Smart Contract Audit | 31 July 2022 | Pending |
| Improvements and Fixes Post Audit | 30 Aug 2022 | Pending |

**External Links**

- Project repo: [GitHub - violetwee/zkAsk: A privacy application for AMAs, built with Semaphore.](https://github.com/violetwee/zkAsk)
- Frontend on Testnet: [https://testnet.zkask.one/](https://testnet.zkask.one/)
- Frontend on Mainnet: [https://zkask.one/](https://zkask.one/)
- Demo video on YouTube: [https://youtu.be/LbdWAydgKjQ  
 ](https://youtu.be/LbdWAydgKjQ)

**Screenshots**

 ![](https://canada1.discourse-cdn.com/flex035/uploads/harmony1/original/2X/6/65750497a55533c12a06ff12f248f546c9ef63f1.jpeg)  
Audience: Post questions and vote for questions to be answered

---

<div class="post-metadata">

**Author:** ![socathie](https://yyz1.discourse-cdn.com/flex035/user_avatar/talk.harmony.one/socathie/32/5676_2.png) [@socathie](https://talk.harmony.one/u/socathie)\
**Post date:** [May 12, 2022, 8:08am UTC](https://talk.harmony.one/t/zkask-anonymous-participation-in-ama-sessions-based-on-semaphore/18420/2 "2022-05-12T08:08:05Z")

</div>

Feature complete product with an attractive UI. Yes from me as a zkDAO governor. Also confirming that the first milestone is met.

---

<div class="post-metadata">

**Author:** ![tosin](https://avatars.discourse-cdn.com/v4/letter/t/848f3c/32.png) [@tosin](https://talk.harmony.one/u/tosin)\
**Post date:** [May 15, 2022, 8:30pm UTC](https://talk.harmony.one/t/zkask-anonymous-participation-in-ama-sessions-based-on-semaphore/18420/3 "2022-05-15T20:30:16Z")

</div>

Interesting use case, a yes from me as a governor in zkDAO and milestone one is confirmed

---

<div class="post-metadata">

**Author:** ![hakwan](https://yyz1.discourse-cdn.com/flex035/user_avatar/talk.harmony.one/hakwan/32/8566_2.png) [@hakwan](https://talk.harmony.one/u/hakwan)\
**Post date:** [May 18, 2022, 12:20am UTC](https://talk.harmony.one/t/zkask-anonymous-participation-in-ama-sessions-based-on-semaphore/18420/4 "2022-05-18T00:20:35Z")

</div>

yes vote from me too. agreed that first milestone is met

---

<div class="post-metadata">

**Author:** ![Kousik\_Rajesh](https://yyz1.discourse-cdn.com/flex035/user_avatar/talk.harmony.one/kousik_rajesh/32/13468_2.png) [@Kousik\_Rajesh](https://talk.harmony.one/u/Kousik_Rajesh)\
**Post date:** [May 18, 2022, 6:29am UTC](https://talk.harmony.one/t/zkask-anonymous-participation-in-ama-sessions-based-on-semaphore/18420/5 "2022-05-18T06:29:02Z")

</div>

Good UI! Yes from me as governor of zkdao.  
First milestone also approved.

---

<div class="post-metadata">

**Author:** ![kayuet](https://yyz1.discourse-cdn.com/flex035/user_avatar/talk.harmony.one/kayuet/32/9932_2.png) [@kayuet](https://talk.harmony.one/u/kayuet)\
**Post date:** [May 18, 2022, 8:18am UTC](https://talk.harmony.one/t/zkask-anonymous-participation-in-ama-sessions-based-on-semaphore/18420/6 "2022-05-18T08:18:40Z")

</div>

Yes vote from me as a zkdao governor and 1st milestone met indeed

---

<div class="post-metadata">

**Author:** ![AleksandarHadzibabic](https://yyz1.discourse-cdn.com/flex035/user_avatar/talk.harmony.one/aleksandarhadzibabic/32/10081_2.png) [@AleksandarHadzibabic](https://talk.harmony.one/u/AleksandarHadzibabic)\
**Post date:** [May 23, 2022, 10:03pm UTC](https://talk.harmony.one/t/zkask-anonymous-participation-in-ama-sessions-based-on-semaphore/18420/7 "2022-05-23T22:03:22Z")

</div>

Yes from me as a governor of zkDAO. I confirm that 1st milestone is met.

---

<div class="post-metadata">

**Author:** ![Semar\_Martins](https://yyz1.discourse-cdn.com/flex035/user_avatar/talk.harmony.one/semar_martins/32/4579_2.png) [@Semar\_Martins](https://talk.harmony.one/u/Semar_Martins)\
**Post date:** [May 24, 2022, 12:23am UTC](https://talk.harmony.one/t/zkask-anonymous-participation-in-ama-sessions-based-on-semaphore/18420/8 "2022-05-24T00:23:20Z")

</div>

Also agree that first milestone has been met. Voting yes as zkDao governor

---

<div class="post-metadata">

**Author:** ![AleksandarHadzibabic](https://yyz1.discourse-cdn.com/flex035/user_avatar/talk.harmony.one/aleksandarhadzibabic/32/10081_2.png) [@AleksandarHadzibabic](https://talk.harmony.one/u/AleksandarHadzibabic)\
**Post date:** [May 29, 2022, 10:23am UTC](https://talk.harmony.one/t/zkask-anonymous-participation-in-ama-sessions-based-on-semaphore/18420/9 "2022-05-29T10:23:45Z")

</div>

How does posting a question work? Who pays for the gas fees?

My understanding is that one pre-determined address pays for all the gas fees for question posting functionality. If this is the case, can we just brute-force it, by posting a lot of questions? Then contract will have no more tokens and the app would be broken.

---

<div class="post-metadata">

**Author:** ![M0rtal](https://yyz1.discourse-cdn.com/flex035/user_avatar/talk.harmony.one/m0rtal/32/3985_2.png) [@M0rtal](https://talk.harmony.one/u/M0rtal)\
**Post date:** [May 29, 2022, 11:40am UTC](https://talk.harmony.one/t/zkask-anonymous-participation-in-ama-sessions-based-on-semaphore/18420/10 "2022-05-29T11:40:41Z")

</div>

Yes a predetermined account pays for the gas for posting of questions.

A host pays a fee (amount may change in future; is set to 1 ONE right now) to create an AMA session. This is in turn used for the gas for posting of questions. To mitigate brute force of posting a lot of questions, I have capped the number of questions for each session to 100.
