gitcoinco / grants-stack

Round Manager & Grant Explorer & Project Builder of the Grants Protocol
Other
339 stars 165 forks source link

Fiat Donations in Grants Stack #3658

Open haonchon opened 1 month ago

haonchon commented 1 month ago

User Story: I was recommended to post this as an issue by Owocki. As a user, I want Grants Stack to include fiat donations so that it is accessible to 100x as many people. The Open Civics community has expressed this is one of their greatest needs that is preventing wider participation in their Gitcoin rounds. A majority of round operators during GG21 also requested help in setting up this feature. We believe the best solution would be to integrate the solution directly into Grants Stack.

Acceptance Criteria GIVEN successful arrival of a sybil-resistant donation to a Gitcoin project WHEN a user sends fiat funds THEN send out matching funds accordingly

Product & Design Links: See https://viaprize.org/qf/opencivics/explore for a previous round where we already built this successfully. See https://gov.gitcoin.co/t/proposal-for-fiat-donations-in-grants-stack/19446 for the full proposal All that Gitcoin would need to do is add a "Pay with Credit Card" button to the Grants Stack checkout page. The rest would be handled through a system that the viaPrize team has built. The time demand on the Gitcoin dev team would be minimal.

Tech Details: The system works by generating a custodial wallet for each fiat user and sending stablecoins from a crypto reserve through the users’ wallet and into the smart contract.

From the user's perspective, it's the exact same process as what they're used to doing on any web2 platform.

For PayPal Sybil resistance, we check if the payment is not pending and that the account is "verified" meaning that it has a bank account linked to it. Someone can only link a bank account to one PayPal account. There is one wallet generated per PayPal account.

We've stress-tested this by opening multiple bank accounts to link to multiple PayPals with different names, and only some of the time did it work, and even then the payments would often show up as "pending" for the new account and sometimes it would flag it and say we need to submit gov ID showing if we're using a real name.

Full data on when we did this during GG21 here

Open Questions: Can we switch to Visa card donations and bank transfers? We have access to a Stripe API which allows us to check if a bank transfer is using someone's legal name. Visa is slowly asking us for info so they can give us access to an API that does the same for Visa card transactions.

If we gain access to this in time, our Sybil resistance can be simpler by relying on people's legal names and we can remove PayPal. There would be one wallet generated per legal name. (We think people with exact same legal name will happen infrequently.) If someone has privacy concerns, they can still just donate with crypto.

Notes/Assumptions: We reviewed Allo 2.1 and this feature should not be affected by the transition to it.

linear[bot] commented 1 month ago

PAR-430 Fiat Donations in Grants Stack

marsrobertson commented 1 month ago

We think people with exact same legal name will happen infrequently.

Same with people who have two different legal names in different jurisidiction :)

I fully support this proposal. Native integration makes so much sense. Realistically speaking, the timing is tight, it might be problematic to release it before GG22, on the other hand Gitcoin attracts the best 🧠 super coders in the Web3 - it might still possible if properly prioritized.

image

(screenshot from proposal on the forum)

Basic integration MVP: priority obviously

Longer term I would like to suggest / discuss / propose (not sure what's the best place / form / factor) some additional features in the Grant Stack, areas adjacent to accepting PayPal / credit cards:

Also some field standarisation. Some fields are exactly the same between the rounds. It would be nicer if they lived on the project level (same across multiple rounds) as opposed to application level. Currently Twitter and GitHub are on the project level, here are some other common fields:

And for completeness here is even more feedback: https://gov.gitcoin.co/t/feature-request-feedback-and-donor-notes/19239