Closed gsovereignty closed 6 years ago
So we are wanting to actually allow people to buy bitcoin through blockRazor possibly with Krazor and USD?
Yeah. Only minimal amounts with USD though (deposits are capped, AML laws and such). Crypto to crypto is fine though.
am of the same opinion here. we can start small
It's probably a good idea to just do Bitcoin, Monero and Ethereum to start with.
I also think we need to seriously think about Blockrazor's security as well. We risk attacks from malicious users by having such a feature.
Here are my thoughts:
There needs to be some way to match buyers and sellers at the right price.
We could have buyers specify a volume range of crypto they are willing to trade and their exchange rate. when a user wants to sell, we ask the user for the volume he wants to trade and match him with sellers within that range. the seller only has to find a buyer with a preferred exchange rate. The reverse would also apply to buyers.
For exchange rate price matching, we can use the model most cryptocurrency exchanges (e.g. cex.io) use, and what @samuelralak mostly described in the post above.
You can put a sell order for a certain volume at a certain price and buyers can either put buy orders for the price they expect and wait for the price to show up, or they can choose to exchange at the currently lowest possible sale price.
As for the other things, I mostly agree that we don't need many currencies in the beginning, and Bitcoin and Ethereum have simple APIs for sending and receiving payments so they're sufficient. Monero is also a nice addition. About USD deposits, should we also support something like Stripe for credit card processing or will we only accept bank transfers? If we support USD deposits, we should also probably have some AML/KYC verification policy.
I have not used those other endpoints but I have used Stripe many many many times before.
We have to stay away from credit cards, paypal, etc. It's too easy to do chargebacks. So only bank transfers.
I guess the most important thing to nail down is actual functionality, we can stub out the currency deposit/withdraw stuff, the actual trading stuff should come first.
What about a very simple time based auction?
@gazhayes, you mean something like where users can state they're selling some coins, and other users can bid the amount of money/coins they want to pay for it and the highest bidder wins? Or something similar?
Yeah basically that, or something similar to that. The absolute simplest way possible.
Yap, that's quite simple I agree. If we take that route, we can reuse lots of existing infrastructure for auctions, I made it very general when I wrote it.
Ah that's great. OK, I'll keep thinking about how to structure this from a UX standpoint and keep this open but will leave it reserved for you.
So, I guess the simplest way is to have auctions to sell whatever currency (Krazor, USD, ETH, XMR for now). It's probably fair to only allow KZR <=> Other and not Other <=> Other.
This requires an extension to the existing wallet to store these other currencies of course.
We can just stubb off deposit/withdraw.
Users should be able to set the time for how long the auction runs for.
Users should be able to set a reserve, and I guess the reserve amount should be hidden from other users.
Users must have enough balance to bid.
I guess that should be enough for a first pass?
@gazhayes, that seems perfectly sufficient for the beginning.
Ok, I have nothing else to add, you want to take this one right?
Yap, I'm taking it.
Done in #894.
Problem: there is currently no way for users to trade Krazor for other currencies (and vice versa).
I'm opening this to have a discussion first before we decide what to do.
Some key points: It's probably a good idea to track multiple currencies in users wallets. Currencies can be deposited first, and then traded. Everything happens on Blockrazor until they actually withdraw. USD can be deposited/withdrawn with a bank transfer. However each additional cryptocurrency is painful to add, we need to interact with a different API etc for each new one. It's probably a good idea to just do Bitcoin, Monero and Ethereum to start with.
The system should be as simple as humanly possible, and definitely not a full on market.
There needs to be some way to match buyers and sellers at the right price. I have some ideas about how to do this but want to see what other people have to say before I pollute everyone's minds with my ideas. The key criteria is simplicity.
ping @anbud @AshHimself @samuelralak