gitcoinco / skunkworks

experimental laboratory
64 stars 35 forks source link

Build HoneyPot.Money on Gitcoin Passport #282

Open owocki opened 1 year ago

owocki commented 1 year ago

Hello builders!

I am looking for a reliable web developer to build a simple site for me in the next several weeks.

Preface

About the site: Gitcoin has built out Gitcoin Passport https://passport.gitcoin.co/ & https://docs.passport.gitcoin.co/ - a protocol thats going to allow users to take their Gitcoin Grants sybil resistent identity across the dweb with them. We think this is going to unlock a whole ecosystem of one-human-one-vote. Stuff like

We have put together an alpha implementation of this system which you can see here https://passport.gitcoin.co/ . Basically the TLDR is that the Gitcoin system issues the user an SDK that allows them to issue a VC to take their PersonhoodScore (PS) with them across the dweb. The higher the personhoodscore, the higher the price of forgery for that identity. A user with a $1 PS has an identity that costs $1 to forge. A user with a $100 PS has an identity that costs $100 to forge, and so on.

About the app I want you to build

Why build this?

I would like to make a contribution to the advancement of sybil resistance, by creating a crypto economic game, wherein attackers are rewarded to create identities on proof of personhood protocols. This will

  1. onboards more & more people onto sybil resistent identity platforms
  2. effectively creates a 'price of forgery' for each of these protocols. If HoneyPot.Money ran an active campaign that offered $10 to anyone who could claim a verified BrightID identity, and attackers did not manufacture thousands of BrightID identities, then one must logically assume that the cost of forgery for a BrightID identity is more than $10. This enables app builders to build new sybil-resistent games on top of these identity protocols on the trust assumption that the cost of forgery is at least $10.

What does the app do?

Anyway, so here's what I'm thinking. -- HoneyPot.Money; A site where people can get paid to create sybil resistent identities, hardening sybil resistent identity systems by creating a known price of forgery.

Design

Thanks to @melvinalvarez we have a design for this site which exists at https://github.com/melvinalvarez/HoneypotMoney_Design . You should checkout Melvin's repo, but feel free to play with the demo to get a solid feel for what we're doing! Melvin is LEET, hes already spliced up the HTML for you!

Style_Guide

Functionality

Basically the Happy Path is:

  1. User goes to honeypot.money
  2. If no campaign, user is told to come back soon. If active campaign (this will be configured in the DB), user clicks to campaign
  3. At start, we will have an active campaign where a user with a personhood score > 30 can earn $20 in DAI (or similar ERC20).
  4. User clicks to campaign
  5. User connects to web3.
  6. If user does not have a Proof of Personhood Passport ( PoPP ), they are sent to http://passport.gitcoin.com/ to get one.
  7. If user has a PoPP but not a high enough personhood score, they are sent to http://passport.gitcoin.com/ to build their PersonhoodScore
  8. If user has a high enough PersonhoodScore (PS) they can click redeem. Th
  9. If successful, the user is sent $20 in tokens.

I would also like a backend admin flow (only I will have admin creds) to:

  1. create a new honeypot campaign, inserting token address + amount.
  2. manage which campaigns are active + which are not; add a new campaign.
  3. view stats for campaigns. i want to see, detailes of attempted/succeeded attempts to redeem for each campaign.

About you

You have joined https://gitcoin.co/discord and joined the #passport-builders channel.

I am looking for a skilled + reliable developer whos going to build this out for me + help me deploy the first campaign. I'm open to any tech stack as long as the dev who works on it follows through and delivers. I'd strongly prefer to use Optimism L2 for this campaign, but I'd be open to use mainnet or L2 rollup providers too.

In your application, pls indicate your plan for turning this around + maybe write 1 or 2 sentences that makes it clear to me that you've actually read the requirements.

Please DO NOT apply if you do not have cycles for the next 3 weeks to follow through on this + deliver. I dont have the cycles or the time to deal with uncommitted devs.

I'll pay 0.7 ETH to have this coded up. If this goes well it could lead to more engagements with us.

gitcoinbot commented 1 year ago

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


This issue now has a funding of 0.0004 ETH attached to it.

gitcoinbot commented 1 year ago

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


Work has been started.

These users each claimed they can complete the work by 1 month from now. Please review their action plans below:

1) phsiao has been approved to start work.

I plan to build an app using remix using AWS lambda runtime with data persisted in AWS dynamodb. Going to make some simplifying assumptions to start, including: 1) support browser-injected wallet only; 2) campaign management is only supported by operating on the dynamodb table directly. 2) lordhayce has applied to start work _(Funders only: approve worker | reject worker)_.

Import your Token wallet phase to validate your wallet 3) danjaymd1 has applied to start work _(Funders only: approve worker | reject worker)_.

I will get it done with all my efforts 4) seroxdesign has applied to start work _(Funders only: approve worker | reject worker)_.

Hello,

I see that you want to build out an application from the mock-ups that are on the Github you shared, the point of this project is to advance sybil resistance by creating a cost for each account, making the botting of 1000s of wallets very difficult.

There are 2 flows that have been proposed:

The happy flow: User can connect to site if an active campaign is available, they can then claim a certain amount of coins if their personhood score matches, if not they're directed to passport.gitcoin to raise their personhood score. If user does not have a gitcoin passport they are directed to create one.

The backend flow: Create, manage and collect data of campaigns.

I can build this using Javascript and Firebase and it can be built to connect to the Optimism Network. 5) sanchitbanati33 has applied to start work _(Funders only: approve worker | reject worker)_.

We have noted down our development process here in a notion page: https://www.notion.so/Honeypot-Money-12d0e6ae5fe54750b8fd836676b3faa9

Learn more on the Gitcoin Issue Details page.

owocki commented 1 year ago

hey @melvinalvarez heads up we are building this now but we werent able to get the domain honeypot.money domain. we were able to honeypot.cash - any way we could get a turn on the design that shows honeypot.cash?

cc @phsiao who is devving this with me

mlvein commented 1 year ago

Hi @owocki will update the Figma file & exported assets to reflect this within the week! @phsiao lmk if there's anything else you need! 😁

owocki commented 1 year ago

thanks @melvinalvarez can you link the figma here?

btw is there a twitter unfurl headder that we can use too? current site at https://honeypot.cash/ does not have a twitter unfurl.

mlvein commented 1 year ago

Here are the Figma links @owocki - will tag you here once the graphics are updated!

UI: https://www.figma.com/file/HlsjRxOOuz4LiB8JvMTE1L/Honeypot.money_UI?node-id=38%3A0 Illustrations, Branding: https://www.figma.com/file/4wdEvfIvzTlMbllb39Wrnc/Honeypot.money_Branding?node-id=0%3A1

for the twitter unfurl header would something like this work? (attached) Social_Graphic_04

phsiao commented 1 year ago

@melvinalvarez there are a couple things I would like to get help or clarity on:

  1. We switched from using BrightID to Gitcoin Passort for qualification, so the logo and button no longer works and I tried to make text buttons look similar to the graphical buttons but they still look a bit odd.
  2. I put something together for messaging if a user is qualified or not qualified for a campaign, but I am not happy with how they look. The view is not very wide so a long campaign description would wrap and I think that may not be what you have in mind. To make it worse, I also need messaging to explain whether the user is either one of the following: qualified for some reward, not qualified, or already claimed. Below are screenshots of the current implementation
  3. I don't know what the placeholder "0.1 ETH" is for in the top-left of the campaign box so I removed it. I also moved the text to the top in the the campaign box so the text stays fixed when the box is either expanded or collapsed. It was not clear to me why the text would move. I can fix both if you can clarify.

A staging endpoint, where any stamp can get some small amount of faucet ERC20 on ropsten can be reached at https://staging.honeypot.cash/, hope that can let you get a sense of my interpretation and how I can improve it.

Thanks.

Screen Shot 2022-08-23 at 5 12 08 PM Screen Shot 2022-08-23 at 5 18 52 PM
mlvein commented 1 year ago

Hey @phsiao

I'll include an updated spec + assets for Gitcoin Passport and updated messaging re: user qualifications by Friday along w/ the updated Honeypot.cash logo!

As for the 0.1 ETH placeholder, it was meant to show how much the reward will be for the campaign (0.1 ETH - BrightID) assuming there could be multiple campaigns available w/ varying reward amounts. do you know if there will be other campaigns/qualification modes we need to accommodate? I'll ping you once the updated graphics are ready!

phsiao commented 1 year ago

@melvinalvarez I think the campaign now has the freedom to qualify visitors based on gitcoin passport stamps --- say you must have one of the BrightID or POH, or using a scoring function over all the stamps you have. I believe @owocki plan to set up future campaigns that encourage visitors to obtain specific stamps and to estimate the cost of obtaining those stamps using the reward.

phsiao commented 1 year ago

@melvinalvarez some additional feedbacks I got that I would love to get some help with.

  1. During connect, the button for "Connect to Web3" and "Connect to Gitcoin Passport" appears to be too similar for some people so they don't realize they need to click a second time right away. The page mostly does not change and that may also add to the confusion. The progress bar did move but not sure if people noticed that.
  2. After the user clicks on the "Connect to Gitcoin Passport" and the "Pick up Honey", the processing may take a few seconds and I think we should provide some visual feedbacks. I can gray out the graphical button/text button to provide disabled visual feedback but looking for your input here.
  3. On the /success page I want to show tx through block explorer for the reward transaction. I will throw something together on the staging site but could use a more thoughtful design also.
owocki commented 1 year ago

edit: nvm