Few Questions for Marketplace dapp

Hello community,

me and a colleague are thinking about an idea using the Flow blockchain and NFT’s. We currently have a few questions on how to solve some problems most efficiently and in the most user friendly way. As a part of our app, the user should be able to buy collectible items (NFT’s) on a marketplace from other users, just like in NBA Top Shot or KittyItems etc. Now, as far as I know, it’s currently not easy to directly offer fiat payments, as dapper is not yet available outside of NBA Top Shot (Fiat Payments). So we thought about two possible ways we can implement the payments:

  1. Use Flow Token with Blocto/Ledger Wallets. Users will have to create a wallet, buy Flow Tokens and use these in the app to buy items. This has the advantage that we do not have to implement own payment systems as a third party does this for us. On the other hand, users would have to create another account and do additional steps until purchase.

  2. Implement our own fungible token. We could create our own fungible token on Flow that users can simply buy from us to a fixed rate (like an ingame currency). We are the only ones minting new tokens and selling them. The tokens can be traded back to fiat money with us as well. These tokens are then used to buy NFT’s in our app. This option would have the advantage that users do not need to leave our app to make payments. The disadvantage is that we have to implement our own payment systems. Also, we asked ourselves if we are allowed to sell fungible tokens to users? When we are the only ones selling the tokens, this would be kind of counter-intuitive as this would be very “centralized” again. When implementing these tokens, would we be able to prevent users to trade these tokens among themselves?

What do you guys think is the better option in general? Did we miss any advatages and disadvantages, or misunderstood some concepts? Is there maybe another option that we oversee here?

Thank you very much in advance!

Hey @MarkWallbang, welcome to Flow!

You’ve touched on two crucial topics that are top of mind for many developers.

Use Flow Token with Blocto/Ledger Wallets. Users will have to create a wallet, buy Flow Tokens and use these in the app to buy items. This has the advantage that we do not have to implement own payment systems as a third party does this for us. On the other hand, users would have to create another account and do additional steps until purchase.

The Flow Client Library (FCL) is designed to be the common interface between applications and wallets. The goal here is to enable a rich ecosystem where users can choose the wallet that is most suitable for them, and app developers don’t need to build bespoke integrations for each one.

It also makes it so app developers don’t need to worry about creating custody and payments solutions for their users. Both of these problems are really hard to solve, mainly because it involves a lot of security and regulatory work to create a good user experience.

This option would have the advantage that users do not need to leave our app to make payments. The disadvantage is that we have to implement our own payment systems. Also, we asked ourselves if we are allowed to sell fungible tokens to users? When we are the only ones selling the tokens, this would be kind of counter-intuitive as this would be very “centralized” again. When implementing these tokens, would we be able to prevent users to trade these tokens among themselves?

FCL is trying to make it as easy as possible for users to make payments without leaving an application. For example, instead of being directed to a separate page, the user’s wallet would pop up inside the application and allow them to choose their preferred payment method. It should even be possible to accept credit card payments this way.

As far as creating your own token, it’s no easy task. Selling the token is one thing, but it’s extremely difficult to provide an “off-ramp” for cryptocurrency (i.e. give your users a way to convert your token to cash). It requires a money services license in most jurisdictions around the world, and the laws are different for each country.

We recently announced the FUSD stablecoin as a solution to this exact problem: https://forum.onflow.org/t/fusd-stablecoin-available-on-flow-testnet/1620

Once it launches, it will allow you to accept stable payments in your app and give your users a straightforward way to convert cash to/from crypto using existing on and off ramps

1 Like

Hey @pete,

thank you very much for your in-depth answer, that was very helpful! It looks like we are going to go the route you suggested, as it seems to be the most easy and steady way to implement. I’ll definitely have a look at your solution, thank you :slight_smile:.