Giveth / giveth-next

Giveth 2.0 implementation in NextJS
https://next.giveth.io
GNU General Public License v3.0
20 stars 13 forks source link

Explore better fiat integration options #63

Closed WhyldWanderer closed 4 months ago

WhyldWanderer commented 3 years ago

Im creating this issue so that we can continue to explore better options for fiat integration and so the discussion isnt lost in the dev channel.

Kay has created a notion document to track pros and cons of various options. https://www.notion.so/giveth/Fiat-on-off-ramp-00196f93f2af48fda27f78bcdbd864a5

this issue is related to issue Giveth/giveth-2#435 https://app.zenhub.com/workspaces/giveth-2-5ecaa273967d386713036ca4/issues/giveth/giveth-2/435

WhyldWanderer commented 3 years ago

From @jamespfarrell Giving 100$ should be 100% efficient This can be done on xDai for example. but if they ramp fiat onto xdai with ramp.network they take 3% with each fiat onramp so that means there's no incentive for them to ramp say $1000 because they still lose $30 They may as well just ramp $100 of crypto 10 times, and lose the same as fees For me we're not offering anything better than kickstarter who take this little % with every donation, and credit cards that take their % fee with each donation BUT if we can find a way to ramp $1000 at a fixed transaction fee and that is ramped onto xdai Then we are talking about 100% efficiency in terms of donation ...and if they ramp $1000 once and they have that sitting in a 'donation account' - not a 'crypto wallet'. I think we can potentially abstract away any concept of crypto at all and reach a new level of usability that brings in a new wave of non crypto donors

WhyldWanderer commented 3 years ago

From @Danibelle This is in the Gaia Gives dream deck, the "giving portfolio" .. you put funds in it periodically, change your monthly recurring allocations across projects as you view updates etc.

WhyldWanderer commented 3 years ago

From @WhyldWanderer Soooo I dove down a fiat on-ramping rabbit hole today to see what I could find/learn. It seems that this is a key issue in the crypto world right now and there are many people working to bridge the gap. My internal dev language translator is not super robust so Im not highly confident in my ability to read the code for the apis and how it would integrate into giveth specifically but I did come up with a list of options that arent already in the notion document. Maybe they are useful to our particular use case or maybe not. Please take a look and see if they have something useful to offer us.

First up, Onramper is a ramp aggregator that allows for the user to choose between the ramp options that are most aligned with their specific use case... type of fiat, type of token, payment type, fees etc. As of now, they provide access to moonpay, wyre, btcdirect, xanpool, and mercuryo with plans to add more in the future. The greatest part is that we dont need to have an account with any of those or be approved or show id to use onramper. https://onramper.com

Next up, NOWPayments is offering fiat to crypto and back. They seem like a well known organization within the etherspace and fiat processing is one of the newer features that theyre integrating. https://nowpayments.io/fiat

Uphold offers an API that could be useful to us that allows automated business account activity and they offer services for organizations to receive fiat and payout in crypto and vice versa. https://uphold.com/en/get-started/developer

The other two that I found dont seem to have as much documentation or reputation in the etherspace but could still prove to be useful for what we need upon more research.

Payaccept: "PayAccept is revolutionizing the way we manage payments. By combining traditional and Decentralized Finance (DeFi) and offer access to fiat, cryptocurrency, lending, card issuance, payment solutions, and risk management services." https://www.payaccept.net/ https://coinworldstory.com/payaccept/

Crypto_Pay: "Crypto pay service allows you to accept crypto payments converted to fiat and payouts with crypto to clients even if you operate with fiat only." https://www.cryptopay.band/

I didnt add any of them to the notion document yet because I wasnt sure of their compatibility factor but would be willing to research more on any that we think show promise.

WhyldWanderer commented 3 years ago

From @willyogo : The only documentation I have is the original fiat donation spec that we used for the stripe integration: https://docs.google.com/document/d/1vDocYi3hT_lBvho3XWmw-wYCX4vZczVTgD-eZqbTxS8/edit?usp=sharing

All the rest of the my familiarity with the jungle comes from the research I've done for ShapeShift, and we're about to do it a third time because the landscape continues to evolve.

I still love the blended fiat donation approach, where donors can donate fiat, and projects can receive either crypto or fiat depending on whether they connect a bank account. I think the big question is which provider (or provider aggregator) to integrate.

I totally agree that an on-ramp to an L2 would be ideal, but the only 2 I've heard of that are currently live are Ramp with xDAI (currently down and not available in US) and transak/wyre with Polygon (just checked and unfortunately the fees were somehow $85 for the minimum purchase of $340 :sob: ). More are coming and the reliability will improve soon, but they're not ready for prime time yet from what I've seen.

I haven't come across any on/off ramps charging fixed fees, in my experience they've always charges %s. That and/or a non-profit discount would be a dream though!

For next steps, I think we should go through transak's partner portal to apply, and would be happy to do that tomorrow if nobody beats me to it. https://transak.com/ - they are an aggregator, one of the few L2 on ramps, and have told us in their discord that our desired flow is acceptable and to apply through their site.

Another interesting one for multi-chain USDC on/off ramp that I'd like us to apply to is Circle https://www.circle.com/en/on-and-off-ramps-in-your-crypto-product - not sure if it will work for us, but if it does, it could be the lowest fees for going from fiat to usdc

Ramp is awesome, definitely one of my favorite providers, but unfortunately they told us the best integration we can do (without violating their terms) is help donors load up their own wallets with crypto, which I personally don't think is a worthwhile feature for us to prioritize unless we're sure we can't do better.

No kyc up to $1k sounds terrific, let's talk to the mooni guys too Created an account on transak and was able to get an API key! Also filled out the form to reach out their sales team and will try and confirm that our flow is acceptable. Will post the API key in the private channel in case anyone wants to test it out https://codepen.io/transak/pen/bGdNxBa

One quick thing we could do is add a "Purchase crypto" button to the nav dropdown that opens this modal. that definitely wouldn't violate any terms. It's also very easy to pass in any address, we could add this to the /donate page for every project and pass in the project's donation address for a quick proof of concept. what do you think JamesF mateodaza, open to giving this a try?

willyogo commented 3 years ago

Filled out Transak's KYB application and will let you guys know as soon as we hear back.

Also threw together a quick high level spec for an MVP fiat donation flow: https://www.notion.so/giveth/Spec-Fiat-donations-262844c8a02c48f3b23a6d0a7f3aab2a

WhyldWanderer commented 3 years ago

another related issue: https://github.com/Giveth/giveth-planning/issues/17